(筆記)區塊鏈技術筆記——區塊鏈中的密碼學1
文章目錄
- (筆記)區塊鏈技術筆記——區塊鏈中的密碼學1
- 一、隨機資料序列
- 二、對稱(單鑰)密碼
- 希爾密碼(Hill Cipher)
- 加密程序
- 解密程序
- 三、非對稱密碼
- 1、RSA演算法
- 創立
- 原理
- 例題描述
- T1、題目
- 生成密鑰、加密及解密程序
- 2、ECC 橢圓加密演算法
此篇筆記介紹應用區塊鏈技術的密碼學技術 并且參照樣例進行解釋 這樣可能更利于理解吧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=????1320?91514?????,和任意三階‘密鑰矩陣’A=????110?211?322?????
矩陣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=????110?211?322?????????1320?91514?????=????674443?815243?????
如此得到 密文: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?1?1?21??1?11?????作為密鑰,矩陣C=????674443?815243?????
將構成的 逆矩陣 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?1?1?21??1?11?????????674443?815243?????=????1320?91514?????
得到從密碼中恢復的明碼,查照密碼表得出資訊: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 < ? ( 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
生成密鑰、加密及解密程序
因為篇幅比較長 所以繼接
(筆記)區塊鏈技術筆記——區塊鏈中的密碼學2
2、ECC 橢圓加密演算法
篇幅所限跳轉繼接
(筆記)區塊鏈技術筆記——區塊鏈中的密碼學3
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/342281.html
標籤:區塊鏈
上一篇:智能合約是什么?
