密码学(Cryptography)可分为古典密码学和现代密码学。密码学是数学和计算机科学的分支,同时其原理大量涉及信息论。密码学的发展促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。
密码学(Cryptography)可分为古典密码学和现代密码学。在西方语文中,密码学一词源于希腊语 kryptós“隐藏的”,和 gráphein“书写”。古典密码学主要关注信息的保密书写和传递,以及与其相对应的破译方法。而现代密码学不只关注信息保密问题,还同时涉及信息完整性验证(消息验证码)、信息发布的不可抵赖性(数字签名)、以及在分布式计算中产生的来源于内部和外部的攻击的所有信息安全问题。
古典密码学与现代密码学的重要区别在于,古典密码学的编码和破译通常依赖于设计者和敌手的创造力与技巧,作为一种实用性艺术存在,并没有对于密码学原件的清晰定义。而现代密码学则起源于 20 世纪末出现的大量相关理论,这些理论使得现代密码学成为了一种可以系统而严格地学习的科学。
密码学是数学和计算机科学的分支,同时其原理大量涉及信息论。著名的密码学者罗纳德·李维斯特解释道:“密码学是关于如何在敌人存在的环境中通信”,自工程学的角度,这相当于密码学与纯数学的差异。密码学的发展促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑用户访问密码、电子商务等等。
术语
直到现代以前,密码学几乎专指加密算法:将普通信息(明文)转换成难以理解的资料(密文)的过程;解密算法则是其相反的过程:由密文转换回明文;加解密包含了这两种算法,一般加密即同时指称加密与解密的技术。
加解密的具体运作由两部分决定:一个是算法,另一个是密钥。密钥是一个用于加解密算法的秘密参数,通常只有通信者拥有。历史上,密钥通常未经认证或完整性测试而被直接使用在加解密上。
密码协议是使用密码技术的通信协议。近代密码学者多认为除了传统上的加解密算法,密码协议也一样重要,两者为密码学研究的两大课题。在英文中,“cryptography”和“cryptology”都可代表密码学,前者又称密码术。但更严谨地说,前者(cryptography)指密码技术的使用,而后者(cryptology)指研究密码的学问,包含密码术与密码分析。密码分析是研究如何破解密码学的学问。但在实际使用中,通常都称密码学(即 cryptography),而不具体区分其含义。
编码:它意指以码字取代特定的明文。例如,以‘苹果派’(apple pie)替换‘拂晓攻击’(attack at dawn)。编码已经不再被使用在严谨的密码学,它在信息论或通信原理上有更明确的意义。
在汉语口语中,电脑系统或网络使用的个人账户通行码也常被以密码代称,虽然通行码亦属密码学研究的范围,但学术上通行码与密码学中所称的密钥并不相同,即使两者间常有密切的关连。
对称密钥加密
对称密钥加密是密码学中的一种加密法,是以转换其中一个数字、字母或仅字符串随机字母,一个秘密密钥会以特定的方式变更消息里面的文字或字母,例如更换字母相对位置(例如 hello 变成 lohel)。只要寄件者与收件者知道秘密密钥,他们可以加密和解密并使用这个资料。
公开密钥加密
公开密钥加密(也称为非对称加密)是密码学中的一种加密法,非对称密钥,是指一对加密密钥与解密密钥,某用户使用加密密钥加密后所获得的资料,只能用该用户的解密密钥才能够解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了其中一个密钥,并不会危害到另外一个。因此公开的密钥为公钥;不公开的密钥为私钥。
数字签名
数字签名(又称公钥数字签名、电子签名)是一种类似写在纸上的签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。在网络上,我们可以使用“数字签名”来进行身份确认。数字签名是一个独一无二的数值,若公钥能通过验证,那我们就能确定对应的公钥的正确性,数字签名兼具这两种双重属性:”可确认性”及”不可否认性(不需要笔迹专家验证)”。
密码学与密码分析的历史
许多物理设备被用来辅助加密,例如古希腊斯巴达的密码棒,这是一个协助置换法的圆柱体,可将信息内字母的次序调动,利用了字条缠绕木棒的方式,把字母进行位移,收信人要使用相同直径的木棒才能得到还原的信息。在欧洲中世纪时期,密码栏用在某类隐写术上。
多字符加密法出现后,更多样的辅助工具出现,如阿尔伯蒂发明的密码盘、特里特米乌斯发明的表格法、以及美国总统汤玛斯·杰佛逊发明的杰弗逊圆盘(巴泽里耶斯约在 1900 年再次独立发明改进)。
二十世纪早期,多项加解密机械被发明且被注册专利,包括最有名的转轮机,第二次世界大战德军所用,别名‘谜’式密码机(恩尼格玛密码机),其加密法是在第一次世界大战后针对当时破密术所做最好的设计。
二十世纪早期的密码学本质上主要考虑语言学上的模式。从此之后重心转移,现在密码学使用大量的数学,包括信息论、计算复杂性理论、统计学、组合学、抽象代数以及数论。密码学同时也是工程学的分支,但却是与别不同,因为它必须面对有智能且恶意的对手,大部分其他的工程仅需处理无恶意的自然力量。查看密码学问题与量子物理间的关连也是目前热门的研究。