19

密码学:三个时代的对决交锋

 4 years ago
source link: https://www.jinse.com/blockchain/606241.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

码技术(Cryptography)包含了密码学(Cryptography)和密码分析学(Cryptanalysis)两大分支,一方为红军(守),一方为蓝军(攻),两者缺一不可。

j2IZV3y.jpg!web

自古以来,密码学领域加密和解密的故事不断被演绎,你方唱罢,我方登场。

当前人创造一种看似完美的加密技术,经过若干年,又会被后人通过先进技术解密。在这加密-解密-再加密-解密的过程中,展现出不可估量的人类智力,激发让人探寻的无穷乐趣。

本期,让我们盘点密码学领域的重要历史节点,看看前辈大佬们如何运用密码学交锋,留下一段段里程碑式的传奇故事。

古典密码学时期

凯撒大帝:置换密码

在古典密码学时期,密码学主要用于军事的密文传递。公元前58年左右,Caesar(凯撒大帝)使用的凯撒密码就是运用军事命令的传递。他将每一个字母都进行了位移,以防止他的敌人在截获凯撒的军事命令之后,直接获取到他的真实情报。

fAnmaqY.jpg!web

加密方法:

加密的双方首先要对字母的位移数字达成共识,比如,我们约定好的加密位移的数字是3,那么,我发送的每一个字母都要经过3个位移,(A变成D,B变成E,C变成F... ...)假设我的明文是“attack” ,经过位移为3的凯撒加密之后,就会变成“dwwtfn”。成功拿到密文的人,再通过把密文的每个字母减3的方式,就能得到真实的明文信息。

解密方法:

首先通过频率分析或者样式单词分析的方法,判定是否用的是凯撒密码。如果是,则可以使用穷举的办法,按照字母系统寻找偏移量。由于使用恺撒密码进行加密的语言一般都是字母文字系统,因此密码中可能是使用的偏移量也是有限的,26个英文字母,至多偏移25位。

频率分析是基于某些字母在英文写作中出现不同频率的事实 – 例如,E通常最常出现,其次是T和A;而Q和Z出现次数最少(见下图)。

YZfqaen.jpg!web

英文字母频率

参考如下加密文本:

PZ AOL TVZA MYLXBLUA SLAALY PU AOPZ ZLUALUJL

如果算上字母,你会注意到L的出现频率高于其他任何字母(8次)。因此,如果这是替换密码并且原始消息是英语,则L代表E是安全的猜测,L与字母表中的E相距7个空格。如果位移量是7,则这组密码文本将变成:

IS THE MOST FREQUENT LETTER IN THIS SENTENCE

对于非常短的消息,手动执行暴力攻击或频率分析可能很容易,但对于整个段落或文本页面来说可能会非常耗时。

近代密码学时期

Enigma(转轮密码机):多表替代密码

Enigma(转轮密码机)由德国工程师Arthur Scherbius创造,在二战时是德军用来传播信息的加密机,彼时,英法联军完全不知道德国正在借用此机器传递信息。

z6BNFrB.jpg!web

加密方法:

Enigma的加密原理是多表替代——通过不断改变明文和密文的字母映射关系,对明文字母们进行着连续不断的换表加密操作。

密码机设计有3个转轮,在每个转轮的边缘上标记26个德文字母,借以表示转轮的26个位置。经过巧妙的设计,每次转轮旋转后,都会停留在这26个位置中的某个位置上。在转轮组内,转轮们相互接触的侧面之间,都有相对应的电路触点,可以保证转轮组的内部构成通路。

于是,输入的字母K,经过第一个转轮,变成输出字母R;之后这个R进入第二个转轮,咱们假设它又变成了C;尔后,这个C再进入第三个转轮,假设又变成了Y。如此,初始字母K历经3次轮转,变成了谁也认不出来的Y。

解密方法:

二战时期,阿兰·麦席森·图灵(Alan Mathison Turing)基于前人的经验,从Enigma的整个密文入手,设计了“图灵炸弹机”来进行破解。

uYZBbaM.jpg!web

因为德国人会在特定时间发送特定的电报,而“天气”和“希特勒”这两个词是“明文库”中最常见的两个单词。所以,图灵采用基于明文的攻击,在早上六点多的电报密文中寻找“天气”和“希特勒”两个单词加密后的密文,就能根据明文和密文的对应关系计算出密钥。

关于这段历史的更多趣闻,感兴趣的小伙伴可参见电影《模仿游戏》。

现代密码学时期

在1976年以前,所有的加密方法都是同一种模式:加密、解密使用同一种算法,即对称加密算法(symmetric encryption algorithm)。在交互数据的时候,彼此通信的双方就必须将规则告诉对方,否则没法解密。那么加密和解密的规则( 简称密钥 )的保护就显得尤其重要,传递密钥成为了最大的隐患。

当密码学进入现代时期,从艺术变成科学,开始建造完备的体系,这一隐患被得以有效解决。同时,多种密码学技术的诞生,也让原本神秘变换的密码学世界变得更加精彩纷呈。

MzYRf2f.jpg!web

重大历史节点:

  • 1976年,是现代密码学的开端,密码学开始由艺术转为科学,并建立一套完整的理论体系。两位美国计算机学家迪菲(W.Diffie)、赫尔曼(M.Hellman)提出了一种崭新构思,可以在不直接传递密钥的情况下,完成密钥交换。这被称为“ 迪菲赫尔曼密钥交换 ”算法,开创了密码学研究的新方向。

  • 1977年,三位麻省理工学院的数学家罗纳德·李维斯特(Ron L. Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard M. Adleman)一起设计了一种算法,可以实现非对称加密。这个算法用他们三个人的姓氏首字母命名,叫做 RSA 算法。

    【 加密方式需要两个密钥:公开密钥,简称公钥( public key );私有密钥,简称私钥(private key),公钥加密,私钥解密。RSA算法也具有缺陷 : 效率相对较低 , 字节长度限制等,在实际应用中我们往往会结合对称性加密一起使用 , 秘钥使用RSA算法 】

  • 1978年,Ron L. Rivest,Leonard M. Adleman以及 Michael L. Dertouzos提出了同态加密(Homomorphic Encryption)概念。允许对密文进行特定的代数运算后依然能得到加密的结果,将该结果解密以后的结果与对明文进行同样运算的结果会保持一致。

  • 1982年,姚期智先生提出安全多方计算,即MPC。主要探讨n个参与方必须各自输入信息去计算一个约定的函数。除了计算的正确性,这一计算过程还必须保障每个参与方输入数据的隐私。

  • 1989年,麻省理工学院研究人员Goldwasser、Micali 及 Rackoff提出了“零知识证明”的概念。指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。

随着人类科技水平的不断进步,密码学和密码分析学技术得以推陈出新,这驱动着密码从业者不断突破创新,让密码学技术发挥出应有价值,得以运用在社会生活的各个角落。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK