密码学

维基百科,自由的百科全书
(重定向自 密碼學)

密码学(英文:Cryptography,在西欧语文中,源于希腊语kryptós“隐藏的”,和gráphein“书写”)是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著名的密码学者Ron Rivest解释道:“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。密码学是信息安全等相关议题,如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在。密码学也促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。

目录

   [隐藏] 
  • 1 术语
  • 2 密码学与密码分析的历史
    • 2.1 经典密码学
    • 2.2 中世纪至第二次世界大战
      • 2.2.1 苏格兰的玛丽女王
      • 2.2.2 第一次世界大战
      • 2.2.3 第二次世界大战
    • 2.3 现代密码学
  • 3 现代密码学
    • 3.1 公钥密码学
    • 3.2 密码分析
    • 3.3 密码学原型
    • 3.4 密码协议
  • 4 与密码学有关的法律议题
    • 4.1 禁令
    • 4.2 出口管制
    • 4.3 美国国家安全局介入
    • 4.4 数字知识产权管理
  • 5 相关条目
  • 6 外部链接

[编辑]术语

直到现代以前,密码学几乎专指加密(encryption)算法:将普通信息(明文,plaintext)转换成难以理解的资料(密文,ciphertext)的过程;解密(decryption)算法则是其相反的过程:由密文转换回明文;加解密包含了这两种算法,一般加密即同时指称加密(encrypt或encipher)与解密(decrypt或decipher)的技术。

加解密的具体运作由两部分决定:一个是算法,另一个是密钥。密钥是一个用于加解密算法的秘密参数,通常只有通讯者拥有。历史上,密钥通常未经认证或完整性测试而被直接使用在密码机上。

密码协议(cryptographic protocol)是使用密码技术的通信协议(communication protocol)。近代密码学者多认为除了传统上的加解密算法,密码协议也一样重要,两者为密码学研究的两大课题。在英文中,cryptography和cryptology都可代表密码学,前者又称密码术。但更严谨地说,前者(cryptography)指密码技术的使用,而后者(cryptology)指研究密码的学科,包含密码术与密码分析。密码分析 (cryptanalysis)是研究如何破解密码学的学科。但在实际使用中,通常都称密码学(英文通常称cryptography),而不具体区分其含义。

口语上,编码(code)常意指加密或隐藏信息的各种方法。然而,在密码学中,编码有更特定的意义:它意指以码字(code word)取代特定的明文。例如,以‘苹果派’(apple pie)替换‘拂晓攻击’(attack at dawn)。编码已经不再被使用在严谨的密码学,它在信息论或通讯原理上有更明确的意义。

在汉语口语中,电脑系统或网络使用的个人帐户口令 (password)也常被以密码代称,虽然口令亦属密码学研究的范围,但学术上口令与密码学中所称的钥匙(key)并不相同,即使两者间常有密切的关连。

[编辑]密码学与密码分析的历史

[编辑]经典密码学

主条目: 经典密码

在近代以前,密码学只考虑到信息的机密性(confidentiality):如何将可理解的信息转换成难以理解的信息,并且使得有秘密信息的人能够逆向回复,但缺乏秘密信息的拦截者或窃听者则无法解读。近数十年来,这个领域已经扩展到涵盖身分认证(或称鉴权)、信息完整性检查、数字签名、互动证明、安全多方计算等各类技术。

其实在公元前,秘密书信已用于战争之中。西洋“史学之父”希罗多德(Herodotus)的《历史》(The Histories)当中记载了一些最早的秘密书信故事。公元前5世纪,希腊城邦为对抗奴役和侵略,与波斯发生多次冲突和战争。于公元前480年,波斯秘密结了强大的军队,准备对雅典(Athens)和斯巴达(Sparta)发动一次突袭。希腊人狄马拉图斯(Demaratus)在波斯的苏萨城(Susa)里看到了这次集结,便利用了一层蜡把木板上的字遮盖住,送往并告知了希腊人波斯的图谋。最后,波斯海军覆没于雅典附近的沙拉米斯湾(Salamis Bay)。

