首页 > 编程知识 正文

rsa算法密钥产生过程,rsa加密算法原理数学例子

时间:2023-05-06 04:22:23 阅读:156152 作者:903

背景RSA公钥密码体制是使用不同密码密钥和解密密钥的“从已知密码密钥导出解密密钥在计算上是不可行的”密码体制。

在公钥加密方案中,加密密钥,即公钥PK是公开信息,解密密钥,即秘密密钥SK需要保密。 加密算法e和解密算法d也是公开的。 虽然解密密钥SK由公钥PK确定,但是不能根据PK计算SK。

基于这个理论,1978年出现了著名的RSA算法。 它通常是先生配对的RSA密钥,其中之一是私钥,由用户保存。 另一个是公钥,可以向外部公开,也可以向网络服务器注册。 为了提高保密强度,建议RSA密钥至少为500位长,通常为1024位。 这样会增加加密的计算量。 为了减少计算量,在发送信息时,经常采用传统加密方法和公钥加密方法相结合的方式。 这意味着用改进的DES或IDEA会话密钥加密信息,并使用RSA密钥加密会话密钥和信息摘要。 对方收到消息后,可以用不同的密钥解密,并核对消息摘要。

RSA是研究最广泛的公钥算法,提出近30年来,经历了各种攻击的考验,逐渐被人们接受,被认为是目前最好的公钥方案之一。 1983年麻省理工学院在美国申请了RSA算法的专利。

RSA允许您选择公钥的大小。 512位密钥被视为不安全,768位密钥无需担心受到国家安全管理(NSA )以外的任何内容的危害。 1024位密钥几乎是安全的。 RSA内置于Windows、Navigator、Quicken、Lotus Notes等主要产品的内部。

算法原理根据RSA公钥密码体制的原理,根据数论,求两个大素数相对简单,但由于对它们的乘积进行因式分解极为困难,因此可以公开乘积作为密码密钥。

所述算法可选地选择两个不同的大素数pp和q q q,然后乘积n=p q n=pq n=pq,(n )=(p-1 ) ) varphi ) n )=(p-1 ) ) q-1 )) n ) 整数eeeee很容易用作加密密钥。 注意: eeeeee的选择例如

于 p p p和 q q q的素数都可用);确定的解密钥 d d d,满足 ( d e )   m o d   φ ( n ) = 1 (de) mod varphi(n)=1 (de) mod φ(n)=1,即 d e = k φ ( n ) + 1 de=kvarphi(n)+1 de=kφ(n)+1,其中 k k k为正整数;所以,若知道 e e e和 φ ( n ) varphi(n) φ(n),则很容易计算出 d d d;公开整数 n n n和 e e e,秘密保存 d d d;将明文 m m m( m < n m<n m<n且 m m m是一个整数)加密成密文 c c c,加密算法为

c = E ( m ) = m e   m o d   n c=E(m)=m^e mod n c=E(m)=me mod n

将密文c解密为明文m,解密算法为

m = D ( c ) = c d   m o d   n m=D(c)=c^d mod n m=D(c)=cd mod n

然而只根据n和e(注意:不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。