《御赐小仵作》里的反切密码的原理是什么?
2021-05-31 21:00

《御赐小仵作》里的反切密码的原理是什么?

本文来自微信公众号:果壳(ID:Guokr42),作者:清洁工,编辑:栗子,原文标题:《<御赐小仵作>里的反切密码,原理像汉语拼音一样简单?》,头图来自:《御赐小仵作》


最近播出的剧集《御赐小仵作》中有这样一个桥段:在晚唐的乱世,驸马萧恒设计了一套“反切密码”来传递某种信息。



从声部诗里取一字(的声母),从韵部诗里取一字(的韵母),可以拼出另一个字(的读音)丨《御赐小仵作》


他写了一首声母诗,一首韵母诗,声母拼韵母,拼出一篇“拼音”文,并用数字(苏州码子)加密。 


请放心,本文不是来剧透的,仅仅想从技术上讨论一下:假如咱们谁也穿越到古代,用这个思路设计密码可行吗,瞒得住别人吗? 


反切法:佛教带来的“拼音”


如今的我们,即便上过这么多年学,也总会遇到汉字读音问题,比如:


这扇门卡住了,推不动。 


“卡”该怎么读?在字典上,“卡”的默认读音是qiǎ,只有在音译词(比如卡片、卡车、卡路里……)、拟声词或方言词中有时读。 


本文不讨论字典对错,那是另一个很复杂的问题。此处要说的是,现今我们至少可以利用汉语拼音来记录字的读法。但在近代发明各类拼音以前,古人会怎样描述这两个音呢? 


直音法


“直音法”名字很高端,道理很简单,其实就是找同音字。比如《西游记》里有个“井木犴”。不会读,怎么办?找个同音字: 


犴,音“岸”。 


理想的同音字要满足两个条件:①比被注音的字简单;②自己最好不是多音字。可是实践中,别说理想同音字了,就连不理想的,有时也找不到。 


就拿kǎ与qiǎ来说吧。“卡”读时能有什么同音字?“咔唑”(kǎzuò)的“咔”不仅是多音字(“咔嚓”(kāchā)的“咔”),想认识它你还需要先听几节有机化学。读qiǎ时就更要命了,它的同音字,比如“酠”和“跒”,一般字典上都不见得有。 


仅在现代汉语3500常用字中,类似的情况还有一百多例:“大、水、北、口、牛、猫、胖、肉、打、走、说、跑、扔、弄、扛……”[1]更何况,谁和谁是同音字,在不同方言中往往也不相同。所以说,“直音法”常常不好用。 


譬况法


古人一计不成,又生一计,发明了譬况法。譬况就是比喻,找近音字打比方。比如《淮南子·地形训》说西方“其地宜黍,多旄犀。”会读“旄”吗?不会也别急,有请古人解释给你听: 


“旄”读“绸缪”之“缪”,急气言乃得之。 


图丨乾隆五十三年武进庄氏咸宁官舍刊本《淮南子》书影


“旄”的读法就是把“缪”字“急”着“气”读。看官您有没有恍然大悟,豁然开朗的感觉呢?反正我在研究中每次碰到这样的注音都会气急败坏,浑身上下脑袋疼。甚至就连古代那些大名鼎鼎的顶级语言学家,往往会也读得一脑袋问号。 


反切法


在很长一段时间里,上面的这些缺陷一直困扰着古人。直到后来,佛教的传入意外地解决了这一难题。 


自西汉末年至东汉初年,佛教逐步传入中国,顺便还产生了一个副产品,那就是带动了中国人学外语的热情。很多人学习了梵语,而梵文是一种字母文字。字母捅破了古人脑中的一层窗户纸:原来人类平时说的一个个音节是可以继续往下拆的! 


把一个音节拆开丨作者供图


于是,中国也有了声和韵的概念,难题迎刃而解:别管哪个音,与它声母相同或者韵类相同的常用字总有一大堆(有个别反例,比如普通话的“而”与“二”,但比例非常非常小)到东汉后期,古人最终发明了反切法。 


