现代密码学-密码学概论与基本知识
Posted lady_killer9
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了现代密码学-密码学概论与基本知识相关的知识,希望对你有一定的参考价值。
目录
简介
本文或本专栏针对现代密码学,传统密码有提及,但不会深入,想深入了解,请移步其他作者的专栏。算法没有自己实现,基本是采用Go语言去调库,感兴趣的读者请自行阅读crypto等标准库源代码。
密码学发展简史
创建
1949年,Shannon发表了“保密系统的通信理论(Communication Theory of Secrecy Systems)”一文,为密码学的发展奠定了坚实的理论基础,此后的密码技术才真正称得上密码学。提出了保密系统的数学模型、随机密码、纯密码、完善保密性、理想保密系统、唯一解距离、理论保密性和实际保密性等重要概念,并提出评价保密系统的5条标准,即保密度、密钥量、加密操作的复杂性、误差传播和消息扩展。(第一次飞跃)
1976年后,美国数据加密标准(DES)的公布使密码学的研究公开,密码学得到了迅速发展。(里程碑)
1976年,Diffe和Hellman发表了《密码学的新方向》,提出了一种新的密码设计思想,从而开创了公钥密码学的新纪元。(第二次飞跃)
1978年由Rivest、Shamire和Adleman首先提出第一个实用的公钥密码体制RSA,使公钥密码的研究进入了快速发展阶段。(里程碑)
发展阶段
密码学发展大致分为三个阶段:
前两个阶段又称为传统密码。
古典密码时期
起始时间:从古代到19世纪末,长达几千年。
技术工具:手工。
通信手段:信使。
密码体制:纸、笔或者简单器械实现的代换及置换,是一种艺术(富有创造性的方式、方法)。
典型密码:凯撒密码、维吉尼亚密码等。
近代密码时期
起始时间:从20世纪初到20世纪50年代,即一战及二战时期。
技术工具:机械设备。
通信手段:电报。
密码体制:手工或电动机械实现复杂的代换及置换,仍是一门艺术。
典型密码:Vernam密码、转轮密码等。
现代密码时期
起始时间:从1949年至今。
技术工具:计算机。(针对二进制的比特位,而不是字符)
通信手段:无线通信、有线通信、计算网络等。
密码体制:对称密码(分组密码、序列密码)和非对称密码(公钥密码),有坚实的数学理论基础,成为一门科学。
典型密码:DES、AES、RC4、RSA、SHA等。
密码主要功能
机密性
-我与你说话时,别人能不能偷听?
-别人偷听到了能不能听懂?
机密性是指保证信息不泄露给非授权的用户或实体,确保存储的信息和传输的信息仅能被授权的各方得到,而非授权用户即使得到信息也无法知晓信息内容,不能使用。
完整性
-收到的传真不太清楚?
-传送过程过程中别人篡改过没有?
完整性是指信息未经授权不能进行改变的特征,维护信息的一致性,即信息在生成、传输、存储和使用过程中不应发生人为或非人为的非授权篡改(插入、替换、删除、重排序等),如果发生,能够及时发现。
认证性
-我不认识你!
-你是谁?
-我怎么相信你就是你?
-要是别人冒充你怎么办?
认证性是指确保一个信息的来源或源本身被正确地标识,同时确保该标识的真实性,分为实体认证和消息认证。
消息认证是指能向接收方保证该信息确实来自于它所宣称的源。
实体认证是指参与信息处理的实体是可信的,即每个实体的确是它所宣称的那个实体,使得任何其它实体不能假冒这个实体。
不可否认性
-我收到货后,不想付款,想抵赖,怎么样?
-我将钱寄给你后,你不给发货,想抵赖,如何?
不可否认性是防止发送方或接收方抵赖所传输的信息,要求无论发送方还是接收方都不能抵赖所进行的行为。因此,当发送方发送一个信息时,接收方能证实该信息的确是由所宣称的发送方发来的;当接收方收到一个信息时,发送方能够证实该信息的确送到了指定的接收方。
密码系统的组成
一个密码系统(System)是由明文(Plaintext)、密文(Ciphertext)、密钥(Key)、加密算法(Encryption Algorithm)和解密算法(Decryption Algorithm)五部分组成的,即s={M,C,K,E,D}。
- 信息的原始形式称为明文。
- 明文经过编码变换所生成的称为密文。
- 密钥是指控制明文与密文之间相互变换的,分为加密密钥和解密密钥。
- 对明文进行编码变换生成密文的过程称为加密,编码的规则称为加密算法。
- 将密文恢复出明文的过程称为解密,恢复的规则称为解密算法。
密码分析学
定义
研究如何分析或破解各种密码编码体制的一门科学。密码分析俗称为密码破译,是指在密码通信过程中,非授权者在不知道解密密钥的条件下对密文进行分析,试图得到明文或密钥的过程。
密码攻击类型
针对对称密码体制
这五种攻击的类型通常是依次增强的,抵御这五种类型的攻击是密码算法的基本要求。
惟密文攻击(Ciphertext Only Attack)
密码分析者除了拥有截获的密文外(密码算法是公开的,以下同),没有其它可以利用的信息。密码分析者的任务是恢复尽可能多的明文,或者最好能推算出解密密钥,这样就很容易解出被加密的信息。这种攻击的方法至少可采用穷举搜索法,即对截获一定数量的密文依次用所有的密钥尝试,直到得到有意义的明文。在这种情况下进行密码破译是最困难的,经不起这种攻击的密码体制被认为是完全不安全的。(仅仅搭线窃听)
已知明文攻击(Known Plaintext Attack)
密码分析者不仅掌握了相当数量的密文,还有一些已知的明-密文对可供利用。密码分析者的任务就是用密文信息推导出解密密钥或导出一个替代算法,此算法可以对所获得的密文恢复出相应的明文。
对于现代密码体制的基本要求:不仅要经受得住惟密文攻击,而且要经受得住已知明文攻击。(有内奸)
选择明文攻击(Chosen Plaintext Attack)
密码分析者不仅能够获得一定数量的明-密文对,还可以选择任何明文并在使用同一未知密钥的情况下能得到相应的密文。这种情况往往是密码分析者通过某种手段暂时控制加密机。(暂时控制加密机)
选择密文攻击(Chosen Ciphertext Attack)
密码分析者能选择不同被加密的密文,并还可得到对应的明文,密码分析者的任务是推出密钥及其它密文对应的明文。
这种情况往往是密码分析者通过某种手段暂时控制加密机和解密机。(暂时控制解密机)
选择文本攻击(Chosen Text Attack)
它是选择明文攻击和选择密文攻击的组合(暂时控制加密机和解密机)。
针对对称密码体制
惟密钥攻击
攻击者仅知道签名者的公钥。
已知消息攻击
攻击者可以获得一些消息和相应的权力,但没有选择的权力。
一般选择消息攻击
攻击者在知道签名者的公钥之前一次性选择所选择获得消息及其签名,即攻击者选择消息与签名者无关。
特殊选择消息攻击
攻击者在知道签名者的公钥之后一次性选择所获得消息及其签名,即攻击者选择消息与签名者有关。
常用方法
穷举攻击
密码分析者用试遍所有密钥的方法来破译密码。穷举攻击所花费的时间等于尝试次数乘以一次解密(加密)所需时间。(一般会有常用密码本,所以大家要常换密码,密码不要太简单呦~)
当解密(加密)算法的复杂性增大时,完成一次解密(加密)所需的时间也增大,从而使穷举攻击的时间也增加。(这也增加合法用户使用密码系统的计算量)
结论:抵御穷举攻击最好方法是有足够密钥空间
统计分析攻击
密码分析者通过分析密文和明文的统计规律来破译密码。统计分析攻击在历史上为破译做出过极大的贡献,大多数传统密码都可以通过统计分析的方法来破译。
结论:抵御统计分析攻击的方法是使明文的统计特征尽可能地不带入密文。如果密文不带有明文的痕迹,那么统计分析攻击成为不可能。(譬如重合指数法)
数学分析攻击
密码分析者针对加密变换所依赖的数学难题(如大整数的素因子分解、离散对数等),通过数学求解的方法(如二次筛法、积分指数法等)来设法找到相应的解密变化,从而实现破译。
结论:抵御数学分析攻击应该选用具有坚实的数学基础和足够复杂的加密方法。
密码体制的安全性
无条件安全性
不论提供的密文有多少,密文中所包含的信息都不足以惟一地确定其对应的明文;具有无限计算资源(诸如时间、空间、资金和设备等)的密码分析者也无法破译某个密码系统。
计算安全性
这涉及到攻破密码体制所做计算的工作量。
计算出或估计出破译它的计算量下限,利用已有的最好方法破译该密码系统所需要的努力超出了破译者的破译能力(诸如时间、空间、资金等资源)。即破译密码系统的成本不能超过被加密信息本身的价值,以及破译密码系统的时间不能超过被加密信息的有效生命周期。
任何密码总有一天都会被破译的。
可证明安全性
通过有效的转化,将对密码体制的任何有效攻击归约到解一类已知难处理问题,即使用多项式归约技术形式化证明一种密码体制的安全性,称为可证明安全性。
譬如,如果给定大整数的素因子分解是不可行的,那么RSA密码体制是不可破解的。
这种方法只是说明了安全性和另一个问题相关的,并没有完全证明它是安全的。
思维导图
传统密码
对称密码
des
aes
非对称密码
rsa
ecc
哈希函数与消息认证
MD5
SHA
数字签名
公钥管理
数字证书
参考
《现代密码学教程(第2版)谷利泽,杨义先等》
更新中...
更多内容查看:网络安全-自学笔记
喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。
以上是关于现代密码学-密码学概论与基本知识的主要内容,如果未能解决你的问题,请参考以下文章