由于古时多数人并不识字,最早的秘密书写的形式只用到纸笔或等同物品,随着识字率提高,就开始需要真正的密码学了。最古典的两个加密技巧是:

  • 移位式(Transposition cipher):将字母顺序重新排列,例如‘help me’变成‘ehpl em’;与
  • 替代式(substitution cipher):有系统地将一组字母换成其他字母或符号,例如‘fly at once’变成‘gmz bu podf’(每个字母用下一个字母取代)。

这两种单纯的方式都不足以提供足够的机密性。凯撒密码是最经典的替代法,据传由古罗马帝国的皇帝凯撒所发明,用在与远方将领的通讯上,每个字母被往后位移三格字母所取代。

加密旨在确保通讯的秘密性,例如间谍、军事将领、外交人员间的通讯,同时也有宗教上的应用。举例来说,早期基督徒使用密码学模糊他们写作的部份观点以避免遭受迫害。666或部分更早期的手稿上的616是新约基督经启示录所指的野兽的数字,常用来暗指专迫害基督徒的古罗马皇帝尼禄(Nero)。史上也有部份希伯来文密码的记载。古印度欲经中也提及爱侣可利用密码来通信。隐写术也出现在古代,希罗多德记载将信息刺青在奴隶的头皮上,较近代的隐写术使用隐形墨水、缩影术(microdots)或数字水印来隐藏信息。

古中国周朝兵书《六韬.龙韬》也记载了密码学的运用,其中的《阴符》和《阴书》便记载了周武王问姜子牙关于征战时与主将通讯的方式:

太公曰:“主与将,有阴符,凡八等。有大胜克敌之符,长一尺。破军擒将之符,长九寸。降城得邑之符,长八寸。却敌报远之符,长七寸。警众坚守之符,长六寸。请粮益兵之符,长五寸。败军亡将之符,长四寸。失利亡士之符,长三寸。诸奉使行符,稽留,若符事闻,泄告者,皆诛之。八符者,主将秘闻,所以阴通言语,不泄中外相知之术。敌虽圣智,莫之能识。”
武王问太公曰:“… 符不能明;相去辽远,言语不通。为之奈何?”
太公曰:“诸有阴事大虑,当用书,不用符。主以书遗将,将以书问主。书皆一合而再离,三发而一知。再离者,分书为三部。三发而一知者,言三人,人操一分,相参而不相知情也。此谓阴书。敌虽圣智,莫之能识。”

阴符是以八等长度的符来表达不同的消息和指令,可算是密码学中的替代法(substitution),把信息转变成敌人看不懂的符号。至于阴书则运用了移位法,把书一分为三,分三人传递,要把三份书重新拼合才能获得还原的信息。

除了应用于军事外,公元四世纪婆罗门学者伐蹉衍那(Vatsyayana) 所书的《欲经》4 中曾提及到用代替法加密信息。书中第45项是秘密书信 (mlecchita-vikalpa) ,用以帮助妇女隐瞒她们与爱郞之间的关系。其中一种方法是把字母随意配对互换,如套用在罗马字母中,可有得出下表:

A B C D E F G H I J K L M
Z Y X W V U T S R Q P O N

由经典加密法产生的密码文很容易泄漏关于明文的统计信息,以现代观点其实很容易被破解。阿拉伯人津帝(al-Kindi)便提及到如果要破解加密信息,可在一篇至少一页长的文章中数算出每个字母出现的频率,在加密信件中也数算出每个符号的频率,然后互相对换,这是频率分析的前身,此后几乎所有此类的密码都马上被破解。但经典密码学现在仍未消失,经常出现在谜语之中(见cryptogram)。这种分析法除了被用在破解密码法外,也常用于考古学上。在破解古埃及象形文字(Hieroglyphs)时便运用了这种解密法。