反切是用两个字给一个字注音。比如说“”,它的反切可以是“博故切”。 


布的读音=博的声母+故的韵类丨作者供图


这条反切碰巧按照现代汉语普通话也能读通。上字“博”声母是b,下字“故”韵类是ù,合起来,b+ù=bù。不过,由于反切一般都是古人按古音设计的,像这样能直接用现代汉语切出来的情况比较少见。对现代人来说,利用古人留下的反切来推知读音是一项需要系统学习、反复训练才能掌握的专业技能。 


但在创立之初,反切法对古人来说易懂好用,慢慢就流行了起来。此后,一直到近代社会出现各种各样的拼音以前,反切法一直是汉语世界最主流的注音方法,地位略似现在的汉语拼音方案。但凡会读点经史要籍,会查字典的古人,大概没有哪个是没接触过反切的。 


反语梗:古人说烂梗也挨打


古人非常爱反切,以至于单独形成了一类梗,一般称作“反语”。钱钟书《管锥编》上有一段很有名的总结:“三国至唐,利口嘲弄,深文吹索,每出此途。”[2] 


反语梗的地位有点类似今天的谐音梗:有人爱得深沉,遇到人就讲;有人烦得痛切,听到了就打。它也分好多类,最常见的是这样:找个双音节词,比如“AB”吧,古人用“AB切”切出一个C,再用“BA切”切出另一个D,CD就是AB的“反语”。 


比如我们知道《玉树后庭花》的作者是陈后主陈叔宝。这位活宝经常作死,是陈国的亡国之君。《二十四史》中的《南史》就说:“叔宝”这个名字本来就不太行,因为“叔宝切”可以谐音“少”,“宝叔切”恰好等于“福”。“叔宝”的“反语”近似“少福”,早晚要倒霉。 


“叔宝”与“少福”丨作者供图


不过陈叔宝自己肯定也觉得冤枉:当时的“少”属于心母宵部,而“叔宝切”理论上是书母豪部,无论声、韵还是介音都不完全一样,这么七拐八拐就把自己的福拐少了,谐音梗真是太害人了! 


而隋朝灭陈,名义上的总司令是隋朝王子杨广,他本来叫杨英。后来他老爸隋文帝杨坚说:“杨英”的反语不太吉利,谐音“赢殃”。“赢”有遭受的意思,“赢殃”就是遭殃。 


“杨英”与“赢殃”丨作者供图


想到这,老爸杨坚赶紧给他改名杨广。可好名字并没有带来好运。杨坚死后十四年,杨广在距离陈叔宝亡国之地不远的江都宫中被手下勒死,与他一起毁灭的还有整个大隋王朝。他就是隋炀帝。 


很多人因反语而改名,可能还有人为反语而挨打。《太平广记》卷二五五《嘲诮三》引《启颜录》记载,唐玄宗时期,派了个牙掉光了的人去当安陵县(在今湖南永兴)的县令。 


“唐安陵人善嘲”丨民国影嘉靖本《太平广记》 书影


当时,安陵人擅长玩梗。县令就很担心别人玩梗嘲笑自己的口腔问题,可他只听到了赞美声。比如有个手下就夸他写文章超快。 


这是说他业务能力强呀!县令听完也超开心。没想到几个月后,那位手下有个仇人跑来对县令打小报告:那是在拐着弯骂您呀! 


何以见得呢?仇人说:写文快,可以总结成“奔墨”。 


所以呢?仇人接着解释:“奔墨”的反语是“北门”。 


图丨作者供图


古代建筑坐北朝南便于采光,有个北门说明房屋后面有个缺口,这叫“缺后”。 


然后,仇人又开始反语了:“缺后”的反语是口穴”。 


图丨作者供图


“口穴”就是说嘴里没牙,是个大窟窿呀! 


