基本简介
密码学(在西欧语文中,源于希腊语kryptós“隐藏的”,和gráphein“书写”)是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著名的密码学者Ron Rivest解释道:“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。密码学是信息安全等相关议题,如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在。密码学也促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。
密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。
发展历程
密码学的发展历程可分为三个阶段:分别是古典密码、近代密码与现代密码。
密码学(在西欧语文中,源于希腊语kryptós“隐藏的”,和gráphein“书写”)是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著名的密码学者Ron Rivest解释道:“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。密码学是信息安全等相关议题,如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在。密码学也促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。
密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。
密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。它的现实研究成果,特别是各国政府现用的密码编制及破译手段都具有高度的机密性。
进行明密变换的法则,称为密码的体制。指示这种变换的参数,称为密钥。它们是密码编制的重要组成部分。密码体制的基本类型可以分为四种:错乱--按照规定的图形和线路,改变明文字母或数码等的位置成为密文;代替--用一个或多个代替表将明文字母或数码等代替为密文;密本--用预先编定的字母或数字密码组,代替一定的词组单词等变明文为密文;加乱--用有限元素组成的一串序列作为乱数,按规定的算法,同明文序列相结合变成密文。以上四种密码体制,既可单独使用,也可混合使用 ,以编制出各种复杂度很高的实用密码。
20世纪70年代以来,一些学者提出了公开密钥体制,即运用单向函数的数学原理,以实现加、脱密密钥的分离。加密密钥是公开的,脱密密钥是保密的。这种新的密码体制,引起了密码学界的广泛注意和探讨。
利用文字和密码的规律,在一定条件下,采取各种技术手段,通过对截取密文的分析,以求得明文,还原密码编制,即破译密码。破译不同强度的密码,对条件的要求也不相同,甚至很不相同。
理论基础
在通信过程中,待加密的信息称为明文,已被加密的信息称为密文,仅有收、发双方知道的信息称为密钥。在密钥控制下,由明文变到密文的过程叫加密,其逆过程叫脱密或解密。在密码系统中,除合法用户外,还有非法的截收者,他们试图通过各种办法窃取机密(又称为被动攻击)或窜改消息(又称为主动攻击)。
一个密码通信系统可如图3所示。
对于给定的明文m和密钥k,加密变换Ek将明文变为密文c=f(m,k)=Ek(m),在接收端,利用脱密密钥k1,(有时k=k1,)完成脱密操作,将密文c恢复成原来的明文m=Dk1(c)。一个安全的密码体制应该满足:①非法截收者很难从密文C中推断出明文m;②加密和脱密算法应该相当简便,而且适用于所有密钥空间;③密码的保密强度只依赖于密钥;④合法接收者能够检验和证实消息的完整性和真实性;⑤消息的发送者无法否认其所发出的消息,同时也不能伪造别人的合法消息;⑥必要时可由仲裁机构进行公断。
现代密码学所涉及的学科包括:信息论、概率论、数论、计算复杂性理论、近世代数、离散数学、代数几何学和数字逻辑等。
专业术语
密钥:分为加密密钥和解密密钥。
明文:没有进行加密,能够直接代表原文含义的信息。
密文:经过加密处理处理之后,隐藏原文含义的信息。
加密:将明文转换成密文的实施过程。
解密:将密文转换成明文的实施过程。
密码算法:密码系统采用的加密方法和解密方法,随着基于数学密码技术的发展,加密方法一般称为加密算法,解密方法一般称为解密算法。
直到现代以前,密码学几乎专指加密(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)并不相同,即使两者间常有密切的关连。
学科经历
其实在公元前,秘密书信已用于战争之中。西洋“史学之父”希罗多德(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’(每个字母用下一个字母取代)。
编写方法
移位式
移位式(Transposition cipher):将字母顺序重新排列,例如‘help me’变成‘ehpl em’;与替代式(substitutioncipher):有系统地将一组字母换成其他字母或符号,例如‘fly at once’变成‘gmz bu podf’(每个字母用下一个字母取代)。 这两种单纯的方式都不足以提供足够的机密性。凯撒密码是最经典的替代法,据传由古罗马帝国的皇帝凯撒所发明,用在与远方将领的通讯上,每个字母被往后位移三格字母所取代。
加密
加密旨在确保通讯的秘密性,例如间谍、军事将领、外交人员间的通讯,同时也有宗教上的应用。举例来说,早期基督徒使用密码学模糊他们写作的部份观点以避免遭受迫害。666或部分更早期的手稿上的616是新约基督经启示录所指的野兽的数字,常用来暗指专迫害基督徒的古罗马皇帝尼禄(Nero)。史上也有部份希伯来文密码的记载。古印度欲经中也提及爱侣可利用密码来通信。隐写术也出现在古代,希罗多德记载将信息刺青在奴隶的头皮上,较近代的隐写术使用隐形墨水、缩影术(microdots)或数字水印来隐藏信息。
宋曾公亮、丁度等编撰《武经总要》“字验”记载,北宋前期,在作战中曾用一首五言律诗的40个汉字,分别代表40种情况或要求,这种方式已具有了密本体制的特点。
1871年,由上海大北水线电报公司选用6899个汉字,代以四码数字,成为中国最初的商用明码本,同时也设计了由明码本改编为密本及进行加乱的方法。在此基础上,逐步发展为各种比较复杂的密码。
在欧洲,公元前405年,斯巴达的将领来山得使用了原始的错乱密码;公元前一世纪,古罗马皇帝凯撒曾使用有序的单表代替密码;之后逐步发展为密本、多表代替及加乱等各种密码体制。
二十世纪初,产生了最初的可以实用的机械式和电动式密码机,同时出现了商业密码机公司和市场。60年代后,电子密码机得到较快的发展和广泛的应用,使密码的发展进入了一个新的阶段。
密码破译
密码破译是随着密码的使用而逐步产生和发展的。1412年,波斯人卡勒卡尚迪所编的百科全书中载有破译简单代替密码的方法。到16世纪末期,欧洲一些国家设有专职的破译人员,以破译截获的密信。密码破译技术有了相当的发展。1863年普鲁士人卡西斯基所著《密码和破译技术》,以及1883年法国人克尔克霍夫所著《军事密码学》等著作,都对密码学的理论和方法做过一些论述和探讨。1949年美国人香农发表了《秘密体制的通信理论》一文,应用信息论的原理分析了密码学中的一些基本问题。
自19世纪以来,由于电报特别是无线电报的广泛使用,为密码通信和第三者的截收都提供了极为有利的条件。通信保密和侦收破译形成了一条斗争十分激烈的隐蔽战线。
1917年,英国破译了德国外长齐默尔曼的电报,促成了美国对德宣战。1942年,美国从破译日本海军密报中,获悉日军对中途岛地区的作战意图和兵力部署,从而能以劣势兵力击破日本海军的主力,扭转了太平洋地区的战局。在保卫英伦三岛和其他许多著名的历史事件中,密码破译的成功都起到了极其重要的作用,这些事例也从反面说明了密码保密的重要地位和意义。
当今世界各主要国家的政府都十分重视密码工作,有的设立庞大机构,拨出巨额经费,集中数以万计的专家和科技人员,投入大量高速的电子计算机和其他先进设备进行工作。与此同时,各民间企业和学术界也对密码日益重视,不少数学家、计算机学家和其他有关学科的专家也投身于密码学的研究行列,更加速了密码学的发展。
在密码已经成为单独的学科,从传统意义上来说,密码学是研究如何把信息转换成一种隐蔽的方式并阻止其他人得到它。
密码学是一门跨学科科目,从很多领域衍生而来:它可以被看做是信息理论,却使用了大量的数学领域的工具,众所周知的如数论和有限数学。
原始的信息,也就是需要被密码保护的信息,被称为明文。加密是把原始信息转换成不可读形式,也就是密码的过程。解密是加密的逆过程,从加密过的信息中得到原始信息。cipher是加密和解密时使用的算法。
最早的隐写术只需纸笔,加密法,将字母的顺序重新排列;替换加密法,将一组字母换成其他字母或符号。经典加密法的资讯易受统计的攻破,资料越多,破解就更容易,使用分析频率就是好办法。经典密码学仍未消失,经常出现在智力游戏之中。在二十世纪早期,包括转轮机在内的一些机械设备被发明出来用于加密,其中最著名的是用于第二次世界大战的密码机Enigma。这些机器产生的密码相当大地增加了密码分析的难度。比如针对Enigma各种各样的攻击,在付出了相当大的努力后才得以成功。
基本功能
数据加密的基本思想是通过变换信息的表示形式来伪装需要保护的敏感信息,使非授权者不能了解被保护信息的内容。网络安全使用密码学来辅助完成在传递敏感信息的的相关问题,主要包括:
(I)机密性(confidentiality)
仅有发送方和指定的接收方能够理解传输的报文内容。窃听者可以截取到加密了的报文,但不能还原出原来的信息,即不能得到报文内容。
(II)鉴别(authentication)
发送方和接收方都应该能证实通信过程所涉及的另一方, 通信的另一方确实具有他们所声称的身份。即第三者不能冒充跟你通信的对方,能对对方的身份进行鉴别。
(III)报文完整性(message intergrity)
即使发送方和接收方可以互相鉴别对方,但他们还需要确保其通信的内容在传输过程中未被改变。
(IV)不可否认性(non-repudiation)
如果人们收到通信对方的报文后,还要证实报文确实来自所宣称的发送方,发送方也不能在发送报文以后否认自己发送过报文。
学科分类
传统学科
Autokey密码
置换密码
二字母组代替密码 (by Charles Wheatstone)
多字母替换密码
希尔密码
维吉尼亚密码
替换式密码
凯撒密码
摩尔斯电码
ROT13
仿射密码
Atbash密码
换位密码
Scytale
Grille密码
VIC密码 (一种复杂的手工密码,在五十年代早期被至少一名苏联间谍使用过,在当时是十分安全的)
流密码
LFSR流密码
EIGamal密码
RSA密码
对传统密码学的攻击
频率分析
重合指数
经典密码学
在近代以前,密码学只考虑到信息的机密性(confidentiality):如何将可理解的信息转换成难以理解的信息,并且使得有秘密信息的人能够逆向回复,但缺乏秘密信息的拦截者或窃听者则无法解读。近数十年来,这个领域已经扩展到涵盖身分认证(或称鉴权)、信息完整性检查、数字签名、互动证明、安全多方计算等各类技术。
古中国周朝兵书《六韬.龙韬》也记载了密码学的运用,其中的《阴符》和《阴书》便记载了周武王问姜子牙关于征战时与主将通讯的方式:
太公曰:“主与将,有阴符,凡八等。有大胜克敌之符,长一尺。破军擒将之符,长九寸。降城得邑之符,长八寸。却敌报远之符,长七寸。警众坚守之符,长六寸。请粮益兵之符,长五寸。败军亡将之符,长四寸。失利亡士之符,长三寸。诸奉使行符,稽留,若符事闻,泄告者,皆诛之。八符者,主将秘闻,所以阴通言语,不泄中外相知之术。敌虽圣智,莫之能识。”
武王问太公曰:“… 符不能明;相去辽远,言语不通。为之奈何?”
太公曰:“诸有阴事大虑,当用书,不用符。主以书遗将,将以书问主。书皆一合而再离,三发而一知。再离者,分书为三部。三发而一知者,言三人,人操一分,相参而不相知情也。此谓阴书。敌虽圣智,莫之能识。”
阴符是以八等长度的符来表达不同的消息和指令,可算是密码学中的替代法(en:substitution),把信息转变成敌人看不懂的符号。至于阴书则运用了移位法,把书一分为三,分三人传递,要把三份书重新拼合才能获得还原的信息。
除了应用于军事外,公元四世纪婆罗门学者伐蹉衍那(en:Vatsyayana) 所书的《欲经》4 中曾提及到用代替法加密信息。书中第45项是秘密书信(en:mlecchita-vikalpa) ,用以帮助妇女隐瞒她们与爱郞之间的关系。其中一种方法是把字母随意配对互换,如套用在罗马字母中,可有得出下表:
由经典加密法产生的密码文很容易泄漏关于明文的统计信息,以现代观点其实很容易被破解。阿拉伯人津帝(en:al-Kindi)便提及到如果要破解加密信息,可在一篇至少一页长的文章中数算出每个字母出现的频率,在加密信件中也数算出每个符号的频率,然后互相对换,这是频率分析的前身,此后几乎所有此类的密码都马上被破解。但经典密码学仍未消失,经常出现在谜语之中(见en:cryptogram)。这种分析法除了被用在破解密码法外,也常用于考古学上。在破解古埃及象形文字(en:Hieroglyphs)时便运用了这种解密法。
现代学科
标准机构
the Federal Information Processing Standards Publication program (run by NIST to produce standards in many areas to guide operations of the US Federal government; many FIPS Pubs are cryptography related,ongoing)
the ANSI standardization process (produces many standards in many areas; some are cryptography related,ongoing)
ISO standardization process (produces many standards in many areas; some are cryptography related,ongoing)
IEEE standardization process (produces many standards in many areas; some are cryptography related,ongoing)
IETF standardization process (produces many standards (called RFCs) in many areas; some are cryptography related,ongoing)
See Cryptography standards
加密组织
NSA internal evaluation/selections (surely extensive,nothing is publicly known of the process or its results for internal use; NSA is charged with assisting NIST in its cryptographic responsibilities)
GCHQ internal evaluation/selections (surely extensive,nothing is publicly known of the process or its results for GCHQ use; a division of GCHQ is charged with developing and recommending cryptographic standards for the UK government)
DSD Australian SIGINT agency - part of ECHELON
Communications Security Establishment (CSE) - Canadian intelligence agency.
努力成果
the DES selection (NBS selection process,ended 1976)
the RIPE division of the RACE project (sponsored by the European Union,ended mid-'80s)
the AES competition (a 'break-off' sponsored by NIST; ended 2001)
the NESSIE Project (evaluation/selection program sponsored by the European Union; ended 2002)
the CRYPTREC program (Japanese government sponsored evaluation/recommendation project; draft recommendations published 2003)
the Internet Engineering Task Force (technical body responsible for Internet standards -- the Request for Comment series: ongoing)
the CrypTool project (eLearning programme in English and German; freeware; exhaustive educational tool about cryptography and cryptanalysis)
加密散列函数 (消息摘要算法,MD算法)
加密散列函数
消息认证码
Keyed-hash message authentication code
EMAC (NESSIE selection MAC)
HMAC (NESSIE selection MAC; ISO/IEC 9797-1,FIPS and IETF RFC)
TTMAC 也称 Two-Track-MAC (NESSIE selection MAC; K.U.Leuven (Belgium) & debis AG (Germany))
UMAC (NESSIE selection MAC; Intel,UNevada Reno,IBM,Technion,& UCal Davis)
MD5 (系列消息摘要算法之一,由MIT的Ron Rivest教授提出; 128位摘要)
SHA-1 (NSA开发的160位摘要,FIPS标准之一;第一个发行发行版本被发现有缺陷而被该版本代替; NIST/NSA 已经发布了几个具有更长'摘要'长度的变种; CRYPTREC推荐 (limited))
SHA-256 (NESSIE 系列消息摘要算法,FIPS标准之一180-2,摘要长度256位 CRYPTREC recommendation)
SHA-384 (NESSIE 列消息摘要算法,FIPS标准之一180-2,摘要长度384位; CRYPTREC recommendation)
SHA-512 (NESSIE 列消息摘要算法,FIPS标准之一180-2,摘要长度512位; CRYPTREC recommendation)
RIPEMD-160 (在欧洲为 RIPE 项目开发,160位摘要;CRYPTREC 推荐 (limited))
Tiger (by Ross Anderson et al)
Snefru
Whirlpool (NESSIE selection hash function,Scopus Tecnologia S.A. (Brazil) & K.U.Leuven (Belgium))
公/私钥加密算法(也称 非对称性密钥算法)
ACE-KEM (NESSIE selection asymmetric encryption scheme; IBM Zurich Research)
ACE Encrypt
Chor-Rivest
Diffie-Hellman(key agreement; CRYPTREC 推荐)
El Gamal (离散对数)
ECC(椭圆曲线密码算法) (离散对数变种)
PSEC-KEM (NESSIE selection asymmetric encryption scheme; NTT (Japan); CRYPTREC recommendation only in DEM construction w/SEC1 parameters) )
ECIES (Elliptic Curve Integrated Encryption System; Certicom Corp)
ECIES-KEM
ECDH (椭圆曲线Diffie-Hellman 密钥协议; CRYPTREC推荐)
EPOC
Merkle-Hellman (knapsack scheme)
McEliece
NTRUEncrypt
RSA (因数分解)
RSA-KEM (NESSIE selection asymmetric encryption scheme; ISO/IEC 18033-2 draft)
RSA-OAEP (CRYPTREC 推荐)
Rabin cryptosystem (因数分解)
Rabin-SAEP
HIME(R)
XTR
公/私钥签名算法
DSA(zh:数字签名;zh-tw:数位签章算法) (来自NSA,zh:数字签名;zh-tw:数位签章标准(DSS)的一部分; CRYPTREC 推荐)
Elliptic Curve DSA (NESSIE selection digital signature scheme; Certicom Corp); CRYPTREC recommendation as ANSI X9.62,SEC1)
Schnorr signatures
RSA签名
RSA-PSS (NESSIE selection digital signature scheme; RSA Laboratories); CRYPTREC recommendation)
RSASSA-PKCS1 v1.5 (CRYPTREC recommendation)
Nyberg-Rueppel signatures
MQV protocol
Gennaro-Halevi-Rabin signature scheme
Cramer-Shoup signature scheme
One-time signatures
Lamport signature scheme
Bos-Chaum signature scheme
Undeniable signatures
Chaum-van Antwerpen signature scheme
Fail-stop signatures
Ong-Schnorr-Shamir signature scheme
Birational permutation scheme
ESIGN
ESIGN-D
ESIGN-R
Direct anonymous attestation
NTRUSign用于移动设备的公钥加密算法,密钥比较短小但也能达到高密钥ECC的加密效果
SFLASH (NESSIE selection digital signature scheme (esp for smartcard applications and similar); Schlumberger (France))
Quartz
秘密钥算法 (也称 对称性密钥算法)
流密码
A5/1,A5/2 (GSM移动电话标准中指定的密码标准)
BMGL
Chameleon
FISH (by Siemens AG)
二战'Fish'密码
Geheimfernschreiber (二战时期Siemens AG的机械式一次一密密码,被布莱奇利(Bletchley)庄园称为STURGEON)
Schlusselzusatz (二战时期 Lorenz的机械式一次一密密码,被布莱奇利(Bletchley)庄园称为[[tunny)
HELIX
ISAAC (作为伪随机数发生器使用)
Leviathan (cipher)
LILI-128
MUG1 (CRYPTREC 推荐使用)
MULTI-S01 (CRYPTREC 推荐使用)
一次一密 (Vernam and Mauborgne,patented mid-'20s; an extreme stream cypher)
Panama
Pike (improvement on FISH by Ross Anderson)
RC4 (ARCFOUR) (one of a series by Prof Ron Rivest of MIT; CRYPTREC 推荐使用 (limited to 128-bit key))
CipherSaber (RC4 variant with 10 byte random IV,易于实现)
SEAL
SNOW
SOBER
SOBER-t16
SOBER-t32
WAKE
分组密码
分组密码操作模式
乘积密码
Feistel cipher (由Horst Feistel提出的分组密码设计模式)
Advanced Encryption Standard (分组长度为128位; NIST selection for the AES,FIPS 197,2001 -- by Joan Daemen and Vincent Rijmen; NESSIE selection; CRYPTREC 推荐使用)
Anubis (128-bit block)
BEAR (由流密码和Hash函数构造的分组密码,by Ross Anderson)
Blowfish (分组长度为128位; by Bruce Schneier,et al)
Camellia (分组长度为128位; NESSIE selection (NTT & Mitsubishi Electric); CRYPTREC 推荐使用)
CAST-128 (CAST5) (64 bit block; one of a series of algorithms by Carlisle Adams and Stafford Tavares,who are insistent (indeed,adamant) that the name is not due to their initials)
CAST-256 (CAST6) (128位分组长度; CAST-128的后继者,AES的竞争者之一)
CIPHERUNICORN-A (分组长度为128位; CRYPTREC 推荐使用)
CIPHERUNICORN-E (64 bit block; CRYPTREC 推荐使用 (limited))
CMEA - 在美国移动电话中使用的密码,被发现有弱点.
CS-Cipher (64位分组长度)
DESzh:数字;zh-tw:数位加密标准(64位分组长度; FIPS 46-3,1976)
DEAL - 由DES演变来的一种AES候选算法
DES-X 一种DES变种,增加了密钥长度.
FEAL
GDES -一个DES派生,被设计用来提高加密速度.
Grand Cru (128位分组长度)
Hierocrypt-3 (128位分组长度; CRYPTREC 推荐使用))
Hierocrypt-L1 (64位分组长度; CRYPTREC 推荐使用 (limited))
International Data Encryption Algorithm (IDEA) (64位分组长度--苏黎世ETH的James Massey & X Lai)
Iraqi Block Cipher (IBC)
KASUMI (64位分组长度; 基于MISTY1,被用于下一代W-CDMAcellular phone 保密)
KHAZAD (64-bit block designed by Barretto and Rijmen)
Khufu and Khafre (64位分组密码)
LOKI89/91 (64位分组密码)
LOKI97 (128位分组长度的密码,AES候选者)
Lucifer (by Tuchman et al of IBM,early 1970s; modified by NSA/NBS and released as DES)
MAGENTA (AES 候选者)
Mars (AES finalist,by Don Coppersmith et al)
MISTY1 (NESSIE selection 64-bit block; Mitsubishi Electric (Japan); CRYPTREC 推荐使用 (limited))
MISTY2 (分组长度为128位:Mitsubishi Electric (Japan))
Nimbus (64位分组)
Noekeon (分组长度为128位)
NUSH (可变分组长度(64 - 256位))
Q (分组长度为128位)
RC2 64位分组,密钥长度可变.
RC6 (可变分组长度; AES finalist,by Ron Rivest et al)
RC5 (by Ron Rivest)
SAFER (可变分组长度)
SC2000 (分组长度为128位; CRYPTREC 推荐使用)
Serpent (分组长度为128位; AES finalist by Ross Anderson,Eli Biham,Lars Knudsen)
SHACAL-1 (256-bit block)
SHACAL-2 (256-bit block cypher; NESSIE selection Gemplus (France))
Shark (grandfather of Rijndael/AES,by Daemen and Rijmen)
Square (father of Rijndael/AES,by Daemen and Rijmen)
3-Way (96 bit block by Joan Daemen)
TEA(小型加密算法)(by David Wheeler & Roger Needham)
Triple DES (by Walter Tuchman,leader of the Lucifer design team -- not all triple uses of DES increase security,Tuchman's does; CRYPTREC 推荐使用 (limited),only when used as in FIPS Pub 46-3)
Twofish (分组长度为128位; AES finalist by Bruce Schneier,et al)
XTEA (by David Wheeler & Roger Needham)
多表代替密码机密码
Enigma (二战德国转轮密码机--有很多变种,多数变种有很大的用户网络)
紫密(Purple) (二战日本外交最高等级密码机;日本海军设计)
SIGABA (二战美国密码机,由William Friedman,Frank Rowlett,等人设计)
TypeX (二战英国密码机)
Hybrid code/cypher combinations
JN-25 (二战日本海军的高级密码; 有很多变种)
Naval Cypher 3 (30年代和二战时期英国皇家海军的高级密码)
可视密码
有密级的 密码 (美国)
EKMS NSA的电子密钥管理系统
FNBDT NSA的加密窄带话音标准
Fortezza encryption based on portable crypto token in PC Card format
KW-26 ROMULUS 电传加密机(1960s - 1980s)
KY-57 VINSON 战术电台语音加密
SINCGARS 密码控制跳频的战术电台
STE 加密电话
STU-III 较老的加密电话
TEMPEST prevents compromising emanations
Type 1 products
虽然频率分析是很有效的技巧,实际上加密法通常还是有用的。不使用频率分析来破解一个信息需要知道是使用何种加密法,因此才会促成了谍报、贿赂、窃盗或背叛等行为。直到十九世纪学者们才体认到加密法的算法并非理智或实在的防护。实际上,适当的密码学机制(包含加解密法)应该保持安全,即使敌人知道了使用何种算法。对好的加密法来说,钥匙的秘密性理应足以保障资料的机密性。这个原则首先由奥古斯特·柯克霍夫(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)很类似密码杂凑函数,除了接收方额外使用秘密钥匙来认证杂凑值。
密码鉴定
Key authentication
Public Key Infrastructure (PKI)
Identity-Based Cryptograph (IBC)
X.509
Public key certificate
Certificate authority
Certificate revocation list
ID-based cryptography
Certificate-based encryption
Secure key issuing cryptography
Certificateless cryptography
匿名认证系统
GPS (NESSIE selection anonymous identification scheme; Ecole Normale Superieure,France Telecom,& La Poste)
破译密码
被动攻击
选择明文攻击
选择密文攻击
自适应选择密文攻击
暴力攻击
密钥长度
唯一解距离
密码分析学
中间相会攻击
差分密码分析
线性密码分析
Slide attack cryptanalysis
Algebraic cryptanalysis
XSL attack
Mod n cryptanalysis
弱密钥和基于口令的密码
暴力攻击
字典攻击
相关密钥攻击
Key derivation function
弱密钥
口令
Password-authenticated key agreement
Passphrase
Salt
密钥传输/交换
BAN Logic
Needham-Schroeder
Otway-Rees
Wide Mouth Frog
Diffie-Hellman
中间人攻击
伪的和真的随机数发生器
PRNG
CSPRNG
硬件随机数发生器
Blum Blum Shub
Yarrow (by Schneier,et al)
Fortuna (by Schneier,et al)
ISAAC
基于SHA-1的伪随机数发生器, in ANSI X9.42-2001 Annex C.1 (CRYPTREC example)
PRNG based on SHA-1 for general purposes in FIPS Pub 186-2 (inc change notice 1) Appendix 3.1 (CRYPTREC example)
PRNG based on SHA-1 for general purposes in FIPS Pub 186-2 (inc change notice 1) revised Appendix 3.1 (CRYPTREC example)
匿名通讯 Dining cryptographers protocol (by David Chaum)
匿名投递
pseudonymity
匿名网络银行业务
Onion Routing
密码分析又称破密术。密码分析的目的是发现密码机制的弱点,从事者可能是意图颠覆系统恶意的攻击者或评估系统弱点的设计人。在现代,密码算法与协定必须被仔细检查和测试,确定其保证的安全性。
大众普遍误解认为所有加密法都可以被破解。Bell Labs的Claude Shannon在二次世界大战时期便证明只要钥匙是完全随机,不重复使用,对外绝对保密,与信息等长或比信息更长的一次一密是不可能破解的。除了一次一密以外的多数加密法都可以以暴力攻击法破解,但是破解所需的努力可能是钥匙长度的指数成长。
密码分析的方式有很多,因此有数个分类。一个常见的分别法则是攻击者知晓多少信息。在唯密文攻击中,密码分析者只能存取密文,好的现代密码系统对这种情况通常是免疫的。在已知明文攻击中,密码分析者可以存取多个明文、密文对。在选择明文攻击中,密码分析者可以自选任意明文,并被赋予相对应的密文,例如二战时布列颠所使用的园艺法。最后,选择密文攻击中,密码分析者可以自选任意密文,并被赋予相对应的明文
对称钥匙加密的密码分析通常旨在寻找比已知最佳破解法更有效率的方式。例如,以最简单的暴力法破解DES需要一个已知明文与解密运算,尝试近半数可能的钥匙。线性分析攻击法对DES需要已知明文与DES运算,显然比暴力法有效。
公开钥匙算法则基于多种数学难题,其中最有名的是整数分解和离散对数问题。许多公开钥匙密码分析在研究如何有效率地解出这些计算问题的数值算法。例如,已知解出基于椭圆曲线的离散对数问题比相同钥匙大小的整数因子分解问题更困难。因此,为了达到相等的安全强度,基于因子分解的技术必须使用更长的钥匙。由于这个因素,基于椭圆曲线的公开钥匙密码系统从1990年代中期后逐渐流行。
当纯粹的密码分析着眼于算法本身时,某些攻击则专注于密码装置执行的弱点,称为副通道攻击。如果密码分析者可以存取到装置执行加密或回报通行码错误的时间,它就可能使用时序攻击法破解密码。攻击者也可能研究信息的模式与长度,得出有用的信息,称为流量分析,对机敏的敌人这相当有效。当然,社会工程与其它针对人事、社交的攻击与破密术一并使用时可能是最有力的攻击法。
技术应用
Commitment schemes
Secure multiparty computations
电子投票
认证
数位签名
Cryptographic engineering
Crypto systems
1. 数位签章(Digital Signature):
这是以密码学的方法,根据EDI讯息的内容和发信有该把私钥,任何人都无法产生该签名,因此比手写式的签名安全许多。收信人则以发信人的公钥进行数位签章的验证。
2. 数位信封(Digital Envelope):
这是以密码学的方法,用收信人的公钥对某些机密资料进行加密,收信人收到后再用自己的私钥解密而读取机密资料。除了拥有该私钥的人之外, 任何人即使拿到该加密过的讯息都无法解密,就好像那些资料是用一个牢固的信封装好,除了收信人之外,没有人能拆开该信封。
3. 安全回条:
收信人依据讯息内容计算所得到的回覆资料,再以收信人的私钥进行数位签章后送回发信人,一方面确保收信人收到的讯息内容正确无误, 另一方面也使收信人不能否认已经收到原讯息。
4. 安全认证:
每个人在产生自己的公钥之后,向某一公信的安全认证中心申请注册,由认证中心负责签发凭证(Certificate),以保证个人身份与公钥的对应性与正确性。
研究
作为信息安全的主干学科,西安电子科技大学的密码学全国第一。1959年,受钱学森指示,西安电子科技大学在全国率先开展密码学研究,1988年,西电第一个获准设立密码学硕士点,1993年获准设立密码学博士点,是全国首批两个密码学博士点之一,也是唯一的军外博士点,1997年开始设有长江学者特聘教授岗位,并成为国家211重点建设学科。2001年,在密码学基础上建立了信息安全专业,是全国首批开设此专业的高校。
西安电子科技大学信息安全专业依托一级国家重点学科“信息与通信工程”(全国第二)、二级国家重点学科“密码学”(全国第一)组建,是985工程优势学科创新平台、211工程重点建设学科,拥有综合业务网理论及关键技术国家重点实验室、无线网络安全技术国家工程实验室、现代交换与网络编码研究中心(香港中文大学—西安电子科技大学)、计算机网络与信息安全教育部重点实验室、电子信息对抗攻防与仿真技术教育部重点实验室等多个国家级、省部级科研平台。
在中国密码学会的34个理事中,西电占据了12个,且2个副理事长都是西电毕业的,中国在国际密码学会唯一一个会员也出自西电。毫不夸张地说,西电已成为中国培养密码学和信息安全人才的核心基地。
以下简单列举部分西电信安毕业生:来学嘉,国际密码学会委员,IDEA分组密码算法设计者;陈立东,美国标准局研究员;丁存生,香港科技大学教授;邢超平,新加坡NTU教授;冯登国,中国科学院信息安全国家实验室主任,中国密码学会副理事长;张焕国,中国密码学会常务理事,武汉大学教授、信安掌门人;何大可,中国密码学会副理事长,西南交通大学教授、信安掌门人;何良生,中国人民解放军总参谋部首席密码专家;叶季青,中国人民解放军密钥管理中心主任。
西安电子科技大学拥有中国在信息安全领域的三位领袖:肖国镇、王育民、王新梅。其中肖国镇教授是我国现代密码学研究的主要开拓者之一,他提出的关于组合函数的统计独立性概念,以及进一步提出的组合函数相关免疫性的频谱特征化定理,被国际上通称为肖—Massey定理,成为密码学研究的基本工具之一,开拓了流密码研究的新领域,他是亚洲密码学会执行委员会委员,中国密码学会副理事长,还是国际信息安全杂志(IJIS)编委会顾问。
2001年,由西安电子科技大学主持制定的无线网络安全强制性标准——WAPI震动了全世界,中国拥有该技术的完全自主知识产权,打破了美国IEEE在全世界的垄断,华尔街日报当时曾报道说:“中国无线技术加密标准引发业界慌乱”。这项技术也是中国在IT领域取得的具少数有世界影响力的重大科技进展之一。
西安电子科技大学的信息安全专业连续多年排名全国第一,就是该校在全国信息安全界领袖地位的最好反映。
军事分支
军事学概述、射击学、弹道学、内弹道学、外弹道学、中间弹道学、终点弹道学、导弹弹道学、军事地理学、军事地形学、军事工程学、军事气象学、军事医学、军事运筹学、战役学、密码学、化学战等。
密码学(Cryptology)一字源自希腊文"krypto's"及"logos"两字,直译即为"隐藏"及"讯息"之意。而其使用,可以追溯到大约四千年前。公元前二千年,埃及人就将祭文刻在墓碑上。之后人们都是以书写在纸张上的方式,用来传秘密讯息。在二次大战中,密码更是扮演一个举足轻重的角色,许多人认为同盟国之所以能打赢这场战争完全归功于二次大战时所发明的破译密文数位式计算机破解德日密码。西元1949年,Shannon提出第一篇讨论密码系统通讯理论之论文,近代密码学可说是滥觞于斯。直至西元1975年,Diffie与Hellman提出公开金
匙密码系统之观念,近代密码学之研究方向,正式脱离秘密金匙密码系统之窠臼,蓬勃发展,至今已近二十年。发展至今,已有二大类的密码系统。第一类为对称金钥(Symmetric Key)密码系统,第二类为非对称金钥(Public Key) 密码系统。
1965年,美国史丹福大学电机工程系--默克尔、迪菲、赫尔曼等三人研究密码学可惜并未有所发现。另外在英国通讯电子保安组(CESG)秘密机构的切尔纳姆发现了还原密码式,但是由于属于秘密机构,所以不能公开。直到1977年麻省理工研究生--里夫斯,阿德曼发现和切尔曼差不多的式。他们成立RSA Security
Company (RSA是他们名字的字头)现时值25亿美元,在传送信用卡时起了很大作用。RSA已安装了5亿套产品在 IE,Netscape下的小锁就是RSA的产品。数学挂销第一个发现不是美国,但?是第一个公开。数学挂锁上锁易,还原难,所以受广泛使用,亦即是信息编码保密。
数学挂锁泛例:
数学挂锁用单向式:N=pxq <--例子 N(合成数)=两个质数的乘
11x17=187=N
还原单向式公式:C=Me(mod N) *e是M的次数,因为在记事本中打不到*
M*13*(mod 187)=C *13是M的次数*
c=165
x=88 (password kiss)
88*13*(mod 187)=165 *13是88的次数*
modN=M
C*1/e*mod(p-1)(q-1)=88
C=165
p=11
q=17
answer:mod 187=88
一般有两种类型密码学被使用:
symmetric key (对称性的钥匙)和public key (公开的钥匙)(也叫 非对称的钥匙)密码学.
举一个简单的对称的钥匙密码学的范例,假想从朋友处收到一个通知. 你和你的朋友同意来加解密你们的讯息,
你们将使用下列演算法:每个字母将会上移三个字母,例如 A=C,B=D,而 Y 和 Z 转一圈回到 A 和 B,
这个方程式 ("每个字母上移三个字母") 就是送信者使用来加密讯息的钥匙; 而收信者使用相同的钥匙来解密 .
任何人如果没有钥匙就不能够读此讯息. 因为相同的钥匙视同实用来加密及解密讯息,这个方法是一个对称钥匙
的演算法. 这类的密码学及是我们所知的秘密钥匙密码学,因为此钥匙 必须被秘密保存于送信者和收信者,以保护资料的完整性.
非对称性密码学
非对称性或公开的钥匙 密码学,不同于对称性的 密码学,在于其加密钥匙只适用于单一使用者.
钥匙被分为两个部分:
一把私有的钥匙,仅有使用者才拥有.
一把公开的钥匙,可公开发行配送,只要有要求即取得.
每支钥匙产生一个被使用来改变内文的功能. 私有的钥匙 产生一个 私有改变内文的功能,而公开的钥匙 产生一个 公开改变内文的功能.
这些功能是反向相关的,例如.,如果一个功能是用来加密讯息,另外一个功能则被用来解密讯息.不论此改变内文功能的次序为何皆不重要.
公开的钥匙系统的优势是两个使用者能够安全的沟通而不需交换秘密钥匙. 例如,假设一个送信者需要传送一个信息给一个收信者,
而信息的秘密性是必要的,送信者以收信者的公开的钥匙来加密,而仅有收信者的私有的钥匙能够对此信息解密.
公开的钥匙密码学是非常适合于提供认证,完整和不能否认的服务,所有的这些服务及是我们所知的数位签名.
基本原理的密码法,可以分成两种:移位法(transposition)和替代法(substitution),
移位法就是将讯息里面的文字,根据一定的规则改变顺序,这种方法,在文字数量很大的时候,
便可以显示出它的优势,例如"Hello World"才不过10个字母便可以有11708340914350080000种排列的方式。
另外一种方法,就是替代法,还可以分成两种,一种是单字替代,一种是字母替代,两种的原理是一样的,
就是利用文字相对顺序的对应,来改变原来的文章,以英文为例,我们可以把英文字母往后移动三个位置,即:
a b c d e f g h i j k l m n o p q r s t u v w x y z
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
泛例:Hello World How are you
khoor zruog krz duh brx
这句话就变的难以辨认了,而且如果发信人收信人有协定好的话,那还可以把文字之间的空白删除,反正翻译回来的时候,
可以靠文句的意思,来推测断句断字的时机。而单字替代,则是以每个单字,都去换成另外一个相对应的单字,这样来改写原文,
变成一个无法辨认其意义的加密文件。
移位法当然不只限于一种,光是英文字母不考虑大小写,就可以有25种互异的方法,每种密码法,都可视为一种加密法,
我们称为演算法(algorithm),和一把钥匙(KEY)的组合结果。钥匙是用来指定加密程序的演算细节。以移位法为例,
演算法是只以密码字母集里的字母,取代明文字母集里面的字母,钥匙便是收发信人定义的密码字母集。
整个密码学发展的程序,辨识找寻新的演算法,和保护钥匙避免被解密者发现的程序,钥匙在密码学中非常重要,因为即使演算法相同或太简单,
没有加密的钥匙的话,我们仍然很难去破解加密的文件。以单纯的英文字母,不单纯的平移,而用一个字母一个字母互换的话,不考虑大小写,
就有403291461126605635584000000种不同的钥匙必须要去测试,才可以得到原来的明文。
量子密码学(Jennewein et al.,Quantum Cryptography with EntangledPhotons,Physical Review Letters,May 15,2000,Vol 84,Iss 20,pp. 4729-4732)
三个独立研究机构首次实验证明利用量子幽灵式的特性来建构密码之可行性,这项研究提供未来对付电脑骇客的防犯之道.
在这个最新--也是最安全--的资料加密解密架构(即量子密码学)中,研究者是采用一对 entangled光子,
而这对粒子即使相隔远距离的情况下,仍有密切的互动关系.
entanglement-based 的量子密码学具有唯一的,不可被窃听的传输特性,如果有偷听者想窃取资料,也很容易的可以监测出来.
简而言之,entanglement process 可以建立完整的,随机的 0与 1 序列提供两端使用者传输资料,如果有骇客从中撷取资料,
那么这个讯息序列将被改变,用户就会发现有窃听者,并授权放弃被窃听的资料. 这种数位随机序列,或称 “金钥匙”,
再和资料进行计算 (如互斥或闸 XOR),即加密程序,使得这资料串形成一完全随机序列,这方法就是已知的 one-time pad cipher. 同理,
接收端也是靠着金钥匙来进行解密程序.
在研究中,Los Alamos 研究者模拟一位窃听者窃取传输资料,成功地被侦测出来,并授权用户放弃被窃取的资料.
而在澳洲的研究团队,则建立了一公里长的光纤来连接两个完全独立的传输,接收站来验证 entangled 密码理论,
他们建立了金钥匙并成功的传输 Venus 影像. 同时,在 University of Geneva 团队建构超过数公里的光纤,
并使用光子频率来验证entangled 密码理论.
在这些实验中,虽然他们的传输速率较慢,但 entanglement-based 密码理论在未来极有可能超越non-entangled 量子密码理论,
不仅是传输速率,而且在预防资料被窃取方面,所需要的额外光子也比较少.
密码强度
密码强度指一个密码被非认证的用户或计算机破译的难度。 密码强度通常用“弱”或“强”来形 容。“弱”和“强”是相对的,不同的密码系统对于密码强度有不同的要求。密码的破译与系统允许客户尝试不同密码的次数、是否熟悉密码主人等因素相关。然而,即使再强的密码也有可能被偷取、破译或泄漏,在用户设置密码时,尽可能的将密码设置的越复杂、位数越长、经常更换此类型的密码,从而才能让密码强度尽可能达到最高。
高强度的密码应该是: 包括大小写字母、数字和符号,且长度不宜过短,最好不少于10位。 不包含生日、手机号码等易被猜出的信息。 此外,建议您定期更换密码,不要轻易把您的帐号或者密码透露给别人。0与1 2进制中得原始代码,通常可以控制如:2极管,3极管等电子元器件得通与分