[编辑]中世纪至第二次世界大战

本质上所有的密码仍然受到上述的破密法的危害,直到阿伯提(en:Leon Battista Alberti)约在1467年发明了多字符加密法(en:polyalphabetic cipher),阿伯提的创新在于对信息的不同部分使用不同的代码,他同时也发明了可能是第一个自动加密器,一个实现他部分想法的转轮。多字符加密法最典型的例子是维吉尼亚加密法(en:Vigenere cipher):加密重复使用到一个关键字(en:key word),用哪个字母取代端视轮替到关键字的哪个字母而定。尽管如此,多字符加密法仍然受到频率分析法的部分危害,不过这直到十九世纪中期才被查尔斯•巴贝奇(en:Charles Babbage)发现。

比较近代的著名的例子可数中世纪苏格兰的玛丽女王(Mary Stuart, Queen of Scotland)、第一次世界大战德国的齐默尔曼电报(Zimmerman Telegram)和第二次世界大战的“谜”(Enigma)。

[编辑]苏格兰的玛丽女王

公元1578年,玛丽女王被伊丽莎白女王软禁。在1586年1月6日玛丽收到一批秘密信件,得悉了安东尼·贝平顿(Anthony Babington)的计划。安东尼和几个同党在密谋营救玛丽,并计划行刺伊丽莎白女王。他们的信件被转成密码,并藏在啤酒桶的木塞以掩人耳目。但却被英格兰大臣华兴翰(Walsingham)的从中截获、复制、还信入塞,并由菲力普.马尼斯(Philip van Marnix)破解信件。信件破解后,华兴翰使菲力普摹拟玛丽的笔迹引诱安东尼行动,把叛逆者一网成擒,审判并处死玛丽女王。问题在于错误地使用脆弱的加密法会制造虚假的安全错觉:安东尼对他们的通讯方式太过有信心,令他的加密方法过于简单,轻易被敌人破解。

[编辑]第一次世界大战

1914年8月25日德国的马格德堡巡洋舰(Magdeburg)在芬兰湾(Gulf of Finland)搁浅,俄国搜出多份德国的文件及两本电码本,一本被送往英国的“40号房间”(Room 40)进行密码分析。同时,无线电的发明亦使得截获密信易如反掌。由于德国通往美国的电缆在大战开始时被剪断了,德国借用了美国的海底电缆发电报到华盛顿,但电缆经过了英国,1917年1月17日齐默尔曼电报被“40号房间”截获。同年2月23日,密电内容揭开了,内容指德国将在1917年2月1日开始‘无限制潜艇战’,用潜艇攻击战时包括中立国在内的海上商运船。为了阻止美国因此参战,德国建议墨西哥入侵美国,并承诺帮助墨西哥从美国手中夺回得克萨斯、新墨西哥和亚利桑那三州。德国还要墨西哥说服日本共同进攻美国,德国将提供军事和资金援助。密电内容揭开后,美国在4月16日向德国宣战。

[编辑]第二次世界大战

德国汲取了第一次大战的教训,发展出以机械代替人手的加密方法。雪毕伍斯(Arthur Scherbius)发明了“谜”(ENIGMA,恩尼格玛密码机),用于军事和商业上。“谜”主要由键盘、编码器和灯板组成。三组编码器合、加上接线器和其他配件,合共提供了种一亿亿种编码的可能性。1925年,“谜”开始有系列生产,在20年间,德国军方购入了3万多台“谜”,亦难倒了“40号房”,成为德国在二次大战的重要工具。波兰位于德国东面,俄国的西面,一直受到威胁,故成立了波兰密码局(Biuro Szyfrow)以获取情报。波兰从汉斯-提罗.施密德(Hans-Thilo Schmidt)处得到谍报,由年轻的数学家马理安.瑞杰斯基(Marian Rejewski)解译,用了一年时间编纂目录,并在1930年代制造了“炸弹”(bomba),渐渐掌握了解“谜”的技术。

