精华内容
参与话题
问答
  • RSA 加密算法原理简述

    万次阅读 2018-07-23 22:32:42
    本文旨在说明RSA加密算法的原理及实现,而其相关的数学部分的证明则不是本文内容。 版权说明 著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:Q-WHai 发表日期: 2016年2月29...

    概述

      本文旨在说明RSA加密算法的原理及实现,而其相关的数学部分的证明则不是本文内容。

     

    版权说明

    著作权归作者所有。

    商业转载请联系作者获得授权,非商业转载请注明出处。

    作者:Q-WHai

    发表日期: 2016年2月29日

    本文链接:http://blog.csdn.net/lemon_tree12138/article/details/50696926

    来源:CSDN

    更多内容:分类 » 数据加密与信息安全

     

    RSA简介

      1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"。毫不夸张地说,只要有计算机网络的地方,就有RSA算法。

                                                                                       -- 摘自网络

     

    数学背景

      此部分旨在补充本文的完整性。如果说你已经了解,或是不想了解此部分内容。那么可以直接跳过此部分的阅读。

      虽说只是补充说明(只能是补充的原因是因为博主的数学也是比较差的-_-!!!),但是此部分的内容却是相当重要的。博主还是希望可以重新阅读一下此部分。

    1.互质

      从小学开始,我们就了解了什么是质数。互质是针对多个数字而言的,如果两个正整数,除了1以外,没有其他公因子,那么就称这两个数是互质关系(注意,这里并没有说这两个数一定是质数或有一个为质数。比如15跟4就是互质关系)。以下有一些关于质数与互质的性质:

     

    • 质数只能被1和它自身整除
    • 任意两个质数都是互质关系
    • 如果两个数之中,较大的那个数是质数,则两者构成互质关系
    • 如果两个数之中,较小的那个数是质数,且较大数不为较小数的整数倍,则两者构成互质关系
    • 1和任意一个自然数是都是互质关系
    • p是大于1的整数,则p和p-1构成互质关系
    • p是大于1的奇数,则p和p-2构成互质关系

     

    2.欧拉函数

      欧拉函数是求小于x并且和x互质的数的个数。其通式为:φ(x) = x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)

      其中p1, p2……pn为x的所有质因数,x是不为0的整数。看到这里是不是有一些头疼,太理论的东西的确不够具象。我们且不去理会后面公式计算与论证,因为已经超出本文的范围了。就前一句来说说吧,欧拉函数是求小于x并且和x互质的数的个数。这里我可以列举一个例子:

      令x = 16,那么x的所有质因数为:φ(16) = 16 * (1 - 1/2) = 8

      我们也可以枚举出所有比16小,且与16互质的数:1, 3, 5, 7, 9, 11, 13, 15

      现在也给出部分欧拉函数的性质:

     

    • 若n是素数p的k次幂,,因为除了p的倍数外,其他数都跟n互质
    • 欧拉函数是积性函数——若m,n互质,
    • 当n为奇数时,
    • p是素数,,φ(p)称为p的欧拉值

     

      欧拉函数更多参考请见这里的链接

     

    3.模反元素

    定义:如果两个正整数a和n互质,那么一定可以找到整数b,使得 ab-1 被n整除,或者说ab被n除的余数是1。

    关于模反元素的求解,使用的是朴素的解法。如果读者想要更进一步了解的话,请自行搜索其他解法(比如:辗转相除法、欧几里德算法)。

     

    RSA原理

      在RSA原理之前,我想还是有必要了解一下非对称加密算法的加密跟解密过程。下面就是一幅非称加密算法的流程图。

      

      在此可以看到,非对称加密是通过两个密钥(公钥-私钥)来实现对数据的加密和解密的。公钥用于加密,私钥用于解密。对于非对称的加密和解密为什么可以使用不同的密钥来进行,这些都是数学上的问题了。不同的非对称加密算法也会应用到不同的数学知识。上面也对RSA中使用的数学问题做了一个小小的介绍。现在就来看看RSA算法是怎么来对数据进行加密的吧,如下是一幅RSA加密算法流程及加密过程图。

      

     

    RSA算法优点

    1. 不需要进行密钥传递,提高了安全性
    2. 可以进行数字签名认证

    RSA算法缺点

    1. 加密解密效率不高,一般只适用于处理小量数据(如:密钥)
    2. 容易遭受小指数攻击

     

    其他加密算法相关参考:

     

    AES 加密算法的原理详解:https://blog.csdn.net/gulang03/article/details/81175854

    Java实现AES和RSA算法:https://blog.csdn.net/gulang03/article/details/81771341

     

    JS 与 JAVA 跨语言实现 RSA 和 AES加密算法:https://blog.csdn.net/gulang03/article/details/82230408

    展开全文
  • RSA加密原理详解

    千次阅读 2019-02-18 09:57:31
    RSA加密的核心其实是欧拉定理,通过这个定理得到了这种非对称加密算法 一、算法介绍 找到两个素数p和q,并计算n=p*q 找到(d,φ(n))=1,即d与φ(n)互质,其中0<d<φ(b),φ(n)为欧拉函数,是指...

    RSA加密的核心其实是欧拉定理,通过这个定理得到了这种非对称加密算法

    一、算法介绍

    找到两个素数ppqq,并计算n=pqn=pq
    找到(d,φ(n))(d,\varphi(n)),即ddφ(n)\varphi(n)互质,其中0<d<φ(b)0<d<\varphi(b)φ(n)\varphi(n)为欧拉函数,是指<n<n且与nn互质的正整数的个数
    因为n=pqn=pq,所以φ(n)=(p1)(q1)\varphi(n)=(p-1)(q-1),也就是说dd(p1)(q1)(p-1)(q-1)互质
    再找到0<e<φ(n)0<e<\varphi(n)使得de1(mod φ(n))de\equiv1(mod\space\varphi(n)),即dede除以φ(n)\varphi(n)余数为1
    那么形成秘钥对(n,d)(n,d)(n,e)(n,e),分别是私钥和公钥
    使用秘钥对(n,x)(n,x)加密的方法为f(a,n,x)=ax(mod n)f(a,n,x)=a^x(mod\space n),解密为同一函数
    那么就可以用公钥加密私钥解密或用私钥加密公钥解密,即
    B=f(A,n,d)B=f(A,n,d)A=f(B,n,e)A=f(B,n,e)
    但细心的人会发现,知道nn就知道了φ(n)\varphi(n),结合dd就可以算出ee,这样知道公钥就知道私钥
    其实,RSA加密的核心就在于ppqq的选择,这两个质数一定要选择的很大,相乘容易,分解难
    所以破解往往长达数月(nn的长度为512和七百多的RSA已经被成功破解)
    所以现在nn的长度至少为1024,有很多是2048

    二、欧拉定理

    nnxx为正整数,(x,n)=1(x,n)=1,则有xφ(n)1(mod n)x^{\varphi(n)}\equiv1(mod\space n),这就是欧拉定理,下面简单的证明一下
    构造modnmod n的既约剩余系(不懂的同学们看第三块)
    设为a1,a2,...,aφ(n)a_1,a_2,...,a_{\varphi(n)},并找一个与nn互质的数xx,根据既约剩余系的积不变性(见第三块),有
    既约剩余系xa1,xa2,...,xaφ(n)xa_1,xa_2,...,xa_{\varphi(n)}的积与上述既约剩余系的积mod nmod\space n同余
    a1,a2,...,aφ(n)a_1,a_2,...,a_{\varphi(n)}的积为kk,那么第二个既约剩余系的乘积为kxφ(n)kx^{\varphi(n)}
    则有kkxφ(n)(mod n)k\equiv kx^{\varphi(n)}(mod\space n),而因为aia_inn互质,所以kknn互质,所以两边同时除去kk
    xφ(n)1(mod n)x^{\varphi(n)}\equiv 1(mod\space n),得证!

    三、既约剩余系

    设有正整数nn,找到rr的集合,其中1rn1\le r\le n(r,n)=1(r,n)=1
    设这个集合为r1,r2,...,rk{r_1,r_2,...,r_k},那么根据欧拉函数的定义,k=φ(n)k=\varphi(n)
    对于一个φ(n)φ(n)元正整数集合,如果对其每一个元素mod nmod\space n后得到的集合与上述集合相等
    那么称这个集合为mod nmod\space n的既约剩余系
    而根据上述定义,所有mod nmod\space n的既约剩余系mod nmod\space n的性质类似
    显然,任何两个mod nmod\space n的既约剩余系的和与积mod nmod\space n同余(因为每个元素对应mod nmod\space n同余)
    所以既约剩余系有和不变性积不变性

    四、总结

    RSA加密算法是通过欧拉定理得到的,该算法的安全性来源于大数分解质因数的困难,在选取ppqq的时候要尽可能的大一些
    RSA因为涉及到大数运算,甚至包括幂运算,所以速度比对称加密算法慢得多,一般用于加密对称加密的较短秘钥

    展开全文
  • RSA算法原理——(1)目前常见加密算法简介

    万次阅读 多人点赞 2018-06-18 21:50:53
    文章可能会稍微有点长,但是内容绝对是目前全网最详细的,最通俗易懂的,跟着昌昌来一起揭开RSA非对称加密算法的面纱,保你看完本篇文章之后可以说:RSA just so so! 一、常见加密算法 目前常见的加密算法可以分成...

      艾伦·麦席森·图灵在二战期间主要负责破译德国人的密码系统Enigma,破解密码需要大量的计算,图灵深知工欲善其事必先利其器的道理,于是一台叫作CO-LOSSUS的计算机在1943年被研制出来,后来这种电子计算机总共生产了10台,他们出色完成了密码破译工作。

      后来甚至有人将二战胜利原因归咎于图灵机的诞生,虽然有些夸大,但图灵机的诞生确实加快了二战的结束这是不可否认的。而图灵机战胜的不是法西斯,而是战胜了德国人的密码系统Enigma,而1976年以前都是使用对称加密的,所以图灵机也就是战胜了对称加密算法。
    (6.23号是艾伦·麦席森·图灵的诞辰,感兴趣的同学可以看看电影《模仿游戏》,影片改编自安德鲁·霍奇斯编著的传记《艾伦·图灵传》)
    模仿游戏

      故事讲完了,而今天我要给大家讲的是另外一种加密算法:非对称加密。而RSA就是其中的一种,也是非对称加密使用到最广泛的一种。其实RSA算法只是非常简单的一个公式,没有学过高数的同学照样可以搞懂其原理,只要你和我一样有一颗喜欢探索的心!!!

    我把内容主要分为了三大块,为什么这么分呢?这样可以让我们循序渐进的去了解rsa,然后一步一步的揭开rsa的面纱。

    一、目前常见加密算法简介
    二、RSA算法介绍及数论知识介绍
    三、RSA加解密过程及公式论证

    一、目前常见加密算法简介

    目前常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。

    注意Base64编码只是一种编码格式并不是加密算法,它可用于在HTTP环境下传递较长的标识信息。

    1.对称加密

      1976年以前,所有的加密方法都是同一种模式即对称加密,它采用了对称密码编码技术。它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高。IDEA加密标准由PGP(Pretty Good Privacy)系统使用。对称加密又分为流加密与分组加密这里就不展开讲了,感兴趣的同学可以自行了解。

    对称加密

    对称加密的特点:

    • 优点:对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
    • 缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后双方保存好秘钥。如果一方的秘钥被泄露,那么加密信息也就不安全了
    • 使用场景:本地数据加密、https通信、网络传输等
    • 常见算法:AES、DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6

    2.非对称加密

    非对称加密

      1976年,两位美国计算机学家Whitfield Diffie 和 Martin Hellman,提出了一种崭新构思,可以在不直接传递密钥的情况下,完成解密。这被称为“Diffie-Hellman密钥交换算法”。这个算法启发了其他科学家。人们认识到,加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。这种新的加密模式被称为”非对称加密算法”。

    这里写图片描述

    非对称加密特点:

    • 优点:非对称加密与对称加密相比其安全性更好
    • 缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
    • 使用场景:https会话前期、CA数字证书、信息加密、登录认证等
    • 常见算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

    3.Hash算法

      Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。

    hash算法

    hash算法特点:

    • 优点:不可逆、易计算、特征化
    • 缺点:可能存在散列冲突
    • 使用场景:文件或字符串一致性校验、数字签名、鉴权协议
    • 常见算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1

    加密算法的选择

    • 对称加密算法不能实现签名,因此签名只能非对称算法。
    • 验证文件或字符一致性用hash算法
    • 数据量大用对称加密算法、小则可以用非对称加密
    • 还可以非对称与对称集成,参考https请求原理
    • RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。
    展开全文
  • 非对称加密算法--RSA加密原理

    万次阅读 多人点赞 2018-12-24 00:33:58
    在说RSA加密算法之前, 先说下密码学的发展史。其实密码学的诞生,就是为了运用在战场,在公元前,战争之中出现了秘密书信。在中国历史上最早的加密算法的记载出自于周朝兵书《六韬.龙韬》中的《阴符》和《阴书》。...

    密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。

    密码学发展史

    在说RSA加密算法之前, 先说下密码学的发展史。其实密码学的诞生,就是为了运用在战场,在公元前,战争之中出现了秘密书信。在中国历史上最早的加密算法的记载出自于周朝兵书《六韬.龙韬》中的《阴符》和《阴书》。在遥远的西方,在希罗多德(Herodotus)的《历史》中记载了公元前五世纪,希腊城邦和波斯帝国的战争中,广泛使用了移位法进行加密处理战争通讯信息。

    相传凯撒大帝为了防止敌人窃取信息,就使用加密的方式传递信息。那么当时的加密方式非常的简单,就是对二十几个罗马字母建立一张对照表,将明文对应成为密文。那么这种方式其实持续了很久。甚至在二战时期,日本的电报加密就是采用的这种原始加密方式。
    凯撒密码对照表

    早期的密码学一直没有什么改进,几乎都是根据经验慢慢发展的。直到20世纪中叶,由香农发表的《秘密体制的通信理论》一文,标志着加密算法的重心转移往应用数学上的转移。于是,逐渐衍生出了当今重要的三类加密算法:非对称加密、对称加密以及哈希算法(HASH严格说不是加密算法,但由于其不可逆性,已成为加密算法中的一个重要构成部分)。

    1976年以前,所有的加密方法都是同一种模式:加密和解密使用同样规则(简称"密钥"),这被称为"对称加密算法",使用相同的密钥,两次连续的对等加密运算后会回复原始文字,也有很大的安全隐患。

    1976年,两位美国计算机学家Whitfield Diffie 和 Martin Hellman,提出了一种崭新构思,可以在不直接传递密钥的情况下,完成解密。这被称为"Diffie-Hellman密钥交换算法"。也正是因为这个算法的产生,人类终于可以实现非对称加密了:A给B发送信息

    1. B要先生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
    2. A获取B的公钥,然后用它对信息加密。
    3. B得到加密后的信息,用私钥解密。
      理论上如果公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的。

    1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"。毫不夸张地说,只要有计算机网络的地方,就有RSA算法。这种算法非常可靠,密钥越长,它就越难破解。根据已经披露的文献,目前被破解的最长RSA密钥是232个十进制位,也就是768个二进制位,因此可以认为,1024位的RSA密钥基本安全,2048位的密钥极其安全,当然量子计算机除外。

    RSA算法的原理

    下面进入正题,解释RSA算法的原理,其实RSA算法并不难,只需要一点数论知识就可以理解。

    1. 素数:又称质数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
    2. 互质,又称互素。若N个整数的最大公因子是1,则称这N个整数互质。
    3. 模运算求余运算。“模”是“Mod”的音译。和模运算紧密相关的一个概念是“同余”。数学上,当两个整数除以同一个整数,若得相同余数,则二整数同余
    欧拉函数

    任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?(比如,在1到8之中,有多少个数与8构成互质关系?)计算这个值的方法就叫做欧拉函数,以φ(n)表示。

    • 计算8的欧拉函数,和8互质的 1、2、3、4、5、6、7、8
      φ(8) = 4
      如果n是质数的某一个次方,即 n = p^k (p为质数,k为大于等于1的整数),则φ(n) = φ(p^k) = p^k - p^(k-1)。也就是φ(8) = φ(2^3) =2^3 - 2^2 = 8 -4 = 4
    • 计算7的欧拉函数,和7互质的 123456、7
      φ(7) = 6
      如果n是质数,则 φ(n)=n-1 。因为质数与小于它的每一个数,都构成互质关系。比如5与1、2、3、4都构成互质关系。
    • 计算56的欧拉函数
      φ(56) = φ(8) * φ(7) = 4 * 6 = 24
      如果n可以分解成两个互质的整数之积,即 n = p * k ,则φ(n) = φ(p * k) = φ(p1)*φ(p2)

    欧拉定理:如果两个正整数m和n互质,那么m的φ(n)次方减去1,可以被n整除。
    欧拉定理.png

    费马小定理:欧拉定理的特殊情况,如果两个正整数m和n互质,而且n为质数!那么φ(n)结果就是n-1。
    费马小定理.png

    模反元素

    还剩下最后一个概念,模反元素:如果两个正整数e和x互质,那么一定可以找到整数d,使得 ed-1 被x整除,或者说ed被x除的余数是1。
    那么d就是e相对于x的模反元素。
    d是模反元素

    等式转换
    1. 根据欧拉定理
      等式转换1

    2. 由于1^k ≡ 1,等号左右两边都来个k次方
      等式转换

    3. 由于1* m ≡ m,等号左右两边都乘上m
      等式转换3.png

    根据模反元素,因为e*d 一定是x的倍数加1。所以如下:
    等式转换

    通过多次的等式转换。终于可以将这两个等式进行合并了!如下:
    最终等式转换

    这个等式成立有一个前提!就是关于模反元素的,就是当整数e和φ(n)互质!一定有一个整数d是e相对于φ(n)的模反元素。
    我们可以测试一下。
    m取值为4
    n取值为15
    φ(n)取值为8
    e 如果取值为3
    d 可以为 11、19…(模反元素很明显不止一个,其实就是解二元一次方程)
    如果你测试了,那么你可以改变m的值试一下,其实这个等式不需要m和n 互质。只要m小于n 等式依然成立。
    这里需要注意的是,我们可以看做 m 通过一系列运算得到结果仍然是 m。这一系列运算中,分别出现了多个参数n、φ(n)、e还有d。

    m 的 e乘上d 次方为加密运算,得到结果 c
    c 模以 n 为解密运算,得到结果 m
    这似乎可以用于加密和解密。但这样,加密的结果会非常大。明文数据将非常小(虽然RSA用于加密的数据也很小,但是没这么大悬殊),真正的RSA要更加强大,那么RSA是怎么演变来的呢??
    早期很多数学家也停留在了这一步!直到1967年迪菲赫尔曼密钥交换打破了僵局!

    迪菲赫尔曼密钥交换

    这个密钥交换当时轰动了整个数学界!而且对人类密码学的发展非常重要,因为这个伟大的算法能够拆分刚才的等式。当非对称加密算法没有出现以前,人类都是用的对称加密。所以密钥的传递,就必须要非常小心。
    迪菲赫尔曼密钥交换 就是解决了密钥传递的保密性,我们来看一下
    迪菲赫尔曼密钥交换
    假设一个传递密钥的场景。算法就是用3 的次方去模以17。 三个角色

    • 服务器 随机数 15
      这个15只有服务器才知道。通过算法得到结果 6 因为 3的15次方 mod 17 = 6 。然后将结果 6 公开发送出去,拿到客户端的 12 ,然后用12^15 mod 17 得到结果10(10就是交换得到的密钥)
    • 客户端 随机数13
      客户端用3 的 13次方 mod 17 = 12 然后将得到的结果12公布出去。
      拿到服务器的 6 ,然后用6^13 mod 17 得到结果10(10就是交换得到的密钥)
    • 第三者
      第三者只能拿到6 和 12 ,因为没有私密数据13、15,所以它没法得到结果10。

    为什么 6的13次方会和12的15次方得到一样的结果呢?因为这就是规律,我们可以用小一点的数字测试一下3^3 mod 17 = 10和10 ^ 2 mod 17 ; 3 ^ 2 mod 17 = 9和9^3 mod 17结果都是15。迪菲赫尔曼密钥交换最核心的地方就在于这个规律
    迪菲赫尔曼密钥交换转换

    RSA的诞生

    RSA原理

    现在我们知道了m^e % n = c是加密,c^d % n = m是解密,m就是原始数据,c是密文,公钥是n和e,私钥是n和d,所以只有n和e是公开的。加密时我们也要知道φ(n)的值,最简单的方式是用两个质数之积得到,别人想破解RSA也要知道φ(n)的值,只能对n进行因数分解,那么我们不想m被破解,n的值就要非常大,就是我们之前说的,长度一般为1024个二进制位,这样就很安全了。但是据说量子计算机(用于科研,尚未普及)可以破解,理论上量子计算机的运行速度无穷快,大家可以了解一下。

    以上就是RSA的数学原理

    检验RSA加密算法

    我们用终端命令演示下这个加密、解密过程。
    假设m = 12(随便取值,只要比n小就OK),n = 15(还是随机取一个值),φ(n) = 8,e = 3(只要和φ(n)互质就可以),d = 19(3d - 1 = 8,d也可以为3,11等等,也就是d = (8k + 1)/3 )
    终端分别以m=12,7输入结果
    终端演示

    OpenSSL进行RSA的命令运行

    Mac可以直接使用OpenSSL,首先进入相应文件夹

    • 生成公私钥
    // 生成RSA私钥,文件名为private.pem,长度为1024bit
    openssl genrsa -out private.pem 1024
    
    // 从私钥中提取公钥
    openssl rsa -in private.pem -pubout -out publick.pem
    

    生成私钥

    // 查看刚刚生成好的私钥
    cat private.pem
    
    // 查看刚刚生成好的公钥
    cat publick.pem
    

    查看公私钥

    我们可以看到base64编码,明显私钥二进制很大,公钥就小了很多。
    这时候我们的文件夹内已经多了刚刚生成好的公私钥文件了

    公私钥文件

    // 将私钥转换为明文
    openssl rsa -in private.pem -text -out private.txt
    

    96111F25-0954-4854-9B36-75413A439AFD.png

    里面就是P1、P2还有KEY等信息。

    • 对文件进行加密、解密
    // 编辑文件message内容为hello Vincent!!!
    // 刚刚的public.pem写成了publick.pem(哎。。。)
     $ vi message.txt
     $ cat message.txt
     hello Vincent!!!
    // 通过公钥加密数据时,使用encrypt对文件进行加密
     $ openssl rsautl -encrypt -in message.txt -inkey publick.pem -pubin -out enc.txt
    // 此时查看该文件内容为乱码
     $ cat enc.txt
    j��E]֌a��d�kUE�&<
                     ��I*��V/��pL[���ˋ�O�+�-�M��K�ܱ�&⪅ծO��2���o34�:�$���6��C�L��,b�'M�S�k�0���A��3%�[I���1�����ps"%
    // 通过私钥解密数据
     $ openssl rsautl -decrypt -in enc.txt -inkey private.pem -out dec.txt
    // 已成功解密,正确显示文件内容
     $ cat dec.txt
      hello Vincent!!!
    
    // 通过私钥加密数据时,要使用sign对文件进行重签名
    $ openssl rsautl -sign -in message.txt -inkey private.pem -out enc.bin
    // 此时查看该文件内容同样为乱码
    $ cat enc.bin
    {���Ew�3�1E��,8-OA2�Is�:���:�ԅ@MU����؜
                                          �i1B���#��6���ׂm�D(�t#/���	�ہ�������ݬ>(�>�^@�C��3�ӸMQт�O%
    // 通过公钥解密数据
    $ openssl rsautl -verify -in enc.bin -inkey publick.pem -pubin -out dec.bin
    // 已成功解密,正确显示文件内容
    $ cat dec.bin
     hello Vincent!!!
    
    RSA用途及特点

    到这里,大家都知道RSA通过数学算法来加密和解密,效率比较低,所以一般RSA的主战场是加密比较小的数据,比如对大数据进行对称加密,再用RSA给对称加密的KEY进行加密,或者加密Hash值,也就是数字签名。

    关于RSA数字签名后面再慢慢阐述。该文章为记录本人的学习路程,希望能够帮助大家,也欢迎大家点赞留言交流!!!https://mp.csdn.net/mdeditor/85228078#

    展开全文
  • RSA加密原理

    2015-12-09 13:12:02
    RSA非对称加密,非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非...
  • RSA加密算法原理

    2018-03-13 17:09:48
    RSA原理 在RSA原理之前,我想还是有必要了解一下非对称加密算法的加密跟解密过程。下面就是一幅非称加密算法的流程图。 在此可以看到,非对称加密是通过两个密钥(公钥-私钥)来实现对数据的加密和解密的。公钥...
  • 轻松学习RSA加密算法原理

    万次阅读 多人点赞 2013-09-24 23:54:57
    http://blog.csdn.net/q376420785/article/details/8557266 ... ...以前也接触过RSA加密算法,感觉这个东西太神秘了,是数学家的事,和我无关。但是,看了很多关于RSA加密算法原理的资料之后,我发现其
  • RSA 非对称加密原理(小白也能看懂哦~)

    万次阅读 多人点赞 2018-06-05 15:35:09
    RSA 加密原理 步骤 说明 描述 备注 1 找出质数 P 、Q - 2 计算公共模数 N = P * Q - 3 欧拉函数 φ(N) = (P-1)(Q-1) - 4 计算公钥E 1 &lt; E &lt; φ(N) E的取值必须是...
  • RSA加密原理

    2017-09-04 08:26:35
    http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html 一、基本概念 1、互质 如果两个正整数,除了1以外,没有其他公...
  • linux 无密码登录 rsa加密原理

    千次阅读 2016-12-20 18:21:51
    linux的无密码登录,利用RSA加密原理。 使用rsa生成公钥和私钥。 可以理解为:公钥是锁放在被登录的服务器上,私钥是钥匙放在客户端。锁和钥匙匹配就可以登录。 1 安装相关软件:  yum install ssh  ssh里包含ssh...
  • 轻松学习RSA加密算法原理

    万次阅读 多人点赞 2013-01-30 18:20:55
    但是,看了很多关于RSA加密算法原理的资料之后,我发现其实原理并不是我们想象中那么复杂,弄懂之后发现原来就只是这样而已..  学过算法的朋友都知道,计算机中的算法其实就是数学运算。所以,再讲解RSA加密算法...
  • RSA加密原理与过程

    2017-09-10 22:24:13
    RSA加解密原理 C#实现 JAVA实现
  • RSA加密算法中的数学原理

    千次阅读 2018-07-23 11:22:38
    RSA加密算法是非对称加密算法中的一种,在1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的,并取三人名字的首字母命名该算法。 RSA加密算法因...
  • RSA加密原理试讲

    2017-10-12 12:11:59
    <待我整理后哈哈哈哈>
  • RSA加密原理

    2015-10-26 20:55:51
    如果你问我,哪一种算法最重要? 我可能会回答"公钥加密算法"。 因为它是计算机通信安全的基石,保证了加密数据不会被破解。你可以想象一下,信用卡... (1)甲方选择某一种加密规则,对信息进行加密;  (2)乙
  • RSA加密算法的基本原理

    千次阅读 2012-11-12 12:26:10
    1978年 RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它。但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化而生动的描述,使得高深的数学理论能够被容易地理解。我们...
  • 转自百度百科:http://baike.baidu.com/link?url=zOAVLiIuzW61KwIIDpZTgWKVEgOBuCiXYT4Ike3Vf4diLBxTYsccmHFSa6JZunr-mmRQSllBXbLVB3UjpW6qdl_T6ZCdFhXukL0by3zhibEB6l5wZ-wIM7fVXuj4NhnxtOw2YZWNOFv7YRLe3c57B_ ...
  • #include<stdio.h> #include<stdlib.h> #include<time.h> #include<math.h> //质数判定函数 intlong IsPrime(intlong n) { int i=2; int m=sqrt(n); if(n<... for(i=...
  • 非对称加密 RSA加密算法原理简述

    千次阅读 2016-10-24 08:54:20
    非对称加密是与对称加密完全相反的概念,对称加密指的是加密解密使用的是同样的密钥Key,如流加密,块加密,一次性密码本之类的。而非对称加密,使用加密Key叫公钥,解密用的是私钥。 至于为什么要这样做呢?因为...
  • 注:本文全部转载自:https://www.jianshu.com/p/43f7fc8d8e14iOS之RSA加密解密与后台之间的双向加密详解序言因为项目中需要用到RSA加密,刚开始也是有点乱,这两天也整理的差不多了,希望能帮到大家。这次先上代码...

空空如也

1 2 3 4 5 ... 20
收藏数 28,990
精华内容 11,596
关键字:

rsa加密原理