RSA加密解密算法的研究与实现

开发与应用 计算机与信息技术 ·27·

RSA加密解密算法的研究与实现

周昕

刘丕娥

(哈尔滨理工大学 计算机科学与技术学院,黑龙江 哈尔滨 150080)

摘 要 本文在研究了RSA公钥密钥算法的基础上,设计了一套完整实用的RSA文件加密解决方案,并提供了具体

编码实现方法。

关键词 RSA;加密;解密

1 引言

密码技术是保护信息安全的主要手段之一。它不仅具有保证信息机密性的信息加密功能,而且具有数字签名、身份验证、秘密分存、系统安全等功能。因此,使用密码技术不仅可以保证信息的机密性,而且可以保证信息的完整性和确定性,防止信息被篡改、伪造和假冒[1]。

当前最著名、应用最广泛的公钥系统RSA是在1978年在题为《获得数字签名和公开钥密码系统的方法》的论文中提出的。它是一个基于数论的非对称(公开钥)密码体制,是一种分组密码体制。它的安全性是基于大整数素因子分解的困难性,而大整数因子分解问题是数学上的著名难题,至今没有有效的方法予以解决,因此可以确保RSA算法的安全性。RSA系统是公钥系统的最具有典型意义的方法,大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法。

本文基于.NET平台设计了一套完整实用的RSA文件加密解决方案,并提供了具体的编码实现。

[2]

ISAKMPIOakley框架的一个关键组成部分。在一个密钥协商会话的开始阶段通信参与方通过使用Diffe-Hellman算法产生双方共享的密钥,这些密钥将被用于密钥协商协议的后续步骤。

在实际应用中,人们通常将对称密钥算法和公钥密码算法结合在一起使用,以实现最佳性能。即使用某个对称密钥密码体制来加密需传递的机要信息,而同时使用RSA等非对称密钥密码体制来传送DES的密钥。这样就可以综合发挥两种密码体制的优势,即DES高速简便性和RSA密钥管理的方便和安全性。

2.2 RSA体制的算法过程

RSA密码体制使用了模n的非负最小完全剩余系中的运算,这里n是两个不同的素数p和q的乘积[3]。RSA体制的算法过程如下:

首先产生密钥,过程如下:

(1)随机产生两个长度为K/2位的素数P 和 Q。 (2)计算公钥publicKey =P*Q;(publicKey是k位的长度)。

(3)随机产生一个加密密钥 keyE,2<=keyE<=Φ(n)-1,其中GCD(keyE,Φ(n))=1。

注意这是保证解密密钥keyE×keyD mod(Φ)(n)=1有解的充要条件,Φ(n)称为n的欧拉函数,值为:Φ(n)=(P-1)*(Q-1)。

(4)求解解密密钥keyD=keyE-1 mod (n) ,keyE-1为解密密钥keyD的逆元 ,此公式原方程为(keyE×keyD mod(n)=1)。

由此公钥,加密密钥和解密密钥全部产生。 其次,对明文加密或对密文进行解密,过程如下: (1)加密: C = MkeyE mod publicKey;其中M表示明文,C表示密文。

(2)解密: M = CkeyD mod publicKey; 其中M表示明文,C表示密文。

2 RSA加密解密体制简介

2.1 公钥密码算法及RSA概述[3]

公钥密码算法最主要的特点是加密和解密使用不同的密钥,且加密密钥能公开,而仅需保守解密密钥的机密的密码算法。在这种加密算法中,从公开的加密密钥无法推导出保密的解密密钥,也无法从加密密钥和密文恢复出相应的明文。最有影响的公钥密码算法是RSA,它能抵抗到目前为止己知的所有密码攻击。

RSA算法是第一个既能用于数据加密也能用于数字签名的算法,算法的名字以发明者的名字命名。RSA算法的安全性依赖于大数分解问题的难解性。算法中使用的公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。

RSA算法在ISAKMP/Oakley框架中被用做一种可能的身份认证方式。Diffie-Hellman密钥交换算法是

Word文档免费下载Word文档免费下载:RSA加密解密算法的研究与实现 (共3页,当前第1页)

RSA加密解密算法的研究与实现相关文档

最新文档

返回顶部