(笔记)区块链技术笔记——区块链中的密码学2

(笔记)区块链技术笔记——区块链中的密码学2(RSA加密算法笔记)


此篇笔记介绍应用区块链技术的密码学技术 并且参照样例进行解释 这样可能更利于理解吧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 ,求解二元一次方程 e x + ϕ ( n ) y = 1 ex + \phi(n)y = 1 ex+ϕ(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)
" 加密 " 由加密函数: m e m o d n = C m^e mod n = C memodn=C ,得到 C

加密例题

使用公钥(33,3)对信息:m 进行加密 ,信息 m = 2
所以, m e m o d n = 2 3 m o d 33 = 8 = C m^e mod n = 2^3 mod 33 = 8 =C memodn=23mod33=8=C
将C = 8 发送给接受方

解密过程

接收方收到信息 C = 8 ,使用私钥(n,d)进行解密

使用私钥(33,7)对加密信息:C = 8 进行解密
解密函数: C d m o d n = m C^d mod n = m Cdmodn=m
所以, C d m o d n = 8 7 m o d 33 = 2097152 m o d 33 = 2 C^d mod n = 8^7 mod 33 = 2097152 mod 33 = 2 Cdmodn=87mod33=2097152mod33=2
得到加密前原文为 2


2、ECC 椭圆加密算法

创立

椭圆加密算法(Elliptic curve cryptography)是一种公钥加密体制,最初由 Koblitz 和 Miller 两人于1985年提出

原理

数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。
公钥密码体制根据其所依据的难题一般分为三类:大素数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类。
但也有缺点,加密和解密操作的实现比其他机制花费的时间长。

例题描述

预备知识:欧拉函数、模反运算、逆元运算

题目

生成密钥、加密及解密过程


篇幅所限跳转继接

(笔记)区块链技术笔记——区块链中的密码学3


猜你喜欢

转载自blog.csdn.net/Tingo_L/article/details/120894582