密码学的100个基本概念(下)
目录
一、密码学历史
二、密码学基础
三、分组密码
四、序列密码
五、哈希函数
六、公钥密码
七、数字签名
八、密码协议
九、密钥管理
十、量子密码
公钥密码
62.RSA公钥密码
1978年,美国麻省理工学院的Rivest、Shamir、Adleman联合提出了RSA公钥密码体制,是第一个安全实用的公钥码算法,其安全性依赖于大整数因子分解的困难性。RSA公钥密码体制可用于加密,也可用于数字签名,且具有安全、易实现等特点。
(1)公私密钥对生成
选取两个大素数(不可泄露),计算及的欧拉函数。
随机选取整数作为公钥,满足,即与互素。
使用Euclid扩展算法计算私钥,即的逆元。
(2)加解密算法
公钥:
私钥:
加密:
解密:
63.ElGamal公钥密码
ElGamal公钥密码体制由T.ElGamal于1985年提出,该体制基于有限域上离散对数问题,既可用于加密,又可以用于数字签名。由于其较好的安全性,且同一明文在不同的时刻会生成不同的密文,在实际中得到了广泛的应用,尤其在数字签名方面的应用,著名的数字签名标准(DSS,Digital Signature Standard)其实就是ElGamal签名方案的一种变形。
(1)公私密钥对生成
随机选择一个大素数,且要求有大素数因子,是一个本原元(是一个有个元素的有限域,是中的非零元构成的乘法群)
选一个随机数作为私钥,计算,公钥为
(2)加解密算法
公钥:
私钥:
加密:,其中
,为随机数
解密:
ElGamal公钥密钥体制每次加密运算需要选择一个随机数,密文既依赖于明文,又依赖于选择的随机数,因此对于同一个明文,不同的时刻生成的密文不同。此外,ElGamal加密使得消息扩展了两倍,即密文的长度是对应明文长度的两倍。
数字签名
64.数字签名
数字签名(Digital Signature),也称电子签名,是指附加在某一电子文档中的一组特定的符号或代码。它利用密码技术对该电子文档进行关信息提取并进行认证形成,用于标识签发者的身份以及签发者对电子文档的认可,并能被接收者用来验证该电子文档在传输过程中是否被篡改或伪造。
发送方A将消息用Hash算法产生一个消息摘要(Message Digest)
发送方A用自己的私钥对消息摘要进行加密,这个加密后的消息摘要就是数字签名
发送方A将消息与签名发给接收方B
接收方B接收到消息及其名后,用发送方A的公钥解密这个签名,获得由发送方A生成的消息摘要
接收方B用发送方A所用Hash算法重新生成所获得消息的摘要,对比这两个摘要。若相同说明签名是发送方A针对这个消息的有效签名,否则签名无效
65.代理签名
代理签名是指原始签名者把他的签名权授权给代理者,代理者代表原始签名者行使他的签名权。当验证者验证代理签名时,验证者既能验证这个签名的有效性,也能确信这个签名是原始签名者认可的签名。
代理签名按照原始签名者给代理签名者的授权形式可分为完全委托的代理签名、部分授权的代理签名(非保护代理者的代理签名、保护代理者的代理签名)、带授权书的代理签名
66.盲签名
盲签名是D.Chaum于1982年首次提出的一种具有特殊性质的数字签名,这种签名要求签名者能够在不知道被签名文件内容的情况下对消息进行签名。
即使签名者在以后看到了被签名的消息及其签名,签名者也不能判断出这个签名是他何时为谁生成的。直观上讲,这种签名的生成过程就像签名者闭着眼睛对消息签名一样,所以形象地称为“盲”数字签名。
67.多重数字签名
在数字签名应用中,有时需要多个用户对同一文件进行签名和认证。能够实现多个用户对同一文件进行签名的数字签名方案称为多重数字签名(Digital Multi-signature)方案。
68.群签名
1991年,Chaum和Heyst首次提出群签名(Group Signature)(组签名)方案。群签名方案允许组中合法用户以用户组的名义签名,具有签名者匿名,只有权威者才能辨认签名者身份等多个特点。一般来说,群签名的参与者由群成员(签名者)、群管理员(GC,Group Center)和签名接受者(签名验证者)组成。
69.不可否认签名
不可否认签名本质的是在无签名者合作条件下不可能验证签名的有效性,从而可以防止他所签文件的复制或散布,这一性质使签名者可以控制产品的散发,在电子出版系统和知识产权保护中有所应用。
密码协议
70.密码协议
协议是指双方或多方为完成一项任务所进行的一系列步骤,而每一步必须依次执行,在前一步完成之前,后面的步骤都不能执行。
密码协议是以密码算法(包括对称密码算法、公钥密码算法、散列函数等)为基础完成某项任务并且满足安全需求的协议,也称作安全协议。常见的密码协议包括:密钥建立协议、认证协议、零知识证明协议、比特承诺、安全多方计算协议等。
71.参与者
参与者指参与协议的各方,每个参与者被抽象为具有概率多项式时间算法的图灵机.参与者可能是朋友或完全信任的人,也可能是敌人或相互完全不信任的人。据参与者在协议中的行为将其分为:诚实参与者、半诚实参与者和恶意参与者。
72.诚实参与者
诚实参与者完全按照要求完成执行过程中的各个步骤,同时保密自己的所有输入、输出及中间结果。诚实参与者也会根据自己的输入、输出以及中间结果来推导其他参与者的信息,但是不会被攻击者腐败。
73.半诚实参与者
半诚实参与者在协议的执行过程中,完全按照协议的要求完成协议的各个步骤,但同时可能将自己的输入、输出及中间结果泄露给攻击者。
74.恶意参与者
恶意参与者在协议的执行过程中,完全按照攻击者的意志执行协议的各个步骤,他不但将自己的所有输入、输出及中间结果泄露给攻击者,还可以根据攻击者的意图改变输入信息、伪造中间及输出信息,甚至中止协议。
75.攻击者
协议执行中,攻击者会破坏协议安全性或正确性,通过腐败参与者的一个子集,来控制其对协议进行攻击。根据攻击者对恶意参与者的控制程度、攻击者的计算能力、对恶意参与者的控制程度、网络同步与异步状态、自适应性等准则,可以对攻击者有不同的分类。其中按照对恶意参与者的控制程度,可以将攻击者分为以下下三类:
76.被动攻击者
被动攻击者又称为半诚实攻击者,只是监听恶意参与者的输入、输出及中间计算结果,并不控制恶意参与者的行为(比如修改恶意参与者的输入输出)。
77.主动攻击者
除了监听任意参与者的输入、输出及中间结果外,主动攻击者还控制恶意参与者的行为(如恶意篡改参与者的输入,按照自己的意图控制恶意参与者的输出等)。
78.隐蔽攻击者
隐蔽攻击者(Convert adversary)指介于被动攻击者与主动攻击者之间的攻击者类型,隐蔽攻击者以被发现的概率为(称为遏制因子)危险去攻击协议,被隐蔽攻击者腐败的参与者可以进行主动的腐败行为。
79.半诚实模型
如果所有参与者都是半诚实或诚实的,称此模型为半诚实模型。半诚实成员完全遵守协议,但它会收集协议执行过程中的所有记录,并试图推断其他成员的输入,半诚实模型中的攻击者都是被动的。
80.恶意模型
有恶意参与者的模型称为恶意模型。恶意参与者完全按照攻击者的意愿执行协议的各个步骤,他不但将自己的所有输入、输出以及中间结构泄露给攻击者,还可以根据攻击者的意图改变改变输入信息、伪造中间及输出信息,甚至终止协议。恶意模型中的攻击者是主动的。
81.隐蔽攻击模型
有被隐蔽攻击者参与的模型称为隐蔽攻击者模型,被腐败的参与者可以进行主动的腐败行为,但仅在能小于一定概率不被发现的情况下才可实施腐败行为。
82.零知识证明
零知识证明(Zero Knowledge Proof)由S.Goldwasser、S.Micali 及 C.Rackoff于1985年在论文《The Knowledge Complexity of Interactive Proof Systems》(交互式证明系统中的知识复杂性)首次提出,是一种用于证明者在不泄露任何其他信息的情况下证明其掌握知识正确性的密码学协议。
该协议的一方称为证明者(Prover),用表示;另一方称为验证者(Verifier),用表示。零知识证明指试图使相信某个论断是正确的,但却不向泄露任何有用的信息,即在论证的过程中得不到任何有用的信息。零知识证明除了证明证明者论断的正确性外不泄露任何其他信息或知识。
83.安全多方计算
安全多方计算问题SMC,Secure Multi-party Computation)由由中国计算机科学家、2000年图灵奖获得者姚启智教授于1982年在论文《Protocols for secure computations》中以百万富翁问题(两个百万富翁Alice和Bob想知道他们两个谁更富有,但他们都不想让对方及其他第三方知道自己财富的任何信息),开创了密码学研究的新领域。
安全多方计算是指在一个互不信任的多用户网络中,个参与者,每个持有秘密数据,希望共同计算出函数
,仅得到结果,并且不泄露给其他参与者。
密钥管理
84.密钥管理
密钥管理就是在授权各方之间实现密钥关系的建立和维护的一整套技术和程序,涉及密钥从产生到最终销毁的整个过程,包括密钥的生成、存储、分发与协商、使用、备份与恢复、更新、撤销和销毁等。
85.会话密钥
会话密钥(Session Key)主要用于对两个通信终端用户的交换数据进行加密,也称数据加密密钥(Data Encrypting Key)。会话密钥的生存周期非常短,通常在会话建立初生成,在会话结束后销毁,主要用来对传输的数据进行保护。会话密钥大多数是临时的、动态生成的,可由通信双方协商得到,也可由密钥分配中心分配。
86.密钥加密密钥
密钥加密密钥(Key Encrypting Key)主要用于对要传送的会话密钥进行加密,也称为二级密钥(SecondaryKey)、次主密钥或辅助密钥。密钥加密密钥的生存周期相对较长,由于它主要用来协商或传送会话密钥,一旦泄露可导致在其使用周期内的所有会话密钥泄露。
87.主密钥
主密钥(Master Key)主要用于对密钥加密密钥或会话密钥的保护,使得这些密钥可以实现在线分发。主密钥对应于层次化密钥结构中的最高层次,它是由用户选定或由系统分配给用的、可在较长时间内由用户所专有的秘密密钥,在某种程度上,主密钥还起到标识用户的作用。它的生存周期最长,受到严格的保护。
88.密钥生命周期
密钥的生命周期是指密钥从产生到最终销毁的整个过程。在这个生命周期中,密钥处于4种不同的状态中:使用前状态(密钥不能用于正常的密码操作)、使用状态(密钥是可用的,并处于正常使用中)、使用后状态(密钥不再正常使用,但为了某种目的对其进行离线访问是可行的)、过期状态(密钥不再使用,所有的密钥记录已被删除)
89.密钥分发
通过密钥分发机制,通信双方中的一方或密钥分配中心选取一个秘密密钥,在不让其他人(除密钥分配中心)看到密钥的情况下,将其传送给通信双方中的另一方。为防止攻击者得到密钥,须时常更新密钥,密码系统的强度依赖于密钥分配技术。
90.密钥协商
密钥协商目的是通信双方在网络中通过交换信息来生成一个双方共享的会话密钥。典型的密钥协议是Diffie-Hellrman密钥交换协议,该协议是一个无身份认证要求的双方密钥协商方案,在这个协议基础上改进的端对端协议(Station-to-Station Pratocol)是一个更安全的密钥协商协议。
91.密钥托管
密钥托管也称为托管加密,是指为公众和用户提供更好安全通信的同时,也允许授权者(包括政府保密部门、企业专门技术人员和特殊用户等)为了国家、集团的利益监听某些通信内容并能解密相关密文。密钥托管也叫“密钥恢复”,或者理解为“受信任的第三方”“数据恢复”和“特殊获取”等含义,对个人没有绝对的隐私和绝对不可跟踪的匿名性。其实现手段是把已加密的数据和数据恢复密钥联系起来,数据恢复密钥不必是直接解密的密钥,但由它可得解密密钥。
92.托管加密标准
为有效控制密码技术的使用,美国政府于1993年4月提出Clipper计划和密钥托管加密技术。密钥托管技术的实质是建议联邦政府和工业界使用新的具有密钥托管功能的联邦加密标准,即托管加密标准(EES,Escrowed Encryption Standard),又称Clipper建议。EES标准于1994年2月正式被美国政府公布采用。EES标准的核心是由美国国家安全局(NSA)主持开发的软硬件实现的密码部件,称为Clipper的防窜扰芯片。
93.公钥基础设施
公钥基础设施(PKI,Public Key Infrastructure)是基于公钥密码学的,提供安全服务的基础设施,核心是要解决信息网络空间中的信任问题,确定可信赖的数字身份。
PKI技术以公钥技术为基础,以数字证书为媒介,结合对称加密和非对称加密技术,将个人、组织、设备的身份标识信息与各自的公钥捆绑在一起,其主要目的是通过自动管理密钥和证书,为用户建立起一个安全可信的网络运行环境,使用户可以在多种应用环境下方便地使用加密和数字签名技术,保证传输信息的机密性、完整性、认证性和不可否认性,广泛应用于电子商务、电子政务等领域。
94.CA
认证机构CA(Certificate Authority),又称证书授证中心,是PKI的核心组成部分和执行机构,它为每个使用公钥的用户发放一个数字证书,证明证书中列出的用户合法拥有证书中列出的公开密钥。认证中心还应包括证书申请注册机构RA(Registration Authority),它是数字证书的注册审批机构。
95.数字证书
数字证书也称公钥证书,是一个经权威机构认证中心CA签名的包含了公钥及公钥持有者身份信息的文件,相当于CA颁发的“身份证”,解决“公钥属于谁”的问题,帮助用户安全地获得对方公钥。
数字证书内容包括:版本号(区分x.509的不同版本)、序列号(CA给予每一个证书的分配惟一的数字标识)、认证机构标识(颁发该证书的机构惟一的CA的X.500名字)、主体标识(证书持有者的名称)、主体公钥信息(和该主体私钥相对应的公钥)、证书有效期等信息。
96.证书链
在PKI的应用中,用户的信任来源于对证书的验证,而这种信任是基于对颁发证书可信第三方CA本身的信任。X.509规定CA用目录信息树(DIT)的方式组织。最高一级CA称为根CA(Root-CA),用户之间的证书验证,需要对方证书生成的一条链(证书链)才能进行。由根证书为起点,透过层层信任(A信任B,B信任C,以此类推),使终端实体证书的持有者可以获得转授的信任,以证明身份。
97.时间戳权威
由于用户桌面时间很容易改变,由该时间产生的时间戳不可信赖,因此需要一个可信任的第三方来提供可信赖的且不可抵赖的时间戳服务。时间戳权威(TSA,Time StampAuthority),它是PKI中的重要组成部分,作为可信的第三方时间权威,其主要功能是提供可靠的时间信息,证明某份文件(或某条信息)在某个时间(或以前)存在,防止用户在这个时间前或时间后伪造数据进行欺骗活动。
98.数字信封
数字信封是一种利用对称加密技术和非对称加密技术两者的优点进行信息安全传输的一种技术,数字信封既发挥了对称加密算法速度快、安全性好的优点,又发挥了非对称加密算法密钥管理方便的优点。
数字信封使用会话密钥加密需要传输的消息,并用接受者的公钥加密会话密钥。
量子密码
99.量子密码
量子密码学是量子物理学和密码学相结合的一门新兴科学,量子密码通信不是用来传送密文或明文,而是用来建立和传送密钥的,这个密钥是绝对安全的。量子密码通信是目前科公认唯一能实现绝对安全的通信方式,能够保证合法的通信双方可觉察潜在的窃听者并采取相应的措施使窃听者无法破解量子密码,无论破译者有多么强大的计算能力。
量子密码是利用量子的不确定性,构造安全的通信通道,使得通信双方能够检测到信息是否被窃听,这一性质为通信双方提供密钥协商或密钥交换时的绝对安全。量子加密学不依赖问题的计算难度,而使用基本的物理定律提供了可证的无条件安全。并且不同于一次一密的密钥,任何窃听量子密钥交换和复制密钥的人不可能不被检测到。
量子密码的安全性基于量子力学的海森堡(Heisenberg)的测不准原理(Uncertainty Principle),因此要攻破量子密码协议就意味着必须否定量子力学定律,所以量子密码是理论上安全的密码技术。
100.量子密码系统
量子密码系统就是使得发送方用量子信道与接收方共享秘密信息,而未经授权的第三方无法窃取信息的密码系统。一个量子密码系统由量子信源、量子信道、经典信道、发送方、接收方等部分组成。
本文作者:无忧
CSDN链接:
https://blog.csdn.net/apr15/article/details/128770449
作者简介:无忧,毕业于北京邮电大学,目前就职于华为技术有限公司, 长期从事信息安全、密码学领域研究。往期推荐
1.CCVR:一种生成虚拟数据的联邦学习算法
2.密码学的100个基本概念(上)笔记分享 | 组队学习密码学(1)——密码学与MPC基础4.笔记分享 | 冯登国院士MPC讲座(1)——MPC基本概念和基础组件