密码学

【重和元年·汴京陈砚书房·陈砚】

案上摊着两封信,一封是泉州蒲亚里寄来的明信,一封是夹在茶叶篓里捎来的”暗信”——一张看似寻常的家常问候,可陈砚知道里头藏着话。他把暗信逐字看过,取笔墨,在另一张纸上把每个字的首位笔画数写下来,再按一本只有他与蒲亚里才有的”密字簿”换算,半盏茶工夫,真意浮现:”广舶司疑我匿货,速归。”

陈砚搁笔,心里一沉。这”密字簿”是他与蒲亚里约定的——以《千字文》为底本,每个字对应一个数,再加约定的”移位数”错开。这是他凭记忆中的”凯撒移位”改的汉字版。管用,但慢——半盏茶才解一信。他想起记忆里更厉害的法子:维吉尼亚密码,多表替换,连频率分析都破不了。可那套是给字母文字设计的,汉字成千上万,怎么套?他皱眉,提笔在纸上画起方格——这一夜,怕是要通宵了。

一、一句话价值

密码是情报的铠甲——在徽宗朝党争暗流、宋金博弈将起的时代,谁能把消息安全地传出去又传回来,谁就握住了情报网的眼与耳。密码学是陈砚日后布局情报、海贸、军工的隐形基础设施。

二、原理

1. 密码学的根本问题

密码学解决一个问题:如何让消息只有指定收件人能读懂,旁人即使截获也无法理解。

  • 明文(plaintext):原始消息。
  • 密文(ciphertext):加密后的消息。
  • 加密(encryption):明文→密文的变换。
  • 解密(decryption):密文→明文的反变换。
  • 密钥(key):控制加密/解密的秘密参数。密钥保密,算法可公开。

安全性依赖密钥保密(柯克霍夫原则),而非算法保密——因为算法终会被对手知晓,唯有密钥可换可藏。

2. 两大基本操作

替换(substitution):把明文中的符号换成别的符号。如A→D、B→E(凯撒密码)。

换位(transposition):把明文中符号的位置打乱重排。如”HELLO”按某种规则重排为”LELHO”。

复杂密码常是替换与换位的组合。

3. 几种古典密码

凯撒密码(Caesar cipher):最简替换密码。字母表每位后移固定数(密钥)。A后移3→D,B→E……Z→C。密钥只有1—25种(26字母),暴力逐一试即可破。

单表替换密码:每个字母固定换成另一个字母(不一定是后移),密钥是26字母的任意排列,密钥数26!(约4×10²⁶),暴力不可行。但可被频率分析破解——每种语言中字母出现频率有规律(英文中E最高、T次之),统计密文中字母频率,对照明文频率,即可反推替换表。9世纪阿拉伯学者阿尔·肯迪已发明频率分析。

维吉尼亚密码(Vigenère cipher):多表替换密码。密钥是一个词组,明文每个字母用密钥对应字母决定的后移数加密,密钥循环使用。因同一明文字母在不同位置被换成不同密文字母,简单频率分析失效。16世纪发明后近三百年被认为是”不可破”,直到19世纪巴贝奇与卡西斯基找到破法(重码间距找密钥长度)。

换位密码:如栅栏密码(明文分两行交错写)、列换位(按密钥决定的列序重排)。

4. 中文密码的特殊难题

上述古典密码都为字母文字设计(26个符号)。汉字数以万计,直接套用有问题:

  • 汉字无固定顺序:字母有A—Z固定序,可”后移3位”。汉字虽有《千字文》《康熙字典》序,但序号巨大(千、万字),运算繁琐。
  • 频率分析更复杂:汉字频率分布比字母更分散,常用字约三五千,统计样本须更大。
  • 替换表巨大:单表替换须列几千字的对照表,制作与记忆负担重。

陈砚的对策:不试图给全部汉字加密,而是——

其一,限定字表法。 只对常用军情/商情字(约一二百字)加密,其余字明写。如”请”“粮”“兵”“船”“金”“危”“归”等关键字加密,其余连接字明文。这样密文既短又隐。这是宋代”字验”思路的延伸——宋真宗时已有”字验”,以固定字代固定军情(”请箭”“请粮”“请添兵”各以一字代),陈砚在此基础上加密。

其二,编号移位法(汉字凯撒)。 以《千字文》为底本(一千字,序号1—1000),每个字对应其序号。加密时序号加一个约定的”移位数”(密钥),取模1000,得新序号,新序号对应的《千字文》字即密文字。如密钥=37,明文”天”(《千字文》第1字)→序号1+37=38→第38字”日”。解密反算。密钥1—999种,可频繁更换。

其三,多表替换法(汉字维吉尼亚)。 密钥是一个短句(如”守墨”二字,对应《千字文》序号若干)。明文每个字轮流用密钥各字对应的移位数加密。如密钥”守墨”,明文第1字用”守”的移位数、第2字用”墨”的移位数、第3字又用”守”……如此同一明文字在不同位置换成不同密文字,频率分析失效。密钥可频繁更换且不必长。

