RSA

目录

  1. 摘要
  2. 简介
  3. 证书获取
  4. 具体应用
  5. JAVA应用代码

摘要
RSA加密算法是常用的非对称加密算法,它既能用于加解密,也能用于数字签名
简介
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥和私有密钥(下面简称公钥和私钥)。
公钥和私钥是一对的,如果用公钥加密,则需要对应的私钥才能解密;如果用私有密钥对数据进行加密,那么
只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
公钥,就是公开的秘钥。公钥的作用主要用来加密和验签。公钥一般由秘钥提供方提供。
私钥,就是私有的秘钥,并且有一个秘钥保护码来保护秘钥的安全。私钥的作用主要用来解密和生签。私钥一般由秘钥提供方自己保留。

证书的获取
非对称加密算法的特点是每个人都拥有一对秘钥,一个公开的秘钥,一个私有的秘钥。因为任何人都可以落款声称她/他就是你,因此证书必须向身份认证机构来注册。这样才能表明你的身份,才能达到数字签名的功效。
生产证书需要登录CFCA购买
步骤如下
1. 相关的RA机构获得了证书的参考号(reference number)和授权码 (authorization code。)
这里写图片描述
这里写图片描述
这里写图片描述
3. 在“用户证书下载”页面,输入“证书序列号(参考号)”和“授权码”,这两码是申请方所有,可以向申请方索取。“选择CSP”选择“Microsoft Enhanced Cryptographic Provider v 1.0”,点击下载
这里写图片描述
4. 用IE查看制作的证书。打开IE浏览器,“工具-Internet-内容-证书”,选择刚才下载的证书,按需要分别导出私钥和公钥,私钥需要输入保护密码,导出过程的选择项选择默认,然后保存。
5. 导出公钥,导出文件格式选择“Base64 编码”
这里写图片描述
6. 导出私钥,设置秘钥保护码
这里写图片描述
这里写图片描述

测试证书可以通过工具生成,或者通过JAVA代码、或者keytool生成

具体应用
1.加解密 - 公钥加密、私钥解密
在日常系统的交互之间,为了保证数据信息的安全、防止信息的泄露,我们必须对机密的信息进行加密。非对称加密算法的交互双方常常采用公钥加密、私钥解密这种模式。刚开始接触RSA的一定会产生疑惑,为什么不使用私钥进行加密呢?我们顺着这个思路,如果使用私钥加密,那么任何拿到公钥的人都能通过公开秘钥解密加密的内容,那么结果很明显:机密信息就这么正大光明的泄露了。下面以第三方的快捷支付举例,第三方支付机构在发起支付请求时往往需要将客户的身份信息,卡号信息通过私钥加密后发送给银行系统,那么持有公钥的人能轻易的获知加密的内容,从而造成不可估量的后果。所以正常的系统交互一般采用公钥对机密信息进行加密,那么消息接收方拥有唯一的私钥的,这样就能确保数据的安全了。
那么问题又来了,沿用上面的例子,因为公钥是公开的,那么任何加密的信息是否都能直接和银行系统交互了呢,答案是否定的。下面就要说到数字签名的作用了。
2.数字签名-私钥生签、公钥验签
上一段可以看到仅仅使用公钥加密仍然是不够的,尤其是在系统交互之间,必须验证消息的来源。数字签名有以下2个功能:(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。可知数字签名有两个重要作用,防止数据篡改,证明数据的来源。当“发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。

【版权声明】<br>本openssl的VC软件包由王志海(DragonKing)根据openssl整理提供,Eric Young's拥有对所有源代码的最终版权,一切应用应该遵照openssl的声明。该版本为openssl-0.9.6h<br>欢迎联系本人或提意见:<br>Email:wzhah@263.net<br>HomePage: http://gdwzh.126.com[openssl中文专业论坛,提供大量中文资料]<br>【功能说明】<br>本软件包将每个openssl的apps程序做成一个可直接运行调试的VC Console 类型应用程序,方便研究和运用openssl的朋友,避免了openssl在windows下的编译问题,并且因为可以在VC环境下进行调试,使得对openssl的各个应用程序的流程更容易理解,这对openssl初学者尤其方便。希望大家多提意见。<br>【使用说明】<br>要正确使用该工程文件,呢应该从http://gdwzh.126.com获取如下目录和文件:<br>1.Windows平台下openssl动态库,包含两个dll文件,将他们拷贝到Windows/system32目录下;<br>2.Windows平台下openssl静态库,下载解压后得到一个名为lib的文件夹,包含两个lib文件;<br>3.openssl的头文件,下载解压后得到一个名为include的录。<br>4.Windows平台rsa项目文件,下载解压后得到一个名为rsa的目录,里面包含了项目主文件;<br>5.将目录lib、include、和rsa拷贝到同一个目录下;<br>6.完成上述步骤,就可以像普通的VC项目一样进行调试编译了,有任何问题,请到http://openssl.126.com提问。<br>【注意】<br>1.获取最新信息请到http://gdwzh.126.com的openssl专业论坛.<br>2.编译好的运用程序有可能需要其它的openssl文件支持,如openssl.cnf等,请参照openssl相关文档或本站信息公布。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值