密码技术
简介密码学(在西欧语文中之源于希腊语kryptós,“隐藏的”,和gráphein,“书写”)是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著名的密码学者Ron Rivest解释道:“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。密码学是 信息安全等相关议题,如认证、访问控制的核心。密码学的首要目是隐藏信息的涵义,并不是将隐藏信息的存在。密码学也促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。
术语直到现代以前,密码学几乎专指加密算法:将普通信息(明文)转换成难以理解的资料(密文)的过程;解密算法则是其相反的过程:由密文转换回明文;密码机(cipher或cypher)包含了这两种算法,一般加密即同时指称加密与解密的技术。 密码机的具体运作由两部分决定:一个是算法,另一个是钥匙。钥匙是一个用于密码机算法的秘密参数,通常只有通讯者拥有。历史上,钥匙通常未经认证或完整性测试而被直接使用在密码机上。
密码协议(cryptographic protocol)是使用密码技术的通信协议(communication protocol)。近代密码学者多认为除了传统上的加解密算法,密码协议也一样重要,两者为密码学研究的两大课题。在英文中,cryptography和cryptology都可代表密码学,前者又称密码术。但更严谨地说,前者(cryptography)指密码技术的使用,而后者(cryptology)指研究密码的学科,包含密码术与密码分析。密码分析 (cryptanalysis)是研究如何破解密码学的学科。但在实际使用中,通常都称密码学(英文通常称cryptography),而不具体区分其含义。
口语上,编码(code)常意指加密或隐藏信息的各种方法。然而,在密码学中,编码有更特定的意义:它意指以码字(code word)取代特定的明文。例如,以‘苹果派’(apple pie)替换‘拂晓攻击’(attack at dawn)。编码已经不再被使用在严谨的密码学,它在信息论或通讯原理上有更明确的意义。
在汉语口语中,电脑系统或网络使用的个人帐户口令 (password)也常被以密码代称,虽然口令亦属密码学研究的范围,但学术上口令与密码学中所称的钥匙(key)并不相同,即使两者间常有密切的关连。
现代密码学
现代密码学大致可被区分为数个领域。 对称钥匙密码学指的是传送方与接收方都拥有相同的钥匙。直到1976年这都还是唯一的公开加密法。
现代的研究主要在分组密码(Block Cipher)与流密码(Stream Cipher)及其应用。分组密码在某种意义上是阿伯提的多字符加密法的现代化。分组密码取用明文的一个区块和钥匙,输出相同大小的密文区块。由于信息通常比单一区块还长,因此有了各种方式将连续的区块编织在一起。 DES和AES是美国联邦政府核定的分组密码标准(AES将取代DES)。尽管将从标准上废除,DES依然很流行(triple-DES变形仍然相当安全),被使用在非常多的应用上,从自动交易机、电子邮件到远端存取。也有许多其他的区块加密被发明、释出,品质与应用上各有不同,其中不乏被破解者。
流密码,相对于区块加密,制造一段任意长的钥匙原料,与明文依位元或字符结合,有点类似一次垫(one-time pad)。输出的串流根据加密时的内部状态而定。在一些流密码上由钥匙控制状态的变化。RC4是相当有名的流密码。
密码杂凑函数(有时称作消息摘要函数,杂凑函数又称散列函数或哈希函数)不一定使用到钥匙,但和许多重要的密码算法相关。它将输入资料(通常是一整份文件)输出成较短的固定长度杂凑值,这个过程是单向的,逆向操作难以完成,而且碰撞(两个不同的输入产生相同的杂凑值)发生的机率非常小。
信息认证码或押码(Message authentication codes, MACs)很类似密码杂凑函数,除了接收方额外使用秘密钥匙来认证杂凑值。
公开密钥密码体系(Public Key Infranstructures,PKI)
公开密钥密码体系,简称公钥密码体系,又称非对称密钥密码体系,相对于对称密钥密码体系,最大的特点在于加密和解密使用不同的密钥。
在对称密钥密码体系中,加密和解密使用相同的密钥,也许对不同的信息使用不同的密钥,但都面临密钥管理的难题。由于每对通讯方都必须使用异于他组的密钥,当网络成员的数量增加时,密钥数量成二次方增加。更尴尬的难题是:当安全的通道不存在于双方时,如何建立一个共有的密钥以利安全的通讯?如果有通道可以安全地建立密钥,何不使用现有的通道。这个‘鸡生蛋、蛋生鸡’的矛盾是长年以来密码学无法在真实世界应用的阻碍。
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源于离散对数问题。近年发展快速的椭圆曲线密码学则基于和椭圆曲线相关的数学难题,与离散对数相当。由于这些底层的问题多涉及模数乘法或指数运算,相对于分组密码需要更多计算资源。因此,公开密钥系统通常是复合式的,内含一个高效率的对称密钥算法,用以加密信息,再以公开密钥加密对称钥匙系统所使用的钥匙,以增进效率。
基于身份认证密码体系( Identity-Based Cryptograph,IBC)
在1984年以色列科学家Shamir提出了基于标识的密码系统的概念(IBC)。在基于标识的系统中,每个实体具有一个标识。该标识可以是任何有意义的字符串。但和传统公钥系统最大的不同是,在基于标识的系统中,实体的标识本身就是实体的公开密钥。由于标识本身就是实体的公钥,这类系统就不再依赖证书和证书管理系统如PKI,从而极大地简化了管理密码系统的复杂性。在提出IBC概念的同时,Shamir提出了一个采用RSA算法的基于标识的签名算法(IBS)。但是基于标识的加密算法(IBC)长时期未能找到有效解决方法。
在2000年,三位日本密码学家R. Sakai, K. Ohgishi 和 M. Kasahara提出了使用椭圆曲线上的pairing设计基于标识的密码系统的思路。在该论文中他们提出了一种无交互的基于标识的密钥生成协议. 在该系统中,他们设计了一种可用于基于标识的密码系统中的系统初始化方法和密码生成算法。
在2001年,D. Boneh和M. Franklin , R. Sakai, K. Ohgishi 和 M. Kasahara 以及C. Cocks 分别提出了三个基于标识的加密算法。前两个都是采用椭圆曲线上pairing的算法。第三种算法利用平方剩余难问题。前两种算法都采用了与中相同的思路初试化系统并生成用户的私钥。由于D. Boneh和M. Franklin提出的IBC (BF-IBC)的安全性可以证明并且有较好的效率,所以引起了极大的反响。
基于标识的密码技术在过去几年中得到快速发展。研究人员设计了大量的新密码系统。随着应用的逐渐广泛,相应算法的标准化工作也在逐步展开。IEEE P1363.3的基于标识的密码技术工作组正在进行相关算法的标准化工作 。ISO/IEC已经标准化了两个基于标识的签名算法。
2007年,中国国家密码局组织了国家标识密码体系IBC标准规范( Identity-Based Cryptograph, IBC)的编写和评审工作。由五位院士和来自党政军、科研院所的密码专家组成了评审组,对该标准规范在安全性、可靠性、实用性和创新性等方面进行了多次严格审查, 2007年12月16日国家IBC标准正式通过了评审。专家们一致认定,该标准拥有独立知识产权,属于国内首创,达到了国际领先水平,并已逐步开始应用在智能密钥、加密邮件、网络安全设备等产品中中。
有关的法律禁令密码技术长期以来都是情报或司法机构的兴趣。由于这些单位的隐密性以及禁令后个人隐私的减少,密码技术也是人权支持者关心的焦点。环绕密码技术的法律议题已有很长的历史,特别是在可以执行高品质密码的廉价计算机问世后。
在某些国家甚至本国的密码技术应用也受到了限制:
直到1999年,法国仍然限制国内密码技术的使用。
在中国,使用密码技术需要申请执照。
许多国家有更严格的限制,例如白俄罗斯、哈萨克、蒙古、巴基斯坦、俄罗斯、新加坡、突尼斯、委内瑞拉和越南。
在美国,国内密码技术的使用是合法的,但仍然有许多法律冲突。
一个特别重要的议题是密码软件与硬件的出口管制。由于密码分析在二战时期扮演的重要脚色,也期待密码学可以持续在国家安全上效力,许多西方国家政府严格规范密码学的出口。二战之后,在美国散布加密科技到国外曾是违法的。事实上,加密技术曾被视为军需品,就像坦克与核武。直到个人电脑和因特网问世后情况才改变。好的密码学与坏的密码学对绝大部分使用者来说是没有差别的,其实多数情况下,大部分现行密码技术普遍缓慢而且易出错。然而当因特网与个人电脑日益成长,优良的加密技术逐渐广为人知。可见出口管制将成为商务与研究上的阻碍。
密码技术在中国的发展状况我国信息网络安全研究历经了通信保密、数据保护两个阶段,正在进入网络信息安全研究阶段,现已开发研制出防火墙、安全路由器、安全网关、黑客入侵检测、系统脆弱性扫描软件等。但因信息网络安全领域是一个综合、交叉的学科领域它综合了利用数学、物理、生化信息技术和计算机技术的诸多学科的长期积累和最新发展成果,提出系统的、完整的和协同的解决信息网络安全的方案,目前应从安全体系结构、安全协议、现代密码理论、信息分析和监控以及信息安全系统五个方面开展研究,各部分相互协同形成有机整体。