1938年12月德国加强了“谜”的安全性,令波兰失去了情报。“谜”成为了希特勒(Hitler)闪电战略的核心,每天更改的加密排列维系了强大快速的攻击。 1939年4月27日德国撤销与波兰的互不侵犯条约,波兰才不得不决定把“炸弹”这个构想与英、法分享,合力破解新的“谜”。1939年9月1日,德国侵击波兰,大战爆发。英国得到了波兰的解密技术后,40号房间除了原有的语言和人文学家,还加入了数学家和科学家,后来更成立了政府代码曁密码学校(Government code and Cipher School),5年内人数增至7000人。1940至1942年是加密和解密的拉锯战,成功的解码提供了很多宝贵的情报。例如在1940年得到了德军进攻丹麦和挪威的作战图,以及在不列顚战役(Battle of Britain)事先获得了空袭情报,化解了很多危机。但“谜”却并未被完全破解,加上“谜”的网络很多,令德国一直在大西洋战役中占上风。最后英国在“顺手牵羊”的行动中在德国潜艇上俘获“谜”的密码簿,破解了“谜”。英国以各种虚假手段掩饰这件事,免得德国再次更改密码,并策划摧毁了德国的补给线,缩短了大西洋战役。

许多物理装置被用来辅助加密,例如古希腊斯巴达的密码棒(en:scytale),这是一个协助置换法的圆柱体,可将信息内字母的次序调动,利用了字条缠绕木棒的方式,把字母进行位移,收信人要使用相同直径的木棒才能得到还原的信息。在欧洲中世纪时期,密码栏(en:cipher grille)用在某类隐写术上。多字符加密法出现后,更多样的辅助工具出现,如阿伯提发明的密码盘(en:cipher disk)、特里特米乌斯发明的表格法(en:tabula recta)、以及美国总统汤玛士杰佛逊(en:Thomas Jefferson)发明的多圆柱(en:Bazeries约在1900年再次独立发明改进)。廿世纪早期,多项加解密机械被发明且被注册专利,包括最有名的转轮机(en:rotor machines),第二次世界大战德军所用,别名‘谜’(恩尼格玛密码机),其加密法是在第一次世界大战后针对当时破密术所做最好的设计。

[编辑]现代密码学

第二次世界大战后计算机与电子学的发展促成了更复杂的密码,而且计算机可以加密任何二进制形式的资料,不再限于书写的文字,以语言学为基础的破密术因此失效。多数计算机加密的特色是在二进制字串上操作,而不像经典密码学那样直接地作用在传统字母数字上。然而,计算机同时也促进了破密分析的发展,抵消了某些加密法的优势。不过,优良的加密法仍保持领先,通常好的加密法都相当有效率(快速且使用少量资源),而破解它需要许多级数以上的资源,使得破密变得不可行。

