3 公钥加密算法
加密工具使用
-
运行RSA-Tool,点击Start按钮,滑动鼠标生成一个随机数。点击Generate生成一对大质数p、q及N=p×q。
-
自己选定一个可用的整数e(可使用默认的10001,也可以使用其他的)。点击Calc.D生成d。
3 将公钥(N,e)发送给小伙伴,小伙伴利用该公钥进行消息加密并发回密文。利用私钥对小伙伴发来的密文进行解密。(可打开两个窗口进行操作,注意按钮不可点击时需要点generate或encript激活test和decript按钮)
RSA算法的数学原理
1 调试运行RSA.cpp,选择两个不同的素数。
2根据生成的d和e验证公式d×e ≡ 1 (mod (p-1)(q-1))
3 验证密钥是否有效(加密解密的计算过程和结果是否正确)
17*71=697 17^3=4913
利用RSA-Tool加密消息
- 运行RSA-Tool,点击Start按钮,滑动鼠标生成一个随机数。
- 点击Generate生成一对大质数p、q及N=p×q。
- 自己选定一个可用的整数e。
- 点击Calc.D生成d。
- 至此创建了一对公钥和私钥。
- 将公钥(N,e)发送给小伙伴,小伙伴利用该公钥进行消息加密并发回密文。
- 利用私钥对小伙伴发来的密文进行解密。
注:加密时仅需要e和N,解密时仅需要d和N。
利用RSA算法实现对称密钥的安全分配
-
小A同学准备一些文字,选择一个密钥利用DES-Tool对文字进行加密得到密文1。
miwenyi:9152378DB43D33D6
2 小B同学运行RSA-Tool,生成公钥和私钥,将公钥发送给小A同学,私钥自己留存。
gong:7B8842C3703D1E283E70E56D64CC0D0477339D6CBA560B65F8E74F27A1C51E51/10001 si:CD710F9778522C954143004BAE16AC8D1F21F56F54285A756AFE4DB0C0CA7B1
3 小A同学利用小B同学的公钥对加密信件时使用的对称密钥进行加密,得到密文2。将密文1和密文2一同发送给小B同学。
miwen2: 694DFB1C7ACB8F1B0C2C1853331A72B0D7902778114A74F4786AB0A60643219E miwen1:9152378DB43D33D6
4 小B同学首先用自己的私钥解密密文2,接着利用解密密文2得到的对称密钥在DES-Tool中解密密文1,得到原始文字内容。
利用RSA算法生成数字签名
1. 小A同学运行Hash-Tool,生成某文件的MD5值。
2C7460AF9C442DCFDC491DB2ADC3B482
2 小A同学利用RSA Tool对生成的MD5值进行私钥加密(反向使用RSA算法,Generate生成密钥后将D和E交换位置,再用test进行加密)。
11949D81C1FB5C1DA92E3A418ACC4A10A022887D6DBE5FA4D9067D1BC8480D12
3小A同学将公钥、文件和加密后的MD5一起发送给小B同学,由小B同学验证数字签名的正确性(软件中先激活test按钮,再填写公钥进行解密)。