(笔记)区块链技术笔记——区块链中的密码学2(RSA加密算法笔记)
文章目录
(笔记)区块链技术笔记——区块链中的密码学2(RSA加密算法笔记)三、非对称密码1、RSA加密算法创立原理例题描述题目获得密钥加密过程加密例题解密过程2、ECC 椭圆加密算法创立原理例题描述题目生成密钥、加密及解密过程此篇笔记介绍应用区块链技术的密码学技术 并且参照样例进行解释 这样可能更利于理解吧hahaha 非对称密码较难理解,需要有准备知识,如欧拉函数、对取模运算和模反运算较为熟悉。 继接(笔记)密码学1
(笔记)区块链技术笔记——区块链中的密码学1
三、非对称密码
在对称加密算法中,加密和解密过程中使用的是同一个秘钥。而非对称加密算法需要两个密钥来进行加密和解密,这两个密钥分别是公开的密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
1、RSA加密算法
创立
于1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的,
* RSA由三人姓氏首字母组成
原理
RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥
例题描述
预备知识:欧拉函数、模反运算题目
step1:随机选择两个不相等的质数 p 和 q
例如选择 p = 3 ,q = 11
step2:计算p和q的乘机n, n = pq , n = 3 * 11 = 33
step3:计算 n 的欧拉函数 ϕ(n)=ϕ(33)=20\phi(n) = \phi (33) = 20ϕ(n)=ϕ(33)=20
step4:随机选择一个整数e,满足1<e<ϕ(n),且e与ϕ(n)互质1 < e < \phi(n),且e与 \phi(n) 互质1<e<ϕ(n),且e与ϕ(n)互质
随机取得 e = 3 , n = 33 , ϕ(n)=20\phi(n) = 20ϕ(n)=20
获得密钥
step1:计算 e对ϕ(n)e 对 \phi(n)e对ϕ(n) 的模反元素 d
模反元素 d ,求解二元一次方程 ex+ϕ(n)y=1ex + \phi(n)y = 1ex+ϕ(n)y=1 , 选择其中一个解,得 d = 7
step2:将(n,e)封装成‘公钥’,(n,d)封装成‘私钥’
通过将 e = 3 , n = 33 , ϕ(n)=20\phi(n) = 20ϕ(n)=20 代入上公式
所以公钥就是(33,3),私钥就是(33,7)
加密过程
例如:发送加密信息:m 给接收方
使用公钥(n,e) 加密信息:m (m 必为整数,且 m < n)
" 加密 " 由加密函数:memodn=Cm^e mod n = Cmemodn=C ,得到 C
加密例题
使用公钥(33,3)对信息:m 进行加密 ,信息 m = 2
所以,memodn=23mod33=8=Cm^e mod n = 2^3 mod 33 = 8 =Cmemodn=23mod33=8=C
将C = 8 发送给接受方
解密过程
接收方收到信息 C = 8 ,使用私钥(n,d)进行解密
使用私钥(33,7)对加密信息:C = 8 进行解密
解密函数:Cdmodn=mC^d mod n = mCdmodn=m
所以,Cdmodn=87mod33=2097152mod33=2C^d mod n = 8^7 mod 33 = 2097152 mod 33 = 2Cdmodn=87mod33=2097152mod33=2
得到加密前原文为 2
2、ECC 椭圆加密算法
创立
椭圆加密算法(Elliptic curve cryptography)是一种公钥加密体制,最初由 Koblitz 和 Miller 两人于1985年提出
原理
数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。
公钥密码体制根据其所依据的难题一般分为三类:大素数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类。
但也有缺点,加密和解密操作的实现比其他机制花费的时间长。
例题描述
预备知识:欧拉函数、模反运算、逆元运算
题目
生成密钥、加密及解密过程
篇幅所限跳转继接
(笔记)区块链技术笔记——区块链中的密码学3