加密:仿射密码加密结果为:[14,25,18]
1
2
3
4
5
6
7
8
9
10
11
12
13const p = [7, 14, 19];
const k = [9, 3];
let value = [];
function encode(p, k, value) {//加密
let l = p.length;
for (let i = 0; i < l; i++) {
value.push((p[i] * k[0] + k[1]) % 26);
}
}
encode(p, k, value);
console.log("仿射密码加密结果为:[" + value.toString() + "]");解密:
仿射密码解密结果为:[7,14,19]1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29const k = [9, 3];
const c = [14, 25, 18];
let value = [];
let v = [];
function decode(c, k, value) {//解密
let l = c.length;
exgcd(26, k[0], v);
for (let i = 0; i < l; i++) {
let m = (c[i] - k[1]) * v[1] % 26;
if (m < 0) m += 26;
value.push(m);
}
}
function exgcd(a, b, v) {//扩展欧几里得算法求逆
if (b === 0) {
v.push(1);
v.push(0);
} else {
exgcd(b, a % b, v);
let tmp = v[0];
v[0] = v[1];
v[1] = tmp - Math.floor(a / b) * v[1];
}
}
decode(c, k, value);
console.log("仿射密码解密结果为:[" + value.toString() + "]");2
维吉尼亚加密结果为:rzqpmx ovgd fwcl qvugmvy br jgqdtn
1 | const p = "please keep this message in secret"; |
3
Hill密码加密结果为:[j,i,i,y]
1 | const k = [[8, 6, 9, 5], [6, 9, 5, 10], [5, 8, 4, 9], [10, 6, 11, 4]]; |
4
仿射密码密钥生成:
1 | function generate_k() {//密钥生成 |
仿射密码加密:
1 | function encode(p, k) {//加密 |
仿射密码惟密文解密:
1 | function decode(c) {//惟密文解密 |
单表代换密钥生成:
1 | function generate_k(){ |
单表代换加密:
1 | function encode(p, k) { |
单表代换解密:
1 | function decode(c, k) { |
5
穷尽搜索的复杂度:
| | |
| – | – |
|移位|$25$|
|仿射| $\Phi (26)*26=312$|
|单表代换|$26!$|
|维吉尼亚|$26^m$|
|多表代换|$26^m$|
|置换:|$m!$|
6
分组加密:多表代换,置换密码,希尔密码。
因为他们都要先将明文分组,然后分别和密钥进行加密操作。
7
猜测密钥长度为:7
密钥对应数字为:15,17,14,20,3,4,17
解密结果为andfinallybuildacommunitynoonedoesbigthingsbythemselvesrightnowwhenpeoplearescareditiseasytobecynicalandsayletmejustlookoutformyselformyfamilyorpeoplewholookor
thinkorpraylikemebutifwearegoingtogetthroughthesedifficulttimesifwearegoingtocreateaworldwhereeverybodyhastheopportunitytofindajobandaffordcollegeifwearegoingtosavetheen
vironmentanddefeatfuturepandemicsthenwearegoingtohavetodoittogether
1 | let c = "Per zlrracm, vxmcs r qipqlczhs. Qs fcv rihw sxxhblrxh sm nkidhvzphw. Ixxvn qsn, lysh sifecs uuijrrfyg, mk xj suvc kd ss wbrzrrz uqh jpp zyw qv ylgn osfz fin isi bpgyoj, fg dm zdqzap, cl sifecsqks cdfy iu xyxey iu tipp zcni dt. Sin lj nt rfy jszcxhi jik iyfixky iysmh hzuwwwxpk izayv; mw lv olhkfxeu nr gitrhy d afgcr qkiit vjyucsdum bdw kwvcjssiilbcwc kd wwhg e ads, ohg ewuffx fscavuy; ljnt rfy jszcx hi vemt kvy hrmxichpiei rbx giwtrhzxxlgv duqhvbzqm, wlvc ns uui xdzba ws ypmsnr hf xk hijikwvf." |
Author: suyumen
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.