梗埋这样深,都可以挖出石油了吧?县令气得把那个夸过他的手下痛揍一顿。这一切悲剧都源于手下夸县令写文快。所以说,古人的智慧告诉我们:写文快不是好事,多拖稿才是正道。 


反切密码:反切这么流行,能当密码嘛?


古人看书、查字典要看反切,考试前要背反切,平时斗嘴还要用反切。反切这样流行,还能当密码吗? 


剧里的办法,好像不行


剧里给了一首声部诗,一首韵部诗,最后用苏州码子加密。我们分开讨论。 


1. 声部诗与韵部诗 


故事发生在晚唐。其实唐朝和现在一样,各地都有方言。我不知道角色老家是哪,姑且按照唐朝官方推荐的超复杂《切韵》音系和一般认为比较接近晚唐时期共同语口语的“朱翱音系”来讨论。 


先看声母。《切韵》音系有37个声母(据邵荣芬《切韵研究》[3],下同)而剧中的声部诗只有23字,不仅数量少,规律性也很弱,分属19个不同声母,“桃”与“荡”“微”与“媚”“采”与“清”“旁”与“浮”声母相同。 


声部诗,并非“字字声部皆不同”丨《御赐小仵作》


声部诗中出现的字在《切韵》音系的声母分布。黄色表示出镜一次,红色表示出镜两次。下同丨作者供图


若按朱翱音系,情况会稍好一点。朱翱音系只有36个声母(据张慧美《朱翱反切新考》[4],下同),而且“微”与“媚”“旁”与“浮”都不再属于同一个声母了。此时那23字对应21个声母,占所有声母的7/12。 


韵母的问题则会更大一些。剧中韵部诗一共只有35字,可《切韵》音系一共有206小韵,光韵部就分95类。而且,韵部诗中“穷”与“中”“谢”与“灞”“伤”与“相”“秋”与“愁”还是同小韵的。它只能覆盖31小韵。


韵部诗,并非“字字韵部皆不同”丨《御赐小仵作》


韵部诗中的字在《切韵》音系当中的小韵分布。这是滑动图,下滑查看完整表格丨作者供图


若按朱翱音系,虽然韵与韵部的数量会大幅减少,但是撞车问题也会随之更加严重:唐代口语中“阳韵”与“唐韵”根本不分,会出现“光”“伤”“相”三字同韵的问题。 


2. 苏州码子


看过英剧《神夏》的人可能都还记得,剧中有一套来自古老中国的数码字,叫作“苏州码子”。在《御赐小仵作》中,这套数码字被用于加密数字。但苏州码子在唐朝还没有出现


苏州码子0-9丨 Voidvector


驸马留下的苏州码子丨 《御赐小仵作》


有种说法认为,古代中国数学不太辉煌,都怪没有发明好用的数码字。用汉字列竖式,想想就鬼畜。这其实是因果倒置:多数古人不太重视数学,社会需求小,所以数码字才不流行。毕竟和复杂的数学难题相比,设计几个数字显然简单得多了。 


目前我们能看到的最古老的中国数码字是敦煌出土的唐代《立成算经》(斯·三九〇)。它基本就是把算筹的摆法画了下来,满眼“—”和“丨”,没有零。 


唐代《立成算经》书影。每一小列最下面那些横线、竖线就是数码字丨《敦煌宝藏》第七册第555页,台湾新文丰出版公司1986


到了宋元之际,秦九韶(还记得怎么用三角形三边长求面积吗?)、李治、杨辉(还记得杨辉三角形吗?)等人陆续改进了数码字,甚至愉快地用它列出了方程。再到明清时期,商人们逐步改编出了现在我们看到的苏州码子。[5] 


南宋数码1到0十个数丨钱宝琮《中国数学史》第173页


回到剧情。唐朝的数码字还在画算筹时代,如果抢先用上几百年后的苏州码子,敌人也可能意识不到这是数字。不过,具体到剧中这套密码,依主角讲述的加密规则,可能也很难对应到剧中的声部诗和韵部诗上。 


