(笔记)区块链技术笔记——区块链中的密码学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

  1. 单词 action 对应编码为:1、3、2、0、9、15、14(明文)
  2. 每3个数一列,形成3 x 2 的矩阵 B
  3. 任选一个三阶可逆矩阵 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=132091514A=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=110211322132091514=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=021121111C=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=021121111674443815243=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的主要内容,如果未能解决你的问题,请参考以下文章

读书笔记《图说区块链》哈希算法是区块链中保证交易信息不被篡改的单向密码机制

1.3.1 区块链中的加密算法——Hash算法(更新)

区块链与密码学第9-8讲:群签名在区块链中的应用 II

区块链与密码学第8-7讲:环签名在区块链中的应用

区块链中的加密算法:Hash算法之SHA256算法

区块链中的非对称加密技术