第二章 密码学基础
2.1 密码学概述
2.1.1 密码的起源
早在远古时期,人类就能够感知隐含的信息,这便是“解密”的最早的实践之一。
在远古时代出现的岩画,就是远古人类用来传递信息的方式。
大概5500年前,人们发明了最早的书写系统。现代人要想读懂这些文字,很多时候是使用密码分析学的方式。
消息隐藏的应用可以追溯到几个世纪以前,虽然过程不是严密的加密过程,但目的与现代密码学相同。
早在公元前的战争中,人们就已经开始使用一些密码装置,如斯巴达密码棒,平时看起来是一串无意义的字母,但是将纸条绑在规格相同的密码棒上,就可以读出其中的信息。
达芬奇创造过一种密码筒,当设置在上面的拨号盘旋转到特定位置时,密码才能打开。
2.1.2 古典密码
古罗马的一位将军恺撒发明了一种恺撒密码,这种密码原理非常简单,即把每个字母代换成移动固定位置的字母。
1.维吉尼亚密码
恺撒密码是单表代换,过于简单,后来人们发明了多表代换,将字母表扩展到26*26,即维吉尼亚密码。
维吉尼亚密码由“关键字”决定使用哪个代换表。
2.置换密码
置换密码又被称为换位密码,他利用置换打乱了明文字符的位置和次序,也就是说它改变了明文的结构而不改变内容。
3.弗纳姆密码
弗纳姆密码是最简单的密码体制之一。
2.1.3 机械密码
计算机发明之前。所有密码编码和解密都要通过手进行操作。这样速度慢而且易错。所以人们发明了很多机械设备,最具代表性的是二战时期的ENIGMA密码机。
1. ENIGMA密码机
这种密码机通过使用转子对明文中的字母进行加密。E密码机的密钥空间非常大,因其使用3个转子,使每个字母有26**3种代换情况。因此在当时,在拿不到密码本情况下,几乎是坚不可摧的。
2.其他机械密码机
除了ENIGMA密码机,二战中还出出现了很多各种各样的密码机,着实在机械密码史上留下了浓墨重彩的一笔 。
2.1.4 现代密码学
随着信息科学理论的发展,现代密码学也诞生了。
1. 保密通信系统的数学模型
Shannon以概率统计的观点对消息源、密钥源、接收和截获的消息进行数学描述和分析,用不确定性和唯一解距离来度量密码体制的保密性,阐明了密码系统、完善保密性、纯密码、理论保密性和实际保密性等重要概念,从而大大深化了人们对于保密学的理解。这使信息论成为研究密码编码学和密码分析学的一个重要理论基础,宣告了科学的密码学时代的到来。
2.正确区分信息隐藏和信息保密
信息隐藏和信息加密都是为了保护秘密信息的存储和运输。但信息加密所保护的是信息的内容,而信息隐藏则是让攻击者不会知道哪里有秘密。
3. 密码系统与通信系统的对偶性
通信系统中的信息传输、处理、检测和接收,密码系统中的加密、解密、分析和破译都可用信息论观点统一地分析研究。密码系统本质上也是一种信息传输系统,是普通通信系统的对偶形态。
4. Shannon信息论是现代密码的理论基础
5.公钥密码学的“教父”
Shannon在1949年就指出:“好密码的设计问题,本质上是寻求一个困难问题的解,相对于某种其他条件,我们可以构造密码,要破译它(或在过程中的某点上要破译它)等价于解某个已知数学难题。”这句话含义深刻。受此思想启发,Diffie和Hellman在1976年提出了公钥密码体制。因此,人们尊称Shannon为公钥密码学“教父”(Godfather) 。
6. 密码技术分支与Shannon信息论
现代密码学除了被动攻击还有主动攻击,因此现代密码学研究和提供认证性、完整性、不可否认性等技术,并要保障密码系统的可用性,这就出现了密码技术分支,如数字签名、认证码、Hash函数和密码协议等。
7. 量子密钥分发与Shannon信息论
量子密钥只是利用量子的物理特性,并没有超出香农的信息理论和密码理论。
2.1.5 密码学面临的挑战
1. 云计算/存储对密码学的新挑战
很多个人及企业都借助远程云存储平台保存数据,而且云存储有能节省大量成本,弥补移动设备能力的不足等优势。但云端数据面临的安全问题仍是用户选用它的重要考虑,也是云存储技术发展的一个障碍。
用户主要存在以下担心:①用户存在云上的数据会丢失;②长时间存放在云上的数据可能失效;③存储在云上的数据可能会泄密;④存储在云上的数据可能被恶意篡改;⑤存放在云上的个人信息、照片、视频等可能导致个人隐私泄露。
2. 大数据对密码学的新挑战
大数据在存储,传输,处理等方面,都为密码学带来了新的挑战。
3. 物联网对密码学的新需求
物联网存在着数据安全,网络安全,系统安全,隐私保护的问题。它要求:①密码要适应数据多样性(物体多样性使数据多样性);②密码要适应网络多样性、多层次(传感网、无线网、有线网、内网和外网);③密码要适应各层次的资源差异较大(感知层资源弱,管理层资源强),因此需要多密码、多密钥、多安全级别、跨域互联互通。
4. 新型计算机对密码学的新挑战
计算机能力不断提高,人们对密码算法的破译能力也不断提高,使保障信息安全的代价越来越大。
5.区块链技术对密码学的新挑战
首先,与传统的中心化系统相比,区块链由于需要在众多节点间通过共识机制达成一致,因此其性能目前还比较地下。
第二,区块链核心技术的突破还需要依赖密码技术底层算法、协议的突破。
第三,密码技术是区块链的基础核心,密码技术才是一个高度专业的领域。
2.2 密码学基本概念
保密学是研究信息系统安全保密的科学。它有两个分支,即密码编码学和密码分析学。这两者相互对立,又相互促进地向前发展。
2.2.1 密码体制的分类
密码体制分为单钥密码体制和双钥密码体制。以下是他们的原理图。
2.2.2 密码分析
密码分析学士研究分析解密规律的科学。即在攻击者不知道密钥的情况下,从密文中恢复出明文信息。
根据攻击者对于明文、密文等可利用资源的掌握情况,密码攻击可分为以下四种:
1.唯密文破译
2.已知密文破译
3.选择密文破译
4.选择密文攻击
根据密码分析者所采用的密码破译或攻击技术方法,密码分析方法又可分为3种:
1.穷举破译法
这是依次使用可能的密钥试译。在实际中,任何一种安全可靠的密码,这种方法都是不可行的。
2.数学攻击法
通过数学求解的方法来获得明文信息。
3.物理攻击法
物理攻击法是通过对系统或芯片运行过程中所产生的一些物理量进行物理和数学分析。
2.2.3 密码学理论基础
现代密码算法的安全性主要建立在数学难题之上。
1.整数分解
又称因数分解,即任意一个大于1的自然数都可以写成素数乘积的形式。这在代数学、密码学、计算复杂性理论和量子计算等领域有重要作用。
2.模运算
即求余运算。在数论和程序设计中有着广泛应用。
3.有限域
代数结构是对要研究的现象或过程建立的一种数学模型,模型中包括要处理的数学对象集合以及集合上的关系或运算。运算可以是一元的或多元的,可以有一个或多个。
4.欧几里得算法
欧几里得算法是数论中的重要算法,可以用来求两个整数的最大公因子,并且当两个整数互素时,能够求出一个数关于另一个数的乘法逆元。
5.中国剩余定律
中国剩余定理最早见于《孙子算经》,“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?”这一问题称为“孙子问题”,其一般解法国际上称为“中国剩余定理”。中国剩余定理是数论中重要的工具之一,能有效地将大数用小数表示、大数的运算通过小数实现;已知某个数关于两两互素的数的同余类集,可以有效重构这个数。
6.椭圆曲线
椭圆曲线并非椭圆,由于椭圆曲线方程与计算椭圆周长积分公式类似,所以称为椭圆曲线。一般地,椭圆曲线为如下形式的曲线方程 y^2+axy+by=x^3+cx^2+dx+e 其中,a,b,c,d,e为满足条件的实数。定义一个称为无穷远点的元素,记为O,也称为理想点。
2.2.4 国内外密码算法概览
1.序列密码
序列密码是一种对称密码体系,它是对“一次一密”的一种效仿。由于一次一密密钥长,实用性差,人们便通过较短的种子密钥来生成较长的密钥序列,来实现“一次一密”的加密,并且可用性好。
2. 分组密码
分组密码也是一种基于单密钥的对称加密体制的密码,将明文消息编码后的序列划分成长度为n的分组,通过密钥和算法对其加密运算,输出等长的密文分组。
分组密码的明文信息具有良好的扩展性,有较强的适用性,并且不需要密钥同步,与序列密码相比更适合作为加密标准。
3. 公钥密码
其基本思路是:公钥密码算法加密和解密使用不同的密钥,其中,一个密钥是公开的,称为公开密钥,简称公钥,用于加密或者签名验证;另一个密钥是用户专有的,因而是保密的,称为私钥,用于解密或者签名。公钥密码算法的重要特性是已知密码算法和加密密钥,求解解密密钥在计算上不可行。
4.国产密码
国产密码是已经被国家密码管理局认定的国产密码算法,它能够实现加密、解密和认证等功能的技术,包括密码算法编程技术和密码算法芯片、加密卡等的实现技术。
2.3 密码学新进展
2.3.1 身份基公钥密码
1.身份基公钥密码
用户公钥可以为任意的比特串,用户私钥通过私钥生成中心生成。
2.身份基加密
2001年,科学家使用双线性配对技术而提出的第一个可证明安全且实用的身份基加密方案,使身份基公钥密码得到了快速发展。
一个身份基加密包含4个算法: 1.系统建立算法
2.密钥提取算法
3.加密算法
4.解密算法
3.身份基签名
一个身份基签名方案包含四个算法:
1.系统建立算法
2.密钥提取算法
3.签名算法
4.验证算法
4.身份基公钥密码的优缺点
优缺点:①无需公钥证书,用户身份作为唯一识别其身份的公钥,加密或签名验证不需要知道除身份外的其他信息。②无需证书机构,存在可信第三方私钥生成中心(PKG) 向用户提供服务。用户向PKG提交自己的身份ID,PKG生成并颁发ID的私钥。与PKI机制相比, PKG无须处理第三方的请求,降低了加密的开销和基础设施要求。
密钥托管是身份基公钥密码的一个缺点。
2.3.2 属性基公钥密码
属性基公钥密码是在身份基公钥密码的基础上发展起来的。作为身份基公钥密码的拓展,属性基公钥密码将代表用户身份的字符串由一系列描述用户特征的属性来代替。
密文和密钥都与一组属性相关联,当属性满足加密策略时,解密者才能够解密。
2.3.3 同态密码
同态密码可以在不泄露敏感信息的前提下完成对密文的处理任务,有着保护用户数据安全和隐私的特性,成为保护数据安全,提高密文处理分析能力的关键技术。
优点:密文计算无须通过密钥方,可减少成本。运算正确性有保障。
局限性:只能实现单比特加密,效率较低。大多数同态密码技术基于未论证的困难性假设,寻找可论证的困难问题十分困难。需要额外的消除噪音技术。
2.3.4 抗量子密码
随着量子计算机发展,需要发展对应的抗量子密码。
量子计算环境下的密码主要3种:基于量子物理学的量子密码、基于生物学的DNA密码和基于数学的抗量子计算密码。
基于生物学的DNA密码以DNA为载体,用DNA的高存储密度性和高并行性的优点,实现加密认证及签名功能。
基于格的密码算法构造是建立在格上的困难问题。
Hash函数被用在几乎所有的签名方案中。
基于纠错编码的算法是把纠错的方法作为私钥,解密时运用私钥纠正错误,恢复出明文。
基于多变量的密码
2.3.5 轻量级密码
特性
轻量密码是为资源受限的设备定制的密码解决方案。其算法对吞吐率的要求比较低。
设计
设计轻量化密码的方法有两种,第一种是在现有的密码方案进行轻量化改进(设计容易,风险较大)。第二种是设计一个全新的轻量化密码方案(设计复杂但能满足基本安全需求)。
性能
轻量密码的性能评估主要从硬件开销和软件开销两个角度来考虑,由延迟、功耗、吞吐率三个部分组成。
2.4 密码学主要研究方向
2.4.1 密码理论
1.密码基础理论
2.对称密码设计与分析 3.公钥密码设计与分析 4.密码协议设计与分析 5.新型密码设计与分析
2.4.2 密码工程与应用
1.密码芯片设计 2.密码模块设计 3.密码技术应用
2.4.3 密码系统安全防护
1.密码系统安全防护 2.抗攻击安全防护 3.密码系统测评
2.4.4 量子密码
1.量子计算 2.量子密钥分配 3.量子密码协议
2.4.5密码管理
1.密码管理理论与方法 2.密码管理工程与技术 3.密码管理政策与法制