剧里的不行,应该怎么办?


假如我们有幸或者不幸穿越到晚唐乱世,该怎么利用反切设计一套密码呢?Zhijie xie fanqie de jiami xiaoguo hui he zhe ju hua yiyang cha,我们需要更复杂的设计。 


就用贴近晚唐口语的朱翱音系举例吧。这个音系有36种声母,59种韵部,4个声调。在追求简便易懂的前提下,我们需要四位数字来表示一个音节。 


前两位代表声母和声调,后两位代表韵部丨作者供图


声母有36个,不过由于好多声母各有自己相好的韵母,彼此没有交集。如果掌握规律,需要区分的只有22类。 


需要区分的22类声母丨《七音略》书影


就是第一行这22个字(不含“喻”)。穿越前抄一遍,过去以后直接抄作业就行。


声调一共四个,分别叫平、上、去、入,其中入声自己算一类韵部,我们需要区分的是平、上、去三类。22×3=66,前两位编码只需66个数。 


后两位表韵部。当时有59个韵部,不满百,直接编号即可。 


当然,假如你以前学过一些简单的古典密码替换、移项的技巧,最好再完善一下这个密码。简单的加密也有机会大幅增强破译难度。 


至于选择哪种数字,算筹可能太简单了,苏州码子又有点穿越。如果想留点线索让博学的晚唐名侦探们有的玩,可以用当时已经存在的梵文数字或早期藏文数字。 


八到十世纪的藏文数字0-9,感谢南开大学中文系博士生诺桑翻译、讲解丨江·普琼《略谈藏族传统数字的演变》


市面上大多数资料都说,戚继光(或陈第)真的发明过一套反切密码,其实这种看法证据不足。[6]但现实中确实存在过一些叫“反切秘密语”的黑话,主要是黑社会、算命摊贩之类的人用。[7]后人把“黑话”称为“切口”,就来自这种现象。 


一种可能的、基于普通话的反切秘密语。有关反切秘密语的详细介绍可参考赵元任先生经典论文《反切语八种》丨作者供图


你在垃圾桶发现追踪已久的江洋大盗交流的纸条(如上图),能推断出什么信息?现实中,反切秘密语一般不会这样巧妙,往往只是对“抢”“宝石”“警察”等关键词做奇奇怪怪的加密。 


不过它们的保密性一般也就那么回事。与其它社会方言一样,它们存在的主要目的其实是强化内向认同:咱们说一样的话,咱们是混一个圈的。 


这也不是黑社会的专利。君不见饭圈、学术圈、互联网圈,也是圈圈都有自己的怪话。 


参考文献

[1] 孔祥卿.现代汉语的独字音节及其成因[J].南开语言学刊,2015(02):122-130. 

[2] 钱钟书著.管锥编 2 下[M].北京:生活·读书·新知三联书店.2001:658.

[3] 邵荣芬著.切韵研究[M].北京:中国社会科学出版社.1982.

[4] 张慧美著.中国语言文字研究辑刊 二编 第18册 朱翱反切新考[M].新北:花木兰文化出版社.2012.

[5] 钱宝琮主编.中国数学史[M].北京:商务印书馆.2019:171-173.

[6] 李如龙,王升魁校注.戚林八音校注[M].福州:福建人民出版社.2001.

[7] 赵元任著;吴宗济,赵新那编.赵元任语言学论文集[M].北京:商务印书馆.2002: 362-404.


本文来自微信公众号:果壳(ID:Guokr42),作者:清洁工,编辑:栗子

本内容为作者独立观点,不代表虎嗅立场。未经允许不得转载,授权事宜请联系hezuo@huxiu.com
如对本稿件有异议或投诉,请联系tougao@huxiu.com
正在改变与想要改变世界的人,都在 虎嗅APP
赞赏
关闭赞赏 开启赞赏

支持一下   修改

确定