1 RSA加密算法简介
RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。
今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战。
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
RSA 加密算法机制详细描述
详见:http://blog.csdn.net/blackkey2008/article/details/44039229
2 OpenSSL 进行RSA加解密
2.1 OpenSSL 简介
SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。
SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
在OpenSSL被曝出现严重安全漏洞后,发现多数通过SSL协议加密的网站使用名为OpenSSL的开源软件包。OpenSSL漏洞不仅影响以https开头的网站,黑客还可利用此漏洞直接对个人PC发起“心脏出血”(Heartbleed)攻击。据分析,Windows上有大量软件使用了存在漏洞的OpenSSL代码库,可能被黑客攻击抓取用户电脑上的内存数据。
2.2 Windows 下OpenSSL 安装详解
2.2.1 安装环境
1、操作系统:Windows 7 Service Pack 1
2、C++编译器:VC++
2.2.2 程序包下载
1、下载ActivePerl 5.10.1.1007(最新的版本或较低的版本也可以):
下载地址:http://www.activestate.com/activeperl/downloads/
(当前的最新版本为ActivePerl5.10.1.1007 ,只要按照Windows下一般程序的安装步骤进行即可~~~在此就不赘述了)
2、下载 openssl-0.9.8m(当然也可以最新的版本)并解压。
下载地址:http://www.openssl.org/source/
2.2.3 ActivePerl和OpenSSL的安装
2.2.3.1 安装Perl
只要按照Windows下一般程序的安装步骤进行即可~~~在此就不赘述了
(我的安装目录为C:\perl)
使用管理员权限运行“CMD”命令,使用cd命令进入C:\perl\eg目录下,执行“perlexample.pl”命令,若显示“Hello fromActivePerl!”,则说明Perl安装成功,可以开始使用Perl的相关命令来进行OpenSSL的安装了。
如下图:
2.2.3.2 安装编译OpenSSL三方库
解压缩OpenSSL后,进入OpenSSL目录,下面有两个文件INSTALL.W32和INSTALL.W64,用记事本方式打开,你可以看到详细的关于安装的解释。
总结安装步骤
1、> perl Configure VC-WIN32 no-asm --prefix=c:/some/openssl/dir
2、> ms\do_ms
3、> nmake -f ms\ntdll.mak
如果编译成功,最后的输出都在OpenSSL的根目录下out32dll文件夹中,该文件夹中包括可执行文件、dll和lib文件、我们要用到的为: libeay32.dll,libeay32.lib, ssleay32.dll, ssleay32.lib ;把他们放到PATH环境变量对应的一个目录里就可以了。
2.3 OpenSSL-RSA加解密示例
下载地址:http://download.csdn.net/detail/blackkey2008/8469209