其四,换位+替换组合。 先用替换加密成密文,再把密文字序按约定的换位规则打乱,进一步增加破译难度。

5. 频率分析与其对抗

频率分析是单表替换的克星。陈砚须确保:

  • 用多表替换(维吉尼亚式)对抗频率分析。
  • 密文足够短(几十字),样本不足以统计频率。
  • 密钥频繁更换,使对手积累的密文样本失效。

⚠️ 存疑:陈砚凭记忆知道频率分析与维吉尼亚密码的原理,但他不是密码学专家,破译对手密码的能力有限。他能做的是”加密自己消息”,而非”破译敌方消息”。若须破译,须长期积累密文样本+试错,工程量巨大。诚实标注此局限。

6. 隐写术:藏住”有密文”这件事

密码学保护”消息内容”,隐写术保护”消息存在”这件事——让对手根本不知道有密文。宋代”阴书”(拆简分送)、”字验”(以平常字代军情)已是隐写雏形。陈砚可加用:

  • 藏头诗:密文藏于诗的每句首字。
  • 藏字于文:约定读每段第几字连成密文。
  • 密写:以某种液体(如米水、明矾水)书写,干后隐形,加热或刷特定液体显字。> ⚠️ 存疑:米水、明矾水的密写效果陈砚凭记忆知道原理,但具体配方须试错。明矾宋代可得,米水更易得,可试。

三、北宋原料可行性

材料/条件 用途 北宋可得性 备注
《千字文》 编号底本 充足,蒙学通用 一千字,序号1—1000
纸笔墨 书写密文 充足
阿拉伯数字 标注序号 已引入 便于运算
明矾 密写液 可得 试错配方
米水 密写液 充足 试错配方
传信牌/符契 物理密钥载体 宋代已有
蜡封 封缄防拆 充足
火漆 高级封缄 可得

结论:北宋具备密码学的全部物质条件,且宋代已有”字验”“传信牌”“阴书”等雏形。陈砚的增值在数学化(编号移位、多表替换)与系统化。

四、工艺流程

第一步:编”密字底本”

以《千字文》为底本,每个字标序号1—1000(用阿拉伯数字标注)。制一式两份,陈砚与各联络人各执一份,秘藏。底本须手抄,不可外传,不可印刷。

变体:为缩短密文,可另编”军情密字表”——只列常用军情/商情字约二百,每字编号1—200。此表短,加密解密快,但安全性略低(字表小,对手易猜)。陈砚可两套并用:长底本用于高密,短表用于速信。

第二步:约定密钥

密钥是与联络人约定的秘密参数。可分两类:

  • 单密钥(汉字凯撒):一个数(1—999),定期更换(如每月一换)。如”五月密钥=137”。
  • 多密钥(汉字维吉尼亚):一个短句(如”守墨”二字,各对应《千字文》序号),用各序号作移位数轮流加密。短句可每月一换。

密钥须以口头或密写方式传递,绝不落明文。密钥更换时,旧密钥即废。

第三步:加密(汉字维吉尼亚示例)

明文:”金船已发三佛齐”(七字)

密钥短句:”守墨”——”守”为《千字文》第X字,”墨”为第Y字。假设X=137、Y=289。

加密:

明文字 《千字文》序号 密钥字 密钥序号 密文序号=明+密(mod 1000) 密文字
a 137 (a+137) mod 1000 字甲
b 289 (b+289) mod 1000 字乙
c 137 (c+137) mod 1000 字丙
d 289 (d+289) mod 1000 字丁
e 137 (e+137) mod 1000 字戊
f 289 (f+289) mod 1000 字己
g 137 (g+137) mod 1000 字庚

密文为”字甲字乙字丙字丁字戊字己字庚”七字,外人看是无意义字串。

第四步:解密

收件人以同一密钥反算:密文序号−密钥序号(mod 1000)=明文序号→查底本得明文字。

第五步:换位加固(可选)

加密后再换位——如把七字按”2、5、1、4、7、3、6”顺序重排,进一步打乱。解密时先反换位、再解密。密钥须含换位规则。

第六步:隐写包装

密文七字本身无意义,易引怀疑。陈砚可把密文嵌入一封家常信——如约定每段第3字连读为密文。整封信读来是寻常问候,只有按约定抽取才得密文。

第七步:封缄与传递

信件以蜡封或火漆封缄,封口压印记,防拆。若被拆封,印记破损,收件人可知。传递经可靠驿传或专人,不假手陌生物流。

第八步:密钥管理与销毁

  • 密钥定期更换(每月或每事一换)。
  • 旧密钥用毕即焚,不留痕迹。
  • 底本与密钥分人分地保管,底本失窃则整套作废换新。
  • 培训联络人,确保流程一致。

五、难点

难点一:汉字底本的运算负担。 《千字文》一千字,加密解密须反复查表+加减+取模,耗时。陈砚的对策:(1) 短信用”军情密字表”(二百字),运算快;(2) 培训专人司密码,熟能生巧;(3) 长信拆成数段,分段加密。

