理论上最成熟的密码学算法:对称密码算法、公钥密码算法、哈希函数(杂凑函数)。
密码学简介
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学。
应用于破译密码以获取通信情报的,称为破译学,总称密码学。电报最早是由美国的摩尔斯在1844年发明的,故也被叫做摩尔斯电码。
它由两种基本信号和不同的间隔时间组成:短促的点信号" .",读" 的 "(Di);保持一定时间的长信号"—",读"答 "(Da)。间隔时间:滴,1t;答,3t;滴答间,1t;字母间,3t;字间,5t。
密码学(在西欧语文中,源于希腊语kryptós“隐藏的”,和gráphein“书写”)是研究如何隐密地传递信息的学科。
在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。
自工程学的角度,这相当于密码学与纯数学的异同。密码学是信息安全等相关议题,如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在。
密码学也促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。
密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。
密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。
密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。
传统密码学:Autokey密码 ,置换密码 ,二字母组代替密码 (by Charles Wheatstone) ,多字母替换密码 ,希尔密码 ,维吉尼亚密码 ,替换密码 ,凯撒密码 ,ROT13 ,仿射密码 ,Atbash密码 ,换位密码 ,Scytale
,Grille密码 ,VIC密码 (一种复杂的手工密码,在五十年代早期被至少一名苏联间谍使用过,在当时是十分安全的) 现代加密:加密散列函数 (消息摘要算法,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; KULeuven (Belgium) & debis AG (Germany))
UMAC (NESSIE selection MAC; Intel, UNevada Reno, IBM, Technion, & UCal Davis)
MD5 (系列消息摘要算法之一,由MIT的Ron Rivest教授提出; 128位摘要)
公/私钥加密算法(也称 非对称性密钥算法)公/私钥签名算法秘密钥算法 (也称 对称性密钥算法)
CCCF第7期专题邀请了相关领域的6位专家学者深入探讨图灵对密码学发展的深远影响和密码学的前沿进展,涵盖了密码设计与密码分析这两个密码学的组成部分,同时兼顾了广度与深度。各专题文章原文详见CCF数字图书馆。
关键词: 密码学 图灵 网络空间安全 信息安全
从早期作为一种实用性技术,到今天发展为一门严谨的学科,密码学的发展史汇聚了人类文明的聪明才智。围绕着如何使用密码实现安全和隐私保护与如何安全地使用密码这两个本质问题,密码的设计与分析相互依存,相互促进,处在不断的博弈中,这使得密码的研究得到了持续的发展。
在发展过程中,计算机科学之父艾伦·图灵(Alan M Turing)做出了多方面本质的贡献,对密码学的成熟产生了深远的影响。首先,在密码安全定义建模方面,图灵的可计算性理论及其发明的(通用)图灵机起着重要的作用。例如,我们知道在现代密码中,设计者首先需要证明其提出的密码算法或者协议可以抵御所有的已知和未知的攻击。然而,有很多密码算法或者协议无法证明自己是安全的,但也无法找到安全漏洞。在这种情况下,是设计者没有找到正确的证明方法呢?还是这个密码算法或者协议本身就不可能被证明呢?图灵奠基的可证明性理论对这些问题给出了答案,那就是很多我们无法证实或者证伪的密码算法或者协议,并不是由于设计者缺少正确的证明方法,而是这个密码算法或者协议本身就不可能在有限步骤内被证明。这就要求设计者不断地对其密码算法或者协议进行修改,使得其能被证明。此外,图灵发明的(通用)图灵机也被广泛应用于密码算法或协议敌手模型中对敌手的建模,使对敌手的运算时间约束可以转化成对于算法的计算步骤限制。目前被密码学界广泛接纳的通用可组合安全模型(universal composability)就是通过多项式时间通用图灵机来模拟敌手的。
本期专题邀请了相关领域的专家学者深入探讨图灵对密码学发展的深远影响和密码学的前沿进展,共组织了六篇文章,涵盖了密码设计与密码分析这两个密码学的组成部分,同时兼顾了广度与深度。
第一篇文章是由英国兰卡斯特大学助理教授张秉晟和浙江大学研究员秦湛联合撰写的《通用图灵机及其对现代密码安全建模的影响》,以(通用)图灵机的计算理论为切入点,深入浅出地分析(通用)图灵机对密码学基本算法工具的安全定义和对密码协议的安全性建模产生的深远影响。作者介绍了密码学中的加密算法是如何从AES时代逐渐演化到现在的可证明安全定义以及(通用)图灵机在其中起到的作用。另外,作者还梳理了密码协议,例如安全多方计算的安全性建模和定义是如何通过几十年的研究探讨演化到如今的通用可组合安全模型,重点解析了交互式图灵机对整个通用可组合安全模型构架的奠基作用。
第二篇文章是由山东大学教授王美琴等撰写的《从图灵破解Enigma到现代密码分析》,介绍了Enigma密码机的工作原理和图灵对Engima密码机的破解,并且解析了Enigma密码机的破解对现代密码分析的影响。作者还以针对哈希函数的破解实例来呈现现代密码分析对安全密码算法设计的重要性。
第三篇文章是由中国科学院信息工程研究所研究员胡磊和副研究员宋凌撰写的《密码杂凑函数的回顾与进展》,介绍了用于实现密码学研究中的完整性和认证性的一类关键密码学函数——密码杂凑函数(又称哈希函数、散列函数等)。作者阐述了密码杂凑函数的性质及其具体应用,梳理了密码杂凑函数的发展脉络,总结了密码分析对密码杂凑函数标准化的影响,并具体介绍美国国家标准与技术研究院(NIST)杂凑函数标准SHA-3及其最新分析进展。
第四篇文章是由香港城市大学副教授王聪和武汉大学教授王骞等联合撰写的《安全多方计算理论与实践》,从理论和实践的双重角度对安全多方计算进行深入的解析。作者从生动的现实问题入手,介绍了安全多方计算的系统模型、安全模型以及理论上的普适性解决方案。同时,文章还梳理了安全多方计算在实际应用中的前沿进展,总结了当前安全多方计算应用的现状,指出了未来安全多方计算的研究方向。
第五篇文章是由美国新泽西理工学院助理教授唐强和哥伦比亚大学教授慕梯·杨(Moti Yung)联合撰写的《抗后门的新一代密码学Cliptography研究进展》,对密码学的通用后门攻击Kleptography进行了系统的总结,并且介绍了抗后门密码学Cliptography的前沿进展。作者先阐述了密码学后门背后的科学原理,回答了如何在设计之初就考虑到这种可能的后门攻击问题,进而介绍了抗后门密码学Cliptography如何弥合这个密码学理论设计与实际实现之间的鸿沟,并对新一代密码学理论基础和密码标准提出新的建议。
第六篇文章是由浙江大学副教授张帆、上海交通大学教授谷大武等撰写的《人工智能之于旁路分析》,介绍了人工智能技术在密码旁路分析领域的研究现状,梳理了机器学习算法在旁路分析领域的发展过程,剖析了人工智能技术在密码旁路分析领域取得成果的原因,并指出了将人工智能技术与旁路分析领域结合的研究方向。
希望本专题能鼓舞更多的学者和安全从业人员参与到网络空间安全和信息安全的研究中,设计与分析新密码算法和协议,开拓新的研究方向和领域。
作者介绍
任 奎
CCF专业会员。浙江大学网络空间安全研究中心主任,国家千人计划特聘教授。主要研究方向为数据安全,云安全,人工智能安全,物联网安全等。kuiren@zjueducn
CCF推荐
精品文章
点击 “阅读原文” ,前往CCF数图相关栏目。
《现代密码学》系统地讲述了密码学的基础理论与应用技术。主要内容包括密码学的信息论基础、密码学的复杂性理论、流密码、分组密码、公钥密码、Hash函数、数字签名、密码协议和密钥管理。《现代密码学》内容丰富,取材经典、新颖,概念清楚,各章后面配有大量习题。《现代密码学》可作为高等院校信息安全、通信工程等相关专业本科生的教材,也可供研究生与相关技术人员学习参考。 第1章 概论 1
11 信息安全与密码技术 1
12 密码系统模型和密码体制 5
13 几种简单的密码体制 10
14 初等密码分析 14
15 密码学的信息论基础 20
151 信息量和熵 20
152 完善保密性 23
153 唯一解距离、理论保密性与实际保密性 25
16 密码学的复杂性理论基础 30
161 问题与算法 30
162 算法复杂性 31
163 问题按复杂性分类 32
注记 33
习题 33
第2章 流密码 35
21 流密码的一般模型 35
22 线性反馈移位寄存器序列 37
23 线性复杂度及B-M算法 41
24 非线性准则及非线性序列生成器 44
25 流密码算法介绍 47
251 RC4算法 47
252 A5算法 48
注记 49
习题 50
第3章 分组密码 51
31 分组密码的一般模型 51
32 分组密码分析方法 53
33 DES 54
331 DES算法描述 54
332 DES安全性 60
333 三重DES 62
34 IDEA 63
341 IDEA基本运算 63
342 IDEA算法描述 64
343 IDEA安全性和效率 68
35 AES算法-Rijndael 68
351 Rijndael算法数学基础 69
352 Rijndael设计原理 72
353 Rijndael算法描述 73
354 Rijndael安全性及效率 79
36 分组密码工作模式 79
注记 83
习题 83
第4章 公钥密码学 85
41 公钥密码系统基本概念 85
411 基本概念 85
412 背包公钥密码系统 87
42 RSA公钥密码系统 89
421 算法描述 89
422 对RSA的攻击 91
423 RSA系统的参数选取 93
43 离散对数公钥密码系统 93
431 ElGamal密码系统 93
432 ElGamal密码系统的安全性 95
433 椭圆曲线密码系统 96
44 可证明安全公钥密码系统 99
441 可证明安全性 99
442 公钥密码系统的安全性 100
443 可证明安全抗选择明文攻击密码系统 101
444 可证明安全抗选择密文攻击密码系统 102
注记 106
习题 107
第5章 Hash函数与消息认证 108
51 Hash函数概述 108
511 Hash函数定义 108
512 Hash函数的安全性 109
513 Hash函数的迭代构造法 111
52 Hash函数MD5 112
521 MD5算法 112
522 MD5的安全性 116
53 安全Hash算法SHA-1 117
531 SHA-1算法 117
532 SHA-1和MD5的比较 120
533 SHA-1的修订版 121
54 基于分组密码与离散对数的Hash函数 122
541 利用分组密码构造Hash函数 122
542 基于离散对数问题构造Hash函数 123
55 消息认证 125
551 消息认证码 125
552 HMAC算法 126
56 应用 127
注记 129
习题 129
第6章 数字签名 131
61 数字签名概述 131
62 RSA数字签名体制 133
621 算法描述 133
622 RSA数字签名的安全性 134
63 ElGamal数字签名体制 135
631 算法描述 135
632 ElGamal数字签名的安全性 137
633 ElGamal签名体制的变形 139
64 其他数字签名体制 140
641 Schnorr数字签名 140
642 Fiat-Shamir数字签名 141
643 一次性数字签名 143
644 不可否认数字签名 145
645 盲签名 147
65 数字签名标准 150
651 美国数字签名标准 150
652 俄罗斯数字签名标准 151
66 应用 152
注记 153
习题 153
第7章 密码协议 155
71 密码协议概述 155
72 实体认证协议 156
73 密钥认证协议 162
731 基于对称密码技术的密钥认证协议 162
732 基于非对称密码技术的密钥认证协议 164
74 比特承诺协议 169
75 零知识证明与身份识别协议 171
751 零知识证明 171
752 身份识别协议 173
注记 176
习题 176
第8章 密钥管理 178
81 密钥管理的基本概念 178
82 密钥生成与密钥分发 179
821 密钥的种类 179
822 密钥生成 180
823 密钥分配 182
83 秘密共享与密钥托管 186
831 秘密共享 186
832 密钥托管 189
84 公钥基础设施PKI 192
841 PKI的概念 192
842 PKI的组成 193
843 X509认证业务 193
844 认证中心的体系结构与服务 196
845 PKI中的信任模型 197
注记 199
习题 199
参考文献 201
……
在某些情况下,我们在沟通时,并不想让这个资讯让他人截获。比如男女主人公约会时,会说老地方见(除了他们俩,鬼知道老地方是哪里);两个山寨头子第一次见面时,先对一下暗号,“天王盖地虎,宝塔镇河妖”等等。
于是自然而然就有了密码学最开始的状态。
两千年前,古罗马名将恺撒为了防止敌方截获情报,将罗马字母建立一张对应表,这样如果不知道密码本,即使截获一段信息也看不懂。
这种编码方式史称“恺撒密码”。
如对应表如下:
使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来 *** 作,得到原来的明文。例如:
但是这种简单的对照表,只要多截获一些一些情报,就可以破解出来。比如B字母出现的概率为45%,那么概率在其上下浮动的密文字母就很有可能指向B。
所以电视剧里面那些,根据一组数字,这些数字对应圣经/康熙字典的页码和位置的加密方式,是很容易通过统计学的方法破译出来的。
好的密码必须要做到,根据已知明文和密文的对应推断不出新的密文内容。即无法用统计的方式找到明文和密文之间的转换规律。
从数学的角度讲,加密的过程可以看做是一个函数的运算,解密的过程是反函数的运算。明码是自变量,密码是函数值。好的密码就是不应该通过一组自变量和函数值就能推导出函数。
密码的最高境界是,地方在截获密文后,对我方所知没有任何增加,用信息论的专业术语讲,就是信息量没有增加。
现代密码学基于信息论的理论基础,不只关注信息保密问题,还同时涉及信息完整性验证(消息验证码)、信息发布的不可抵赖性(数字签名)、以及在分布式计算中产生的来源于内部和外部的攻击的所有信息安全问题。
密码学主要有三个分支:哈希密码,对称密码,非对称密码。
又称对称秘钥算法,私钥加密,共享秘钥加密。
这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。事实上,这组密钥成为在两个或多个成员间的共同秘密,以便维持专属的通信联系。
常用的对称加密算法有:DES、3DES、 AES 、Blowfish、IDEA、RC5、RC6
注:对称加密也分为很多的门派,有兴趣的同学可以看这篇 博客
所以在远距离传输消息时,秘钥该如何交换呢?没有秘钥怎么加密?不加密怎么安全的传输秘钥?这是一个先有鸡还是先有蛋的问题。
那么该怎么解决这个难题呢?
在此之前,我们要先了解一下什么是单向函数。
单向函数wiki百科:对于每一个输入,函数值都容易计算(多项式时间),但是给出一个随机输入的函数值,算出原始输入却比较困难(无法在多项式时间内使用确定性图灵机计算)。
单向函数是否存在仍然是计算机科学中的一个开放性问题。
我们先假定,A色值混合B色值,可以得到C色值,但是只知道A和C,无法推导出B的色值,即这是一个单向函数。
1甲、乙两个人约定一个公开的色值A
2甲混合A、B色值,得到X,传给乙;乙混合A、C色值,得到Y,传给甲
3这是甲得到Y,混合B得到Z;乙获得X,混合C同样可以获得Z。
这是一个比较简单的数学问题,即 :
A + B = X;
A + C = Y;
则: X + C = Y + B = A + B + C = Z;
而第三者可以获取的信息是 A、X、Y,根据单向函数的定义,无法反推出Z
视频地址
这就是迪菲赫尔曼秘钥交换的原理所在,在数学上找到单向函数是主要突破点。
目前主流的方法,是使用离散对数作为单向函数。
离散对数:基于同余和原根的对数运算
离散对数至今没有比较好的办法去解决,使用穷举法的话,复杂度为 ,n这里是群的大小的二进制表示的长度,也可以理解为key的二进制长度。如果用1024位的key,这个复杂度在目前的计算速度下基本可视作无法解决。
(天河二号运算速度339亿亿次/s)
所以我们会把离散对数问题认为是一个“很难”的问题,即它是一个单向函数。
迪菲赫尔曼秘钥交换通过单向函数的特性,给出了一种秘钥交换解决方案。
但是另一个问题又浮出水面了。如果我们全部使用对称加密的方式,那跟n个人聊天,就要保存n-1个秘钥,进行n-1次秘钥交换;而且一旦对方被突破,双方就都没有什么信息安全可言了。
非对称加密应运而生。具体请看我的下一篇博客。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)