密码学
加密或密码学(来自古希腊语: κρυπτός ,罗马化: Kryptós “隐藏,秘密”;和γράφεινgraphein , “写作”,或-λογία -logia -logia ,“研究”,“研究”,是对技术的实践和研究)在存在对抗行为的情况下确保沟通。更一般而言,密码学是关于构建和分析可以阻止第三方或公众阅读私人消息的协议。现代密码学存在于数学,计算机科学,信息安全,电气工程,数字信号处理,物理等学科的交集。与信息安全性(数据机密性,数据完整性,身份验证和非纠正)相关的核心概念也是密码学的核心。密码学的实际应用包括电子商务,基于芯片的支付卡,数字货币,计算机密码和军事通信。
现代之前的密码学有效地是加密的代名词,将可读信息(明文)转换为难以理解的废话文本( Ciphertext ),只能通过逆转该过程(解密)来读取。加密(编码)消息的发件人仅与预期的收件人共享解密(解码)技术,以阻止对手的访问。加密文献经常为发件人使用“爱丽丝”(或“ a”)的名称,“鲍勃”(或“ b”)为预期的接收者和窃听对手的“ eve”(或“ e”)。自第一次世界大战中转子密码机的开发以及第二次世界大战中计算机的出现以来,加密方法变得越来越复杂,其应用越来越多。
现代密码学是基于数学理论和计算机科学实践的重大基础。加密算法是围绕计算硬度假设而设计的,这使得任何对手在实际实践中难以打破这种算法。尽管从理论上讲是有可能闯入一个精心设计的系统,但在实际实践中,这样做是不可行的。因此,如果设计精良,则将这种方案称为“计算安全”。理论进步(例如,整数分解算法的改进)和更快的计算技术需要不断重新评估这些设计,并在必要时进行调整。在理论上,即使使用无限的计算能力(例如一次性键盘)也无法破坏的信息安全方案在实践中比最好的理论上可损坏但在计算上安全的方案更难使用。
密码技术的增长在信息时代提出了许多法律问题。密码学用作间谍和煽动的工具的潜力导致许多政府将其归类为武器,并限制甚至禁止其使用和出口。在某些使用密码学是合法的司法管辖区中,法律允许调查人员强迫披露与调查相关的文件的加密密钥。密码学还在数字媒体的数字权利管理和版权侵权争议中发挥了重要作用。
术语
“密码”一词(与“加密图”相对)的首次使用可以追溯到19世纪,这是从“金袋”中启发的,这是埃德加·艾伦·坡的故事。
直到现代,密码学几乎完全提到“加密”,这是将普通信息(称为明文)转换为难以理解的形式(称为ciphertext )的过程。换句话说,解密是从无法理解的密文转变为明文的相反。密码(或Cypher)是一对进行加密和反向解密的算法。密码的详细操作均由算法控制,在每个实例中,都由“键”控制。关键是一个秘密(理想的是通信者),通常是字符串的字符串(理想情况下,因此用户可以记住它),这是解密密文所需的。用正式的数学术语,“加密系统”是有限的可能明文元素,有限的cyphertexts,有限可能的键以及与每个密钥相对应的加密和解密算法的有限列表。键在正式和实际实践中都很重要,因为没有可变密钥的密码只能仅用使用的密码知识而微不足道,因此对于大多数目的而言是无用的(甚至适得其反)。从历史上看,密码通常直接用于加密或解密,而没有其他程序,例如身份验证或完整性检查。
密码系统有两种主要类型:对称和不对称。在对称系统中,直到1970年代,唯一知道的秘密密钥加密并解密了一个信息。对称系统中的数据操作的速度明显快于不对称系统。非对称系统使用“公钥”来加密消息和相关的“私钥”来解密它。不对称系统的优点是可以自由发布公共密钥,从而使当事方可以在没有共享秘密密钥的情况下建立安全的通信。实际上,不对称系统用于首先交换秘密密钥,然后使用该键通过更有效的对称系统进行安全通信进行。不对称系统的示例包括Diffie-Hellman密钥交换,RSA( Rivest-Shamir – Adleman ),ECC(椭圆曲线密码学)和量词后加密术。安全的对称算法包括常用的AE(高级加密标准),该算法取代了旧的DES(数据加密标准)。不安全的对称算法包括儿童语言缠结方案,例如猪拉丁或其他倾斜,以及所有历史加密方案,无论是多么严重的意图,在20世纪初发明了一次性PAD之前。
在俗语中,“代码”一词通常用于表示任何加密或隐藏意义的方法。但是,在密码学中,代码具有更具体的含义:用代码单词更换明文单位(即有意义的单词或短语)(例如,“ wallaby”代替黎明时的“攻击”)。相比之下,Cypher是一种更改或替换以下级别(字母,音节或一对字母等)的方案,以产生Cyphertext。
密码分析是用于研究获得加密信息含义的方法的术语,而无需访问通常需要的密钥;即,这是关于如何“破解”加密算法或其实现的研究。
有些人以英语互换使用“密码学”和“密码学”一词,而另一些人(包括美国军事惯例)使用“加密”来专门提及加密技术的使用和实践和“密码学”和“密码学”,以指代的联合研究加密和密码分析。英语比其他几种语言更灵活,在上面的第二种意义上,“密码学”(由密码学家完成)始终使用。 RFC 2828建议,有时将隐肌包括在密码学中。
在密码学或密码学(例如频率数据,字母组合,通用模式等)中具有某种应用的语言特征的研究称为加密语言学。 Cryptolingusitics在军事情报应用中尤其用于解密外国通讯。
历史
在现代时代之前,密码学的重点是消息机密性(即加密) - 从可理解的形式转换为难以理解的形式,然后在另一端重新返回,使拦截器或窃听者无法读取无秘密知识(即需要的关键)为了解密该消息)。加密试图确保沟通中的保密,例如间谍,军事领导人和外交官。近几十年来,该领域超越了机密性问题,以包括消息完整性检查,发送者/接收者身份身份身份验证,数字签名,交互式证明和安全计算等技术。
经典密码学
主要的古典密码类型是换位密码,它在消息中重新排列字母的顺序(例如,“ Hello World”在一个琐碎的简单重新排列方案中变为“ Ehlol Owrdl”),然后替换ciphers ,系统地替换了字母或字母或组的字母或组随着其他字母或字母组(例如,“立即飞行”将其替换为“ gmz bu podf”,将每个字母替换为拉丁字母中的以下一个字母)。任何一个简单的版本从未提供过进取的对手的保密性。早期的替代密码是凯撒密码,其中授权中的每个字母被字母取代了一些固定数量的位置。 Suetonius报导说,朱利叶斯·凯撒(Julius Caesar)以三个转移来与他的将军进行交流。 Atbash是早期希伯来语密码的一个例子。最早已知的加密使用方法是埃及石头上的一些雕刻的密文(约公元前1900年),但这可能是为了娱乐识字观察者而不是隐藏信息的一种方式。
据说古典时代的希腊人已经知道密码(例如,斯巴达尔军方声称已使用的Scytale Transipsibtos Cipher)。隐身术(即,即使隐藏了一个信息的存在,以使其保持机密)也是在古代首次开发的。来自Herodotus的一个早期例子是在奴隶的剃光头上纹身的一条消息,并藏在重新塑造的头发下。隐密志的更现代的例子包括使用隐形墨水,微端和数字水印来隐藏信息。
在印度, Vātsyāyana的2000年历史的Kamasutra谈到了两种不同类型的密码,称为Kautiliyam和Mulavediya。在Kautiliyam中,密码字母的替代基于语音关系,例如元音成为辅音。在mulavediya中,密码字母由配对字母和使用倒数字母组成。
根据穆斯林作家伊本·纳迪姆(Ibn al-Nadim)的说法,在萨萨尼德·波斯(Sassanid Persia)中,有两个秘密剧本: šāh-dabīrīya (字面上是“国王的剧本”)用于官方通信,而拉兹·萨哈里亚(Rāz-Saharīya )则用于交流秘密信息与其他国家。
戴维·卡恩(David Kahn)在《代码破解者》中指出,现代密码学起源于阿拉伯人,这是第一个系统地记录密码分析方法的人。 Al-Khalil (717–786)写了《加密消息书》 ,其中包含第一次使用排列和组合,以列出有和没有元音的所有可能的阿拉伯语单词。
经典密码(以及一些现代密码)产生的密文将揭示有关授权的统计信息,并且这些信息通常可以用于打破密码。经过频率分析的发现后,也许是阿拉伯数学家和Polymath al-Kindi (也称为烷烃)在9世纪,几乎所有这些密码都可能被知情的攻击者打破。这样的古典密码今天仍然很受欢迎,尽管主要是拼图(请参阅密码图)。 Al-Kindi写了一本关于加密术的书,标题为“ Risalah fi Istikhraj al-Mu'amma ”(解密密码信息的手稿),其中描述了频率分析密码分析技术的首次已知使用。
语言字母的频率可能几乎没有帮助一些扩展的历史加密技术,例如趋于平整频率分布的均电密码。对于这些密码,语言字母组(或n-gram)频率可能会提供攻击。
从本质上讲,所有密码都使用频率分析技术容易受到隐式分析的影响,直到1467年左右,莱昂·巴蒂斯塔·艾伯蒂(Leon Battista Alberti)最清楚地表明,尽管有一些迹象表明Al-kindi已经知道了这一点。艾伯蒂(Alberti)的创新是将不同的密码(即替换字母)用于消息的各个部分(也许是在极限的每个连续的明文字母中)。他还发明了可能是第一个自动密码设备,这是一个实现其发明的部分实现的车轮。在vigenère密码中,一个多Yarpertic Cipher ,加密使用一个关键词,该词根据使用了哪个关键词的字母来控制字母的替换。在19世纪中叶,查尔斯·巴贝奇(Charles Babbage)表明,维纳尔(VigenèreCipher)容易受到卡西斯基(Kasiski)考试的攻击,但大约十年后,弗里德里希·卡西斯基(Friedrich Kasiski)首次出版。
尽管频率分析可能是针对许多密码的强大而通用的技术,但是加密在实践中通常仍然是有效的,因为许多潜在的隐式分析师都不知道该技术。在不使用频率分析的情况下打破消息基本上需要了解所涉及的密钥的知识,从而使间谍,贿赂,入室盗窃,叛逃等更具吸引力的隐态方法。终于在19世纪被明确认识到,密码算法的保密不是明智的,也不是实际的信息安全保障。实际上,即使对手完全理解密码算法本身,任何适当的加密方案(包括密码)也应保持安全。仅使用的密钥的安全性就足以使良好的密码在攻击下保持机密性。这一基本原则首先是由奥古斯特·克尔克霍夫斯(Auguste Kerckhoffs)明确指出的,通常称为Kerckhoffs的原则。或者,更直截了当的是,它是由信息理论的发明者和理论加密的基本原理克劳德·香农(Claude Shannon)重申的,正如香农(Shannon)的格言一样 - “敌人知道系统”。
已使用不同的物理设备和辅助设备来协助密码。最早的之一可能是古希腊的小偷,这是斯巴达人用作换位密码的杆。在中世纪,发明了其他辅助工具,例如密码格栅,该格栅也被用于一种隐肌。随着多YABLABECITIC密码的发明,诸如Alberti自己的密码磁盘, Johannes Trithemius的Tabula Recta方案和Thomas Jefferson的Wheel Cypher (尚不公开,并在1900年左右被袋鼠独立地重塑)。许多机械加密/解密设备是在20世纪初发明的,其中一些获得了专利,其中包括旋翼机器,包括1920年代后期和第二次世界大战期间德国政府和军方使用的谜机器。通过这些机器设计的更好质量示例实施的密码导致了第一次世界大战后的密码分析难度大大增加。
早期计算机时代的密码学
事实证明,新机械密码设备的密码分析既困难又费力。在英国,第二次世界大战期间在布莱奇利公园的隐式分析努力刺激了更有效的手段来执行重复性任务,例如军事法规违规(解密) 。这最终达到了世界第一台全球完全电子,数字,可编程计算机的发展,该计算机有助于德国陆军Lorenz SZ40/42机器产生的密码解密。
从1970年代中期开始,对密码学的广泛开放学术研究是相对较新的。在1970年代初, IBM人员设计了数据加密标准(DES)算法,该算法成为美国第一个联邦政府加密标准。 1976年,惠特菲尔德(Whitfield Diffie)和马丁·海尔曼(Martin Hellman)出版了《差异 - 赫尔曼钥匙交换算法》。 1977年, RSA算法发表在马丁·加德纳(Martin Gardner )的科学美国专栏中。从那时起,密码学已成为通信,计算机网络和计算机安全性的广泛使用的工具。
某些现代加密技术只有在某些数学问题棘手(例如整数分解或离散对数问题)时,只能将其钥匙保持在秘密,因此与抽像数学有着深厚的联系。很少有密码系统被证明是无条件安全的。一次性垫是一个,被克劳德·香农(Claude Shannon)证明是如此。在某些假设下,有一些重要的算法已被证明是安全的。例如,分解大整数的不可行性是相信RSA是安全的,并且其他一些系统,但是即使如此,由于基本的数学问题仍然开放,因此无法实现的证据也无法使用。实际上,这些观察者在实践中被广泛使用,并且在实践中认为这些观察者都无法破坏。有类似于RSA的系统,例如Michael O. Rabin的一个系统,可以证明是安全的,只要不可能考虑n = pq ;在实践中,这是非常不可用的。离散对数问题是相信其他一些密码系统是安全的基础,而且,相对于可溶性或无法溶解的离散日志问题,相关的相关,较少实用的系统也是如此的实用系统。
除了了解加密历史记录外,加密算法和系统设计师还必须在研究其设计时明智地考虑可能的未来发展。例如,计算机处理能力的持续改进增加了蛮力攻击的范围,因此,当指定密钥长度时,所需的密钥长度同样会前进。一些密码系统设计人员已经考虑了量子计算的潜在影响。这些机器的小型实施宣布的迫在眉睫的可能是使先发制人的谨慎不仅仅是投机性。
现代密码学
在20世纪初期,密码学主要涉及语言和词典模式。从那时起,密码学已扩大范围,现在广泛使用数学子学科,包括信息理论,计算复杂性,统计,组合,摘要代数,数字理论和有限数学。密码学也是工程学的一个分支,但由于它涉及活跃,聪明和恶毒的反对,因此是不寻常的。其他类型的工程(例如,民用或化学工程)只需要与中立的自然力量打交道。还有积极的研究研究了加密问题与量子物理学之间的关系。
正如数字计算机和电子产品的开发有助于加密分析一样,这使密码变得更加复杂。此外,与仅加密书面语言文本的经典密码不同,计算机允许以任何二进制格式表示任何类型的数据。这是新的和重要的。因此,计算机使用已取代了用于密码设计和密码分析的语言密码学。与经典和机械方案不同,许多计算机密码的特征是它们在二进制位序列(有时以组或块为单位)上的操作,这些方案通常直接操纵传统字符(即,字母和数字)。但是,计算机也有助于加密分析,该分析在一定程度上弥补了密码复杂性的增加。尽管如此,良好的现代密码仍处于隐性分析之前。通常情况下,使用质量密码非常有效(即,快速,需要很少的资源,例如内存或CPU功能),而破坏需要一定的努力,许多数量级都要大,并且比以上所需的数量级要大得多。任何经典的密码,使密码分析效率低下和不切实际,以至于实际上是不可能的。
现代密码学
对称键密码学
对称键密码学是指发件人和接收器共享相同密钥的加密方法(或者不太常见的键不同,但以易于计算的方式相关)。直到1976年6月,这是唯一公开闻名的加密。
对称密钥密码被实现为块密码或流密码。与单个字符相比,块密码的块密码输入,而不是单个字符,即流密封器使用的输入形式。
数据加密标准(DES)和高级加密标准(AES)是美国政府已指定加密标准标准的块密码设计(尽管采用了AES后DES的指定最终撤回)。尽管它是官方标准的贬低,但DES(尤其是其仍在批准的,更安全的Triple-Des变体)仍然非常受欢迎。它用于广泛的应用程序,从ATM加密到电子邮件隐私和安全远程访问。设计和发布了许多其他块密码,质量有很大差异。许多,甚至有些由有能力的从业者设计的,也被彻底破坏了,例如菲尔。
与“块”类型相比,流密码会创建一个任意长的关键材料流,该材料与限制性限制或逐个字符结合使用,有点像一次性垫。在流密码中,基于密码操作时会更改的隐藏内部状态创建输出流。最初使用秘密密钥材料设置该内部状态。 RC4是一个广泛使用的流密码。块密码可以通过生成键流的块(代替伪数编号生成器),并将XOR操作应用于每位键流的每个位,将XOR操作应用于键流的块,将块密码用作流密码。
消息身份验证代码(MAC)非常类似于加密哈希功能,只是可以使用秘密键来验证收到时的哈希值;这种额外的并发症阻止了针对裸摘要算法的攻击方案,因此值得付出努力。加密哈希功能是第三种加密算法。他们以任何长度为输入的消息,并输出一个短而固定的哈希,可以在(例如)数字签名中使用。对于好的哈希功能,攻击者找不到两个产生相同哈希的消息。 MD4是现在已断开的长期使用的哈希功能。 MD5是MD4的增强变体,在实践中也被广泛使用,但破坏了。美国国家安全局开发了安全的哈希算法系列类似于MD5的哈希功能:SHA-0是该机构撤回的有缺陷的算法; SHA-1比MD5广泛部署,更安全,但是隐ratemantalyst已经确定了针对它的攻击。 SHA-2家族在SHA-1上有所改善,但截至2011年很容易发生冲突。从安全角度来看,美国标准管理局认为这是“审慎的”,以开发新的标准,以“显著提高NIST的整体哈希算法工具包的稳健性”。 Thus, a hash function design competition was meant to select a new US national standard, to be called SHA-3 , by 2012. The competition ended on October 2, 2012, when the NIST announced that Keccak would be the new SHA-3 hash演算法.与可逆的块和流密码不同,加密哈希功能会产生无法用于检索原始输入数据的哈希输出。加密哈希功能用于验证从不信任源检索到的数据的真实性或添加安全层。
公钥密码学
Symmetric-Key密码系统使用相同的密钥来加密和解密消息,尽管消息或一组消息可以具有与其他键不同的密钥。对称密码的重要缺点是安全使用它们的关键管理。理想情况下,每对不同的沟通各方都必须共享一个不同的密钥,也许对于所交换的每个密文也必须共享。随着网络成员数量的平方,钥匙的数量需要增加,这很快就需要复杂的密钥管理方案来使其全部保持一致和秘密。
在1976年开创性的论文中,惠特菲尔德·迪菲(Whitfield Diffie)和马丁·赫尔曼(Martin Hellman)提出了公开键的概念(更广泛地称为不对称钥匙),其中使用了两个不同但与数学上相关的键 -公共密钥和一个私钥。公共密钥系统是如此构造,以至于一个密钥(“私钥”)的计算在计算上是不可行的(“公共密钥”),即使它们一定是相关的。取而代之的是,这两个密钥都是秘密生成的,作为一个相互关联的对。历史学家戴维·卡恩(David Kahn)将公开密码学描述为“自复兴中出现了多音符替代以来该领域最革命性的新概念”。
在公钥密码系统中,可以自由分发公共密钥,而其配对的私钥必须保持秘密。在公钥加密系统中,公共密钥用于加密,而私钥或秘密密钥用于解密。尽管Diffie和Hellman找不到这样的系统,但他们表明,通过介绍Diffie-Hellman密钥交换协议确实可以使用公共钥匙加密,该解决方案现已在安全通信中广泛使用,以允许两方秘密同意共享加密密钥。 X.509标准定义了公共密钥证书最常用的格式。
Diffie和Hellman的出版物引发了广泛的学术努力,以寻找实用的公钥加密系统。这场比赛终于在1978年由Ronald Rivest , Adi Shamir和Len Adleman赢得了比赛,其解决方案此后已被称为RSA算法。
Diffie-Hellman和RSA算法除了是第一个公开知名的高质量公钥算法的例子外,还已经是最广泛使用的。其他不对称键算法包括Cramer-Shoup加密系统, Elgamal加密和各种椭圆曲线技术。
英国情报组织政府通讯总部( GCHQ )于1997年发布的一份文件显示,GCHQ的密码学家预计会有一些学术发展。据报导,大约在1970年,詹姆斯·H·埃利斯(James H. 1973年, Clifford Cocks发明了一种与RSA非常相似的解决方案。 1974年,马尔科姆·威廉姆森(Malcolm J. Williamson)据称开发了差异 - 赫尔曼钥匙交换。
公钥密码学还用于实施数字签名方案。数字签名让人联想到普通签名。他们俩都具有容易让用户生产的特征,但对于其他任何人都很难伪造。数字签名也可以永久与要签署的消息的内容相关。然后,他们不能将它们从一个文档“移动”到另一个文档,因为可以检测到任何尝试。在数字签名方案中,有两种算法:一种用于签名,其中使用秘密密钥来处理消息(或消息的哈希或两者),另一种用于验证,其中使用了匹配的公共密钥带有消息以检查签名的有效性。 RSA和DSA是最受欢迎的两个数字签名方案。数字签名对于公共密钥基础架构和许多网络安全计划的运行至关重要(例如, SSL/TLS ,许多VPN等)。
公钥算法通常是基于“硬”问题的计算复杂性,通常是从数字理论来看。例如,RSA的硬度与整数分解问题有关,而Diffie -Hellman和DSA与离散对数问题有关。椭圆曲线密码学的安全性基于涉及椭圆曲线的数字理论问题。由于基本问题的困难,大多数公钥算法都涉及模块化乘法和指示性的操作,这些操作比大多数块密码中使用的技术要昂贵得多,尤其是具有典型的密钥尺寸。 As a result, public-key cryptosystems are commonly hybrid cryptosystems , in which a fast high-quality symmetric-key encryption algorithm is used for the message itself, while the relevant symmetric key is sent with the message, but encrypted using a public-key演算法.同样,通常使用混合签名方案,其中计算加密哈希函数,并且仅通过数字签名而产生的哈希。
加密哈希功能
加密哈希功能是采用可变长度输入并返回固定长度输出的函数,可以在例如数字签名中使用。为了确保哈希函数,必须很难计算两个散布到相同值的输入(碰撞电阻)并计算出哈希输入到给定输出(预映射电阻)的输入。 MD4是现在已断开的长期使用的哈希功能。 MD5是MD4的增强变体,在实践中也被广泛使用,但破坏了。美国国家安全局开发了安全的哈希算法系列类似于MD5的哈希功能:SHA-0是该机构撤回的有缺陷的算法; SHA-1比MD5广泛部署,更安全,但是隐ratemantalyst已经确定了针对它的攻击。 SHA-2家族在SHA-1上有所改善,但截至2011年很容易发生冲突。从安全角度来看,美国标准管理局认为这是“审慎的”,以开发新的标准,以“显著提高NIST的整体哈希算法工具包的稳健性”。 Thus, a hash function design competition was meant to select a new US national standard, to be called SHA-3 , by 2012. The competition ended on October 2, 2012, when the NIST announced that Keccak would be the new SHA-3 hash演算法.与可逆的块和流密码不同,加密哈希功能会产生无法用于检索原始输入数据的哈希输出。加密哈希功能用于验证从不信任源检索到的数据的真实性或添加安全层。
密码分析
密码分析的目的是在加密方案中发现一些弱点或不安全感,从而允许其颠覆或逃避。
普遍的误解是每个加密方法都可以破坏。关于他在贝尔实验室的第二次世界大战作品,克劳德·香农(Claude Shannon 。大多数密码除了一次性垫子外,都可以通过蛮力攻击而通过足够的计算工作来破坏,但是与使用密码相比,所需的努力可能取决于关键的大小,这可能是指数级的。 。在这种情况下,如果证明所需的努力(即“工作因素”,用香农的话))超出了任何对手的能力,就可以实现有效的安全性。这意味着必须证明,没有发现有效的方法(与耗时的蛮力方法相反)可以打破密码。由于迄今为止尚未发现这种证据,因此一次性播音仍然是理论上唯一无法破坏的密码。尽管良好的一次性pad加密不能损坏,但流量分析仍然是可能的。
有各种各样的密码分析攻击,可以通过几种方式将其分类。一个共同的区别打开了前夕(攻击者)知道的以及可用的功能。在仅密文的攻击中,夏娃只能访问密文(良好的现代密码系统通常可以有效地免疫仅密文的攻击)。在已知的plaintext攻击中,EVE可以访问密文及其相应的明文(或许多这样的对)。在选定的plaintext攻击中,夏娃可以选择明文并学习其相应的密文(也许很多次);一个例子是园艺,在第二次世界大战期间由英国人使用。在选定的ciphertext攻击中,夏娃可以选择Ciphertexts并学习其相应的明文。最终,在中间攻击的人中,在爱丽丝(发送者)和鲍勃(收件人)之间进入了访问和修改流量,然后将其转发给收件人。同样重要的是,通常是错误的,通常是错误(通常是在涉及的一项协议的设计或使用中)。
对称键密码的密码分析通常涉及寻找对块密码或流密码的攻击,这些密码比任何可能对完美密码的攻击都要高效。例如,对DES的简单蛮力攻击需要一个已知的明文和255个解密,尝试大约一半可能的钥匙,以达到机会比发现的钥匙更好的机会。但这可能还不够保证。对DES的线性密码分析攻击需要2 43个已知的明文(具有相应的密文)和大约2 43 DES操作。这是对蛮力攻击的可观改善。
公钥算法基于各种问题的计算难度。其中最著名的是半段整数分解的难度以及计算离散对数的难度,这两者尚未证明仅使用经典的Turing-Complete计算机在多项式时间( P )中可解决。许多公钥密码分析涉及在P中设计可以解决这些问题或使用其他技术(例如量子计算机)的算法的算法。例如,求解基于椭圆曲线的离散对数版本的最著名算法比最适合的算法要花费更多的时间,至少对于或多或少的等效尺寸问题。因此,为了达到加密的等效强度,取决于考虑大型复合数字的难度(例如RSA加密系统)所需要的技术比椭圆曲线技术需要更大的键。因此,自1990年代中期发明以来,基于椭圆曲线的公共密钥密码系统已变得流行。
虽然纯密码分析在算法本身中使用弱点,但对密码系统的其他攻击是基于实际设备中算法的实际使用,被称为侧向通道攻击。如果Cryptanalyst可以访问该设备所花费的时间的时间,或者在密码或PIN字符中报告错误,则他们可能能够使用正时攻击来打破否则的密码对分析有抵抗力。攻击者还可能研究消息的模式和长度以获取有价值的信息;这被称为流量分析,对于警报对手可能非常有用。不良的密码系统的管理不良,例如允许太短的钥匙,无论其他美德如何,都会使任何系统变得脆弱。社会工程和其他针对人类的攻击(例如,贿赂,勒索,敲诈,间谍,橡胶 - 软管隐性分析或酷刑)通常是由于更具成本效益和可行的,可在合理的时间内与与纯隐脑分析相比,在合理的时间内进行。高边缘。
加密原语
密码学中的许多理论工作都涉及加密原语(具有基本密码属性的算法)以及它们与其他密码问题的关系。然后,由这些基本原语构建更复杂的加密工具。这些原语提供了基本属性,这些属性用于开发更复杂的工具称为密码系统或加密协议,这些工具可以保证一个或多个高级安全属性。但是,请注意,加密原语与密码系统之间的区别是非常任意的。例如,RSA算法有时被认为是一个密码系统,有时是原始的。加密原始图的典型示例包括伪随机函数,单向功能等。
加密系统
一个或多个加密原始图通常用于开发一种更复杂的算法,称为加密系统或密码系统。加密系统(例如,EG, EL-GAMAL加密)旨在提供特定功能(例如,公共密钥加密),同时保证某些安全属性(例如,随机Oracle模型中选择的Plaintext攻击(CPA)安全性)。密码系统使用基础加密原始图的属性来支持系统的安全属性。由于原始和密码系统之间的区别是任意的,因此可以从几个更原始的加密系统的组合中得出复杂的加密系统。在许多情况下,密码系统的结构涉及太空中两个或多个各方之间的来回通信(例如,在安全消息及其接收器的发件人之间)或跨时间(例如,密码受保护的备份数据)。这样的加密系统有时称为加密协议。
一些众所周知的密码系统包括RSA, Schnorr Signature , Elgamal加密和相当良好的隐私(PGP)。更复杂的加密系统包括电子现金系统,标志性系统等。一些“理论”加密系统包括交互式证明系统(例如零知识证明)和用于秘密共享的系统。
轻巧的密码学
轻型密码学(LWC)涉及针对严格约束环境开发的密码算法。物联网(IoT)的增长已经刺激了更适合环境的轻量级算法的发展。物联网环境需要严格限制功耗,处理能力和安全性。算法,例如现在, AES和Speck是许多LWC算法的示例,这些算法已开发出来,以实现美国国家标准研究所设定的标准。
申请
密码学在Internet上广泛使用,以帮助保护用户数据并防止窃听。为了确保在传输过程中保密,许多系统使用私有密钥密码学来保护传输的信息。使用公钥系统,可以在没有主密钥或大量钥匙的情况下维护保密。但是,某些算法(例如Bitlocker和veracrypt)通常不是私人公共密钥密码学。例如,Veracrypt使用密码哈希生成单个私钥。但是,可以将其配置为在公私密钥系统中运行。 C ++ OpenSource加密库OpenSSL提供免费和OpenSource加密软件和工具。最常用的加密密码西装是AES ,因为它具有所有具有AES-NI的基于X86的处理器的硬件加速度。近距离的竞争者是Chacha20-Poly1305 ,它是一个流密码,但是它通常用于移动设备,因为它们是基于ARM的,它不具有AES-NI指令设置扩展名。
网络安全
密码学可通过加密通信来确保通信。网站通过HTTPS使用加密。 “端到端”加密,只有发件人和接收器才能读取消息,以相当良好的隐私来实现电子邮件,并在WhatsApp , Signal和Telegram中总体上进行安全消息传递。
操作系统使用加密将密码保持秘密,隐藏系统的一部分,并确保软件更新真正来自系统制造商。计算机系统商店的哈希不是存储明文密码;然后,当用户登录时,系统将通过加密哈希功能传递给定密码,并将其与文件上的哈希值进行比较。通过这种方式,系统和攻击者在任何时候都没有明文访问密码。
加密有时用于加密整个驱动器。例如,伦敦大学学院已经实施了Bitlocker (Microsoft的一个计划),以渲染驱动数据不透明,而无需用户登录。
加密货币和加密经济学
加密技术可实现加密货币技术,例如分布式分类帐技术(例如,区块链),这些技术为加密经济学应用(例如分散财务)(DEFI)提供资金。启用加密货币和加密经济学的关键加密技术包括但不限于:加密密钥,加密哈希功能,不对称(公共密钥)加密,多因素身份验证(MFA) ,端到端口端口加密(E2EE)和零知识证明(ZKP) 。
法律问题
禁令
长期以来,密码学一直是情报收集和执法机构感兴趣的。秘密通讯可能是犯罪甚至叛国的。由于其促进隐私的促进以及隐私服务员在禁止的范围内的减少,密码学也对民权支持者俱有相当大的兴趣。因此,围绕密码学的有争议的法律问题的历史,尤其是自廉价计算机的出现使广泛访问高质量的加密术成为可能。
在某些国家,即使是国内使用加密术也受到了限制。直到1999年,法国在国内严重限制了密码学的使用,尽管此后它放宽了许多这些规则。在中国和伊朗,仍然需要使用密码学。许多国家对使用密码学有严格的限制。在更严格的是白俄罗斯,哈萨克斯坦,蒙古,巴基斯坦,新加坡,突尼斯和越南的法律。
在美国,密码学对于国内使用是合法的,但是与密码学有关的法律问题存在太大的冲突。一个特别重要的问题是加密和加密软件和硬件的出口。可能是由于第二次世界大战中加密分析的重要性,并且期望密码学对国家安全仍然很重要,因此许多西方政府在某个时候严格规范了密码学的出口。第二次世界大战后,在美国出售或分发加密技术是非法的。实际上,加密被指定为辅助军事设备,并列入美国弹药名单。在开发个人计算机,不对称的密钥算法(即,公共密钥技术)和互联网之前,这并不是特别有问题。但是,随着互联网的增长和计算机的增长,高质量的加密技术在全球范围内广为人知。
出口控件
在1990年代,美国对密码学的出口监管面临一些挑战。在菲利普·齐默尔曼(Philip Zimmermann )的《漂亮隐私(PGP)加密计划》(PGP)加密计划的源代码之后,1991年6月进入互联网之后, RSA安全性(当时称为RSA Data Security, Inc。)的投诉导致对Zimmermann进行了长时间的刑事调查尽管从未提出过指控,但美国海关服务和联邦调查局。当时的伯克利分校的研究生丹尼尔·J·伯恩斯坦(Daniel J. Bernstein)提起了针对美国政府的诉讼,该诉讼基于言论自由的理由挑战限制的某些方面。 1995年的案件Bernstein诉美国案最终导致了1999年的决定,该决定印刷了加密算法和系统的源代码,由美国宪法保护为自由言论。
1996年,三十九个国家签署了Wassenaar安排,这是一项武器控制条约,涉及武器出口和“双重用途”技术,例如密码学。该条约规定,使用短键长度(56位用于对称加密,RSA为512位)的加密术不再是导出控制的。由于2000年的严重放松,来自美国的加密出口受到严格监管。在美国出口大众市场软件中,对关键大小的限制不再有很多限制。由于美国出口限制的放松,并且由于大多数连接到Internet的个人计算机都包括美国采购的网络浏览器,例如Firefox或Internet Explorer ,因此几乎每个Internet用户在全球范围内都可以通过其浏览器访问优质的密码学(例如,通过运输层通过运输层安全)。 Mozilla Thunderbird和Microsoft Outlook电子邮件客户端程序类似地可以通过TLS传输和接收电子邮件,并且可以发送和接收与S/MIME加密的电子邮件。许多互联网用户没有意识到他们的基本应用程序软件包含如此广泛的密码系统。这些浏览器和电子邮件程序无处不在,即使是为了规范平民使用加密术的政府,通常并不能够做很多事情来控制这种质量的分布或使用该质量的加密,因此,即使这些法律有效,实际上是有效的执行通常是不可能的。
NSA参与
在美国,与密码学有关的另一个有争议的问题是国家安全局对密码发展和政策的影响。 NSA参与了DES在IBM开发期间的设计,以及国家标准局作为加密联邦标准的考虑。 DES被设计为对差分密码分析的抵抗力,这是NSA和IBM已知的强大而通用的隐式分析技术,仅当1980年代后期重新发现它时才才公开知道。根据史蒂文·利维(Steven Levy)的说法,IBM发现了差分密码分析,但应NSA的要求保留了该技术的秘密。仅当比汉(Biham)和沙米尔(Shamir)重新发现并在几年后宣布时,该技术才公开闻名。整个事件说明了确定攻击者实际可能拥有的资源和知识的困难。
NSA参与的另一个实例是1993年的Clipper Chip事件,这是一种加密微芯片,旨在成为Capstone密码控制倡议的一部分。 Clipper受到密码学家的广泛批评,原因有两个。然后对密码算法(称为Skipjack )进行了分类(1998年在快船倡议失效后很长时间解释)。分类的密码引起了人们担心,NSA故意使密码变得虚弱,以协助其情报工作。该计划还违反了Kerckhoffs的原则,还批评了整个倡议,因为该计划包括政府持有的特殊托管密钥(即窃听)。
数字权利管理
密码学是数字权利管理(DRM)的核心,这是一组技术,用于控制受版权保护的材料的使用,并按照某些版权持有人的要求广泛实施和部署。 1998年,美国总统比尔·克林顿(Bill Clinton)签署了《数字千年版权法》 (DMCA),该法案将所有生产,传播和使用某些加密技术和技术(现在已知或后来发现)定为犯罪;具体而言,那些可用于规避DRM技术方案的人。这对密码学研究界产生了明显的影响,因为可以提出任何一个密码分析研究违反DMCA的论点。此后,在几个国家和地区制定了类似的法规,包括在欧盟版权指令中实施的法规。世界知识产权组织成员国签署的条约要求类似的限制。
美国司法部和联邦调查局并没有像某些人所惧怕的那样严格执行DMCA,但是法律仍然是一个有争议的。受尊敬的密码研究员尼尔斯·弗格森(Niels Ferguson)公开表示,他不会因为担心DMCA的起诉而将自己的一些研究发布给英特尔安全设计。密码学家布鲁斯·施尼尔(Bruce Schneier)认为,DMCA鼓励供应商锁定,同时抑制了对网络安全的实际措施。 Alan Cox ( Linux内核长期开发人员)和Edward Felten (以及他在普林斯顿的一些学生)都遇到了与该法案有关的问题。 Dmitry Sklyarov在从俄罗斯访问美国时被捕,并因涉嫌违反他在俄罗斯所做的工作而犯有DMCA的审判而被判入狱五个月,该行为是合法的。 2007年,发现了负责蓝光和高清DVD内容的加密密钥,并将其释放到互联网上。在这两种情况下,美国电影协会都发出了许多DMCA删除通知,并且这种通知对公平使用和言论自由的影响引发了巨大的互联网反弹。
强制披露加密密钥
在英国, 《调查大国法规》赋予了英国警察迫使嫌疑人解密档案或移交保护加密密钥的密码。不遵守本身就是罪行,在涉及国家安全的案件中被判判处两年徒刑或最高五年。该法案已成功起诉;第一个在2009年导致了13个月监禁的期限。澳大利亚,芬兰,法国和印度的类似强制披露法律强迫接受调查的个人嫌疑人在刑事调查期间移交加密密钥或密码。
在美国,美国诉弗里科苏案的联邦刑事案件解决了搜查令是否可以迫使一个人透露加密密码或密码。电子边界基金会(EFF)认为,这违反了第五修正案给出的自我想像的保护。法院在2012年裁定,根据《全令状法》 ,被告被要求为法院生产未加密的硬盘。
在许多司法管辖区,强制披露的法律地位尚不清楚。
2016年的联邦调查局 - 苹果加密争议涉及美国法院在迫使制造商协助解锁手机的能力,其内容受到密码保护。
作为强制披露的潜在对立,一些加密软件支持合理的可否认性,其中加密数据与未使用的随机数据无法区分(例如,例如已安全擦除的驱动器的数据)。