难点二:密钥传递的安全。 密钥须秘密送达联络人,但任何传递都有被截风险。陈砚的对策:(1) 密钥以密写(明矾水)写于寻常信中,外人看不见;(2) 密钥分两部分,经两条不同渠道传递,须两份合璧方可用;(3) 重大密钥口头当面约定,不经信件。

难点三:频率分析的威胁。 若对手截获大量同一密钥的密文,可能用频率分析破译。陈砚的对策:(1) 用多表替换(维吉尼亚)使频率分析失效;(2) 密钥频繁更换;(3) 密文尽量短;(4) 重要消息加换位。

难点四:密文被识别。 一串无意义字易引怀疑。陈砚的对策:隐写包装,把密文藏于家常信中,按约定抽取。

难点五:人为泄密。 密码再好,人不可靠则全盘崩溃。宋代军中”输情于敌”(主动泄密)屡见,是密码学无法解决的根本问题。陈砚的对策:(1) 密码只传核心数人,不扩散;(2) 分级保密,不同层级用不同密钥,局部泄露不致全局崩溃;(3) 严选联络人,利益绑定(合伙、联姻)。

难点六:破译对手密码的能力有限。 陈砚能加密自己的消息,但破译宋金官方或敌方密码须长期积累,且宋代官方密码(字验等)较简单,他或可尝试,但非所长。诚实标注:陈砚的密码学是”防守型”而非”进攻型”。

六、价值评估

维度 评估
难度 ★★★ 数学不难,但系统化与培训须反复
立身价值 ★★★★ 情报网、海贸、军工的隐形基础设施
变现速度 慢 须长期布局方见价值
政治风险 ★★★★ 涉军事通信,敏感
推荐优先级 中后期布局情报网时必做

政治风险说明:密码本身不违法,但私用密码传军情涉”刺探军机”“通敌”之嫌,徽宗朝党争与宋金博弈下极敏感。陈砚策略:(1) 早期只用于商情(海货行情、船舶动向),包装为”商号密账”;(2) 不涉军政;(3) 与官府保持距离,不被任何一方利用;(4) 暗中布局,待时局需时方启用军情密码。

七、升级路径

第一阶(1118前,商情密码):以汉字凯撒/维吉尼亚加密商情(海货行情、船舶动向、资金调拨),培训蒲亚里等核心联络人。验证密码可靠性与流程效率。

第二阶(1118—1122,情报网密码):扩展至情报网各节点(港口、驿站、市井眼线),分级密钥,多表替换+换位+隐写组合。建立密钥管理与销毁制度。

第三阶(1122后,军政密码):宋金局势紧张时,启用军政密码,传备战情报、人员调动、物资储备。严选联络人,利益绑定,分级保密。

终极形态:覆盖海贸、情报、军政三层密码体系,分级密钥、多表替换、换位、隐写组合,配合密钥管理与销毁制度,构成陈砚情报网的”安全通信骨干”。在靖康前夕的乱世,这套密码是陈砚布局与自保的隐形支柱。

八、参考

  • 《武经总要》(曾公亮等编,1044年):宋代”字验”——以固定字代固定军情(”请箭”“请粮”“请添兵”等各以一字为暗号),配合传信牌传递。此为宋代军情密码雏形。
  • 《六韬·龙韬·阴符》:阴符八种(长寸至尺八寸),各代表不同军情。阴书——拆简分送,合璧方读。此为先秦军情保密法。
  • 《翠微北征录》(华岳,南宋):”名递之法”“数递之法”——以暗语传军情,如”人皆畏炎热”中”人”代”乞军器”、”皆”代”乞粮食”。此为隐写术实例。
  • 凯撒密码:罗马共和时期凯撒所用,字母后移固定数。最简替换密码,易被频率分析破。
  • 频率分析:9世纪阿拉伯学者阿尔·肯迪发明,统计密文字母频率对照明文频率破单表替换。
  • 维吉尼亚密码:1553年Bellaso发明,1586年Vigenère改进。多表替换,密钥循环使用,简单频率分析失效。19世纪巴贝奇与卡西斯基找到破法(重码间距找密钥长度)。
  • 柯克霍夫原则(19世纪):密码安全性依赖密钥保密而非算法保密。
  • 隐写术:藏住”有密文”这件事,与密码学互补。藏头诗、藏字于文、密写液等。

天将亮时,陈砚把那张画满方格的纸收起——汉字维吉尼亚的方格表,他与蒲亚里的新版密钥,已初具雏形。他吹灭油灯,揉了揉眼,心想:这法子比旧”密字簿”快不了多少,但安全得多——旧簿是单表替换,截获几十封信就能被频率分析破;新法多表替换,同一字在不同位置换不同字,便是截获一百封也难破。他把新方格表誊抄两份,一份自留,一份待会儿交给即将南下的信使——连同新密钥,藏在一只茶叶篓的夹层里。门外,汴京的晨钟刚响第一声。