(笔记)区块链技术笔记——区块链中的密码学1
Posted 山南打柴人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(笔记)区块链技术笔记——区块链中的密码学1相关的知识,希望对你有一定的参考价值。
(笔记)区块链技术笔记——区块链中的密码学1
文章目录
此篇笔记介绍应用区块链技术的密码学技术 并且参照样例进行解释 这样可能更利于理解吧hahaha 本篇为前导知识笔记
密码学中将
(1)信息代码称为 编码
(2)尚未转换成密码的文字信息称为 明文
(3)由密码表示的信息称为 密文
(4)从明文到密文的过程称为 加密 ,反之为 解密
一、随机数据序列
通常使用 线性同余 的方法生产随机数
举例题
已知 m = 11,a = 7,c = 5,s = X0 = 3 试利用线性同余方法求出此伪随机数
由公式Xn = (aXn-1 + c) mod m
X1 = (aX0 + c) mod m = (7 * 3 + 5) mod 11 = 4
X2 = (aX1 + c) mod m = (7 * 4 + 5) mod 11 = 0
X3 = (aX2 + c) mod m = (7 * 0 + 5) mod 11 = 5
X4 = (aX3 + c) mod m = (7 * 5 + 5) mod 11 = 7
以此类推 得:X5 = 10,X6 = 9,X7 = 2,X8 = 8,X9 = 6,X10 = 3 ……
因为 X10 = 3 --> 恰好等于种子数 s = X0 = 3
所以在X10之后的数开始循环 得伪随机数:
3,4,0,5,7,10,9,2,8,6,3,4,0,5,……
二、对称(单钥)密码
希尔密码(Hill Cipher)
是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。
举例题 现发送信息字段 action
将英文字母对应A、B、C、D……X、Y、Z 对应数字 1 ~ 26
- 单词 action 对应编码为:1、3、2、0、9、15、14(明文)
- 每3个数一列,形成3 x 2 的矩阵 B
- 任选一个三阶可逆矩阵 A 作为 密钥
加密过程
得 到 的 矩 阵 B = { 1 9 3 15 20 14 } , 和 任 意 三 阶 ‘ 密 钥 矩 阵 ’ A = { 1 2 3 1 1 2 0 1 2 } 得到的矩阵 B = \\begin{Bmatrix} 1 & 9 \\\\ 3 & 15\\\\ 20 & 14 \\end{Bmatrix} , 和任意三阶 ‘密钥矩阵’ A = \\begin{Bmatrix} 1 & 2 & 3\\\\ 1 & 1 & 2\\\\ 0 & 1 & 2 \\end{Bmatrix} 得到的矩阵B=⎩⎨⎧132091514⎭⎬⎫,和任意三阶‘密钥矩阵’A=⎩⎨⎧110211322⎭⎬⎫
矩阵A x B 得到加密后的密文矩阵 C
C = A B = { 1 2 3 1 1 2 0 1 2 } { 1 9 3 15 20 14 } = { 67 81 44 52 43 43 } C = A\\ B = \\begin{Bmatrix} 1 & 2 & 3\\\\ 1 & 1 & 2\\\\ 0 & 1 & 2 \\end{Bmatrix}\\begin{Bmatrix} 1 & 9 \\\\ 3 & 15\\\\ 20 & 14 \\end{Bmatrix} = \\begin{Bmatrix} 67 & 81\\\\ 44 & 52\\\\ 43 & 43 \\end{Bmatrix} C=A B=⎩⎨⎧110211322⎭⎬⎫⎩⎨⎧132091514⎭⎬⎫=⎩⎨⎧674443815243⎭⎬⎫
如此得到 密文:67、44、43、81、52、43
将获得的 密文 与 矩阵A 一同发出
解密过程
收到 密文:67、44、43、81、52、43后也构建一个3 x 2的矩阵C
利用收到的 矩阵A 求出 逆矩阵 A − A^- A−
A − = { 0 1 − 1 2 − 2 − 1 − 1 1 1 } 作 为 密 钥 , 矩 阵 C = { 67 81 44 52 43 43 } A^- = \\begin{Bmatrix} 0 & 1 & -1\\\\ 2 & -2 & -1\\\\ -1 & 1 & 1 \\end{Bmatrix}作为 密钥 ,矩阵 C = \\begin{Bmatrix} 67 & 81 \\\\ 44 & 52\\\\ 43 & 43 \\end{Bmatrix} A−=⎩⎨⎧02−11−21−1−11⎭⎬⎫作为密钥,矩阵C=⎩⎨⎧674443815243⎭⎬⎫
将构成的 逆矩阵 A − A^- A− 与 矩阵C 相乘
A − C = { 0 1 − 1 2 − 2 − 1 − 1 1 1 } { 67 81 44 52 43 43 } = { 1 9 3 15 20 14 } A^-\\ C = \\begin{Bmatrix} 0 & 1 & -1\\\\ 2 & -2 & -1\\\\ -1 & 1 & 1 \\end{Bmatrix}\\begin{Bmatrix} 67 & 81 \\\\ 44 & 52\\\\ 43 & 43 \\end{Bmatrix} = \\begin{Bmatrix} 1 & 9\\\\ 3 & 15\\\\ 20 & 14 \\end{Bmatrix} A− C=⎩⎨⎧02−11−21−1−11⎭⎬⎫⎩⎨⎧674443815243⎭⎬⎫=⎩⎨⎧132091514⎭⎬⎫
得到从密码中恢复的明码,查照密码表得出信息:action
至此解密完成
三、非对称密码
在对称加密算法中,加密和解密过程中使用的是同一个秘钥。而非对称加密算法需要两个密钥来进行加密和解密,这两个密钥分别是公开的密钥(public key,简称 公钥 )和私有密钥(private key,简称 私钥 )。
1、RSA算法
创立
于1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的,
* RSA由三人姓氏首字母组成
原理
RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥
例题描述
预备知识:欧拉函数、模反运算
T1、题目
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 < ϕ以上是关于(笔记)区块链技术笔记——区块链中的密码学1的主要内容,如果未能解决你的问题,请参考以下文章