虽然频率分析是很有效的技巧,实际上加密法通常还是有用的。不使用频率分析来破解一个信息需要知道目前是使用何种加密法,因此才会促成了谍报、贿赂、窃盗或背叛等行为。直到十九世纪学者们才体认到加密法的算法并非理智或实在的防护。实际上,适当的密码学机制(包含加解密法)应该保持安全,即使敌人知道了使用何种算法。对好的加密法来说,钥匙的秘密性理应足以保障资料的机密性。这个原则首先由奥古斯特·柯克霍夫(Auguste Kerckhoffs)提出并被称为柯克霍夫原则(Kerckhoffs' principle)。信息论始祖克劳德·艾尔伍德·香农(Claude Shannon)重述:“敌人知道系统。”

大量的公开学术研究出现,是现代的事,这起源于一九七零年代中期,美国国家标准局(National Bureau of Standards, NBS;现称国家标准技术研究所,National|Institute of Standards and Technology, NIST)制定数字加密标准(DES),Diffie和Hellman提出的开创性论文,以及公开释出RSA。从那个时期开始,密码学成为通讯、电脑网络、电脑安全等上的重要工具。许多现代的密码技术的基础依赖于特定基算问题的困难度,例如因子分解问题或是离散对数问题。许多密码技术可被证明为只要特定的计算问题无法被有效的解出,那就安全。除了一个著名的例外:一次垫(one-time pad,OTP),这类证明是偶然的而非决定性的,但是是目前可用的最好的方式。

密码学算法与系统设计者不但要留意密码学历史,而且必须考虑到未来发展。例如,持续增加计算机处理速度会增进暴力攻击法(brute-force attacks)的速度。量子计算的潜在效应已经是部份密码学家的焦点。

二十世纪早期的密码学本质上主要考虑语言学上的模式。从此之后重心转移,现在密码学使用大量的数学,包括信息论、计算复杂性理论、统计学、组合学、抽象代数以及数论。密码学同时也是工程学的分支,但却是与别不同,因为它必须面对有智能且恶意的对手,大部分其他的工程仅需处理无恶意的自然力量。检视密码学问题与量子物理间的关连也是目前热门的研究。

[编辑]现代密码学

现代密码学大致可被区分为数个领域。 对称钥匙密码学指的是传送方与接收方都拥有相同的钥匙。直到1976年这都还是唯一的公开加密法。

现代的研究主要在分组密码(block cipher)与流密码(stream cipher)及其应用。分组密码在某种意义上是阿伯提的多字符加密法的现代化。分组密码取用明文的一个区块和钥匙,输出相同大小的密文区块。由于信息通常比单一区块还长,因此有了各种方式将连续的区块编织在一起。 DES和AES是美国联邦政府核定的分组密码标准(AES将取代DES)。尽管将从标准上废除,DES依然很流行(3DES变形仍然相当安全),被使用在非常多的应用上,从自动交易机、电子邮件到远端存取。也有许多其他的区块加密被发明、释出,品质与应用上各有不同,其中不乏被破解者。

流密码,相对于区块加密,制造一段任意长的钥匙原料,与明文依位元或字符结合,有点类似一次一密密码本(one-time pad)。输出的串流根据加密时的内部状态而定。在一些流密码上由钥匙控制状态的变化。RC4是相当有名的流密码。

密码杂凑函数(有时称作消息摘要函数,杂凑函数又称散列函数哈希函数)不一定使用到钥匙,但和许多重要的密码算法相关。它将输入资料(通常是一整份文件)输出成较短的固定长度杂凑值,这个过程是单向的,逆向操作难以完成,而且碰撞(两个不同的输入产生相同的杂凑值)发生的机率非常小。

信息认证码或押码(Message authentication codes, MACs)很类似密码杂凑函数,除了接收方额外使用秘密钥匙来认证杂凑值。

[编辑]公钥密码学

主条目: 公钥密码学

公开钥匙密码学,简称公钥密码学,又称非对称钥匙密码学,相对于对称钥匙密码学,最大的特点在于加密和解密使用不同的钥匙。

在对称钥匙密码学中,加密和解密使用相同的钥匙,也许对不同的信息使用不同的钥匙,但都面临钥匙管理的难题。由于每对通讯方都必须使用异于他组的钥匙,当网络成员的数量增加时,钥匙数量成二次方增加。更尴尬的难题是:当安全的通道不存在于双方时,如何建立一个共有的钥匙以利安全的通讯?如果有通道可以安全地建立钥匙,何不使用现有的通道。这个“鸡生蛋、蛋生鸡”的矛盾是长年以来密码学无法在真实世界应用的阻碍。

1976年, Whitfield Diffie与Martin Hellman发表开创性的论文,提出公开钥匙密码学的概念:一对不同值但数学相关的钥匙,公开钥匙(公钥, public key)与私密钥匙(私钥, private key or secret key)。在公钥系统中,由公开钥匙推算出配对的私密钥匙于计算上是不可行的。历史学者David Kahn这样描述公开钥匙密码学;“从文艺复兴的多字符取代法后最革命性的概念。”

在公钥系统中,公钥可以随意流传,但私钥只有该人拥有。典型的用法是,其他人用公钥来加密给该接受者,接受者使用自己的私钥解密。Diffie与Hellman也展示了如何利用公开钥匙密码学来达成Diffie-Hellman钥匙交换协定。

1978年,MIT的Ron Rivest、Adi Shamir和Len Adleman发明另一个公开钥匙系统,RSA。

直到1997年的公开文件中大众才知道,早在1970年代早期,英国情报机构GCHQ的数学家James H. Ellis便已发明非对称钥匙密码学,而且Diffie-Hellman与RSA都曾被Malcolm J. Williamson与Clifford Cocks分别发明于前。 这两个最早的公钥系统提供优良的加密法基础,因而被大量使用。其他公钥系统还有Cramer-Shoup、Elgamal、以及椭圆曲线密码学等等。

除了加密外,公开钥匙密码学最显著的成就是实现了数字签名。数字签名名副其实是普通签章的数字化,他们的特性都是某人可以轻易制造签章,但他人却难以仿冒。数字签名可以永久地与被签署信息结合,无法自信息上移除。数字签名大致包含两个算法:一个是签署,使用私密钥匙处理信息或信息的杂凑值而产生签章;另一个是验证,使用公开钥匙验证签章的真实性。RSA和DSA是两种最流行的数字签名机制。数字签名是公开钥匙基础建设(public key infranstructures, PKI)以及许多网络安全机制(SSL/TLS, VPNs等)的基础。

公开钥匙算法大多基于计算复杂度上的难题,通常来自于数论。例如,RSA源于整数因子分解问题;DSA源于离散对数问题。近年发展快速的椭圆曲线密码学则基于和椭圆曲线相关的数学难题,与离散对数相当。由于这些底层的问题多涉及模数乘法或指数运算,相对于分组密码需要更多计算资源。因此,公开钥匙系统通常是复合式的,内含一个高效率的对称钥匙算法,用以加密信息,再以公开钥匙加密对称钥匙系统所使用的钥匙,以增进效率。

[编辑]密码分析

主条目: 密码分析

密码分析又称破密术。 密码分析的目的是发现密码机制的弱点,从事者可能是意图颠覆系统恶意的攻击者或评估系统弱点的设计人。在现代,密码算法与协定必须被仔细检查和测试,确定其保证的安全性。

大众普遍误解认为所有加密法都可以被破解。Bell Labs的Claude Shannon在二次世界大战时期便证明只要钥匙是完全随机,不重复使用,对外绝对保密,与信息等长或比信息更长的一次一密是不可能破解的。除了一次一密以外的多数加密法都可以以暴力攻击法破解,但是破解所需的努力可能是钥匙长度的指数成长。

密码分析的方式有很多,因此有数个分类。一个常见的分别法则是攻击者知晓多少信息。在唯密文攻击中,密码分析者只能存取密文,好的现代密码系统对这种情况通常是免疫的。在已知明文攻击中,密码分析者可以存取多个明文、密文对。在选择明文攻击中,密码分析者可以自选任意明文,并被赋予相对应的密文,例如二战时布列颠所使用的园艺法。最后,选择密文攻击中,密码分析者可以自选任意密文,并被赋予相对应的明文

对称钥匙加密的密码分析通常旨在寻找比已知最佳破解法更有效率的方式。例如,以最简单的暴力法破解DES需要一个已知明文与255 解密运算,尝试近半数可能的钥匙。线性分析攻击法对DES需要243 已知明文与243 DES运算,显然比暴力法有效。

公开钥匙算法则基于多种数学难题,其中最有名的是整数分解和离散对数问题。许多公开钥匙密码分析在研究如何有效率地解出这些计算问题的数值算法。例如,已知解出基于椭圆曲线的离散对数问题比相同钥匙大小的整数因子分解问题更困难。因此,为了达到相等的安全强度,基于因子分解的技术必须使用更长的钥匙。由于这个因素,基于椭圆曲线的公开钥匙密码系统从1990年代中期后逐渐流行。

当纯粹的密码分析着眼于算法本身时,某些攻击则专注于密码装置执行的弱点,称为副通道攻击。如果密码分析者可以存取到装置执行加密或回报通行码错误的时间,它就可能使用时序攻击法破解密码。攻击者也可能研究信息的模式与长度,得出有用的信息,称为流量分析,对机敏的敌人这相当有效。当然,社会工程与其它针对人事、社交的攻击与破密术一并使用时可能是最有力的攻击法。

[编辑]密码学原型

多数的密码学理论研究在探讨密码学原型:具备基本密码学特质的算法以及和其他问题的关连。例如,容易正向运算却难以逆向运算的单向函数。通常而言,密码应用如果要安全,就必须保证单向函数存在。然而,如果单向函数存在,就表示P ≠ NP。既然目前P与NP问题仍是未解,我们就无从得知单向函数是否存在。如果单向函数存在,那安全的准乱数产生器与准乱数函数就存在。 目前已知的密码学原型仅提供基本的机能。通常是机密、信息完整、认证、和不可否认。任何其他机能都是基本算法的组合与延伸,这类组合称为密码系统。例如PGP、SSH、 SSL/TLS、公开钥匙基础建设和数字签名等。 其他密码原型还有加密算法本身、单向排列、暗门排列等。

[编辑]密码协议

主条目: 密码协议

在许多状况,密码技术涉及通讯的双方或多方(例如公司总部与分部)或是跨越时间(例如保护备份资料)。 密码协议已经扩展到涵盖多种议题,像是互动证明、秘密分享与零知识,更复杂的有电子钞票和安全多人计算。

当一个好的密码系统的安全失效时,很少是密码学原型出现漏洞。大部分的弱点都发生于协定设计、系统实作、或是某些人为错误。许多密码学协定都在非系统化的过程中发展出来,很少有安全上的证明。一些正规分析协定安全的方式都本于数学逻辑(例如BAN逻辑)或近期的具体安全原则,这些都是数十年来研究人员的主题。很不幸的,这些工具都相当的笨重也无法用于复杂的设计。 如何实现与整合密码学的应用本身是截然不同的领域,参见密码学工程与安全工程。

[编辑]与密码学有关的法律议题

[编辑]禁令

密码学长期以来都是情报或司法机构的兴趣。由于这些单位的隐密性以及禁令后个人隐私的减少,密码学也是人权支持者关心的焦点。环绕密码学的法律议题已有很长的历史,特别是在可以执行高品质密码的廉价计算机问世后。

在某些国家甚至本国性的密码学也受限制。直到1999年,法国仍然限制国内密码学的使用。在中国大陆,使用密码学需要申请执照[来源请求]。许多国家有更严格的限制,例如白俄罗斯、哈萨克、蒙古、巴基斯坦、俄罗斯、新加坡、突尼斯、委内瑞拉和越南。

在美国,国内的使用是合法的,但仍然有许多法律冲突。一个特别重要的议题是密码软件与硬件的出口管制。由于密码分析在二战时期扮演的重要角色,也期待密码学可以持续在国家安全上效力,许多西方国家政府严格规范密码学的出口。二战之后,在美国散布加密科技到国外曾是违法的。事实上,加密技术曾被视为军需品,就像坦克与核武。直到个人电脑和互联网问世后情况才改变。好的密码学与坏的密码学对绝大部分使用者来说是没有差别的,其实多数情况下,大部分现行密码技术普遍缓慢而且易出错。然而当互联网与个人电脑日益成长,优良的加密技术逐渐广为人知。可见出口管制将成为商务与研究上的阻碍。

[编辑]出口管制

在1990年代发生了数件挑战美国出口规范的事件。其中一件是Phillip Zimmermann的PGP加密程式,于1991年6月在美国连源代码一并释出于互联网。在RSA Security公司提出抗议后,Zimmermann被商务部和联邦调查局侦讯达数年。接着,柏克莱加州大学的研究生Daniel Bernstein发起了对美国政府的法律诉讼,以言论自由挑战禁令的某些观点。1995年的Bernstein v. United States案例促成了在1999年判决印出密码算法的源代码属美国宪法言论自由保障范围内。 在1996年,39个国家签订处理军武出口的 华沙公约。该公约约定使用短钥匙长度(对称钥匙56位元;RSA 512位元)的密码学不再受到出口管制。从2000年后,美国出口密码学已经宽松许多。现在,几乎所有的互联网使用者都可存取到优良的密码学,就在浏览器内建的传输层安全性(TLS)或安全接口层(SSL)。 Mozilla Thunderbird和微软Outlook电子邮件用户端程式可以用TLS连结至IMAP或 POP服务器,并以S/MIME收送加密的电子邮件。许多网络用户并不知晓他们的基本应用内含大量的密码系统。这些浏览器与邮件程式如此普及,甚至试图规范市民使用密码学使用的政府单位也无力从事有效的限制。

[编辑]美国国家安全局介入

另一个密码学的争议点是美国国家安全局(NSA)在加密法发展的介入。国家安全局考量到将其制订为国家表准局的联邦标准,曾介入于IBM发展的DES。DES是NSA与 IBM为了克制强力的差分分析法而制定,这个攻击直到1980年代晚期才公开。根据Steven Levy所说,IBM曾重新发现差分分析法,但被NSA下禁口令。这个攻击法直到Biham与Shamir在数年后再次发现才公开。这些事情显示了决定攻击者拥有哪些资源或知识的困难。 还有1993年,NSA涉入用在Capstone计划的加密微芯片 Clipper chip。Clipper饱受密码学者的批评,其一是因为其加密算法被列为机密,NSA可能蓄意设计较弱的加密法以达成情报目的;其二是整个计划案违反克考夫原则,由于这机制使用到一个特别的只有政府才有的委任钥匙,难保没有窃听的可能。

[编辑]数字知识产权管理

数字知识产权管理又称数字智财权(Digital rights management, DRM) 密码学是数字知识产权的核心,有许多技术被应用在保障版权资料的使用。1998年,美国总统比尔·克林顿(Bill Clinton)签署了数字千禧年版权法案(Digital Millennium Copyright Act, DMCA),明定特定破密技术的重制或散布属犯罪行为,特别是某些回避DRM者。这对密码学研究社群造成了相当严重的潜在冲击,由于任何破密技术都可以被认定违反DMCA。考虑到这些争议,美国联邦调查局与司法部并未严格执行DMCA。一位广受敬重的密码学者Niels Ferguson曾公开陈述由于怕遭到DMCA的迫害,他将不会释出部分研究给Intel安全设计。Linux核心的第二号发展人物Alan Cox与普林斯顿大学教授Edward Felten都曾受到这法案的相关困扰。Dmitry Sklyarov在从俄罗斯到美国访问时曾因违反该法案被监禁达数月,但违反DMCA的作品实际上发生于俄罗斯,而且在俄罗斯是合法行为。类似的事情发生在许多国家。例如欧盟所制定的Copyright Directive。在2007年,负责DVD与HDDVD防伪的钥匙被发现且是出在互联网上,同时,美国电影协会发出多个违DMCA的告示,导致大量互联网使用者回击,也引出了公平使用与言论自由的议题。

你可能感兴趣的:(密码学)