现代密码学介绍(一)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了现代密码学介绍(一)相关的知识,希望对你有一定的参考价值。
参考技术A 1.Kerckhoff's principle:加密方法不必要求是保密的,它肯定会很容易就落入敌人的手中。安全性仅仅依靠key的安全性。
支持上述principle的三个基本理论:
(1)无论对于哪一方来说,保持一个短的key的安全性比保持加密算法的安全性要简单得多。
(2)当信息被暴露时,改变一个key比替换一个加密模式要简单。
(3)用户们一起使用相同的加密算法好过用户自己使用它们自己的加密算法。
2.通过利用英文的统计模型,可以攻击单字母替换密码:(暴力攻击需要26次)
(1)如果e映射为D,则每个在明文中出现的e都会在密文中显示为D。
(2)每个英文字母出现的频率分布是已知的。
3.移位密码的改进版攻击方法:
(1)将26个字母与数字0~25一一对应,设pi为第i个字母出现的频率(确定的),0<= pi <=1。由Figure 1.3 给出以下式子:
(2)得到一些密文后,设qi为第i个字母在密文中出现的频率(第i个字母出现的次数除以密文长度)。
(3)设key为k,则pi=
,因为第i个字母被映射到第(i+k)个字母。
(4)设 j ∈0,...,25 ,对于 j 可能取到的这26个值,分别计算下列式子:
(5)当找到Ik = 0.065,则可得到key的值k。
4.破解多字母移位密码(维吉尼亚密码): (当key长度为t时,暴力攻击需要 26t 次)
吉尼亚密码分解后实则就是多个凯撒密码,只要知道密钥的长度,我们就可以将其分解。
如密文为:ABCDEFGHIJKLMN
如果我们知道密钥长度为3,就可将其分解为三组:
组1:A D G J M (密文中第 0, 3,6,9,12 个字母)
组2:B E H K N (密文中第 1,4,7,10,13 个字母)
组3:C F I L (密文中第 2,5,8,11 个字母)
分解后每组就是一个凯撒密码,即组内的位移量是一致的,对每一组即可用频度分析法来解密。
所以破解维吉尼亚密码的关键就是确定密钥的长度。
当不知道key的长度时。
(1)设key的长度为t,以下字符有相同的位移量
(2)设qi为第i个字母在上面字符串中出现的频率(第i个字母出现的次数除以字符串长度)。
(3)设位移量为j,则
(4)设
(左边这个变量包含了我们要求的key的长度t ,我们从1开始试t的值)
由(1)我们可知
有相同的位移量。接着我们计算下列式子,找出符合式子的t值:
(5)当T不是key的长度t时,则我们期望每个qi的频率都是1/26
※ 维吉尼亚密码、单字母替换密码比对移位密码的攻击需要更长的密文。
5.如今,schemes(方案)被以一种更系统的方式发展和分析,并最终用来给出严格proof(证据)证明给出的construction(结构)是安全的。为了清晰表达这些proofs,我们首先要正式定义“安全”的含义,结果是,大多数密码证明依赖于目前未经证实的假设,这些假设关于某些数学问题的算法难度。
6.比起古典密码学,现代密码学更强调3个规则(principles):定义、假设和证明(definitions, assumptions, and proofs)。
(1)Formal definitions:给出两个准确的描述:在这个范围内威胁有哪些、什么样的安全保障是被需要的。这样,definitions能够帮助引导加密方案(cryptographic schemes)的设计。在合适的definition下,我们可以研究一个被推荐的方案去看它是否完成需求保障;某些情况下,我们还可以通过展示满足definition证明一个给出的结构的安全。
一个满足更弱定义的方案可能会比满足更强定义的方案更有效。
(2)一个安全定义有两个元素:一个安全保障(从攻击者的观点来看,什么对该方案(scheme)构成成功的攻击,即scheme旨在预防攻击者的行动);一个威胁的模型(描述敌手的能力)。
(3)威胁模型假定攻击者拥有的能力,但对敌手使用的策略没有限制,不用假定敌手是怎么使用它的能力的。
(4)威胁模型,按顺序,攻击者的能力增加:唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击。
(5)Precise Assumptions:安全证明(proofs)经常依赖于假设(assumptions)。
(6)如果被视为建筑块的基本假设,作为方案安全证明的部分是明确的,接着我们只需检查要求的假设是否被新弱点影响。
(7)Proofs and Security: 严格的证明:在某些特定的假设(assumption)下,一个构造(construction)满足给出的定义(definition)。
现代零知识密码学系列培训——MIT IAP 2023
1. 引言
现代零知识密码学——MIT IAP 2023,活动安排为:
- 1)第一讲(2023/1/9):ZK介绍——主讲人Brian Gu,对本课程进行概述,并对现代零知识技术和应用进行快速介绍。本节课将探讨“为什么”:为什么ZK最近是一个如此令人兴奋的话题?为什么认为它有潜力成为未来十年最大的技术故事之一?
- 2)第二讲(2023/1/11):Circom 1——主讲人Brian Gu。本讲重点关注实用的zkSNARK电路工程:使用groth16 zkSNALK协议的工具栈(circom/snarkjs/zkREPL)来构建简单的零知识证明。将讨论R1CS编程模型(和cost模型),以及简单的电路组件,如位运算符、范围检查等。
- 3)第三讲(2023/1/13):零知识密码学的数学基石——主讲人Yufei Zhao。本讲将介绍现代证明系统的“基石”,包含但不限于:零知识形式化、离散对数以及其他通用cryptographic sources of “hardness”、椭圆曲线密码学,和基于pairing的密码学。
- 4)第四讲(2023/1/17):Circom 2——主讲人Vivek Bhupatiraju。基于前面第2讲的“Circom 1”,本讲将讨论并编写更复杂的电路:inclusion proof verification、哈希函数、签名,以及加密验证。
- 5)第五讲(2023/1/18):承诺方案——主讲人Ying Tong Lai。基于第三讲的“数学基石”,构建向量、单变量多项式、多变量多项式承诺方案。
- 6)第六讲(2023/1/20):高效密码学运算算法——主讲人Jason Morton。本讲讨论高效的openings和多项式运算,包括:number-theoretic transform(NTT)、multi-scalar multiplication(MSM)、快速椭圆曲线double-and-add运算。
- 7)第七讲(2023/1/23):算术化——主讲人 Ying Tong Lai。本讲将讨论少量算术化例子——ZK程序的intermediate representations、以及可供证明系统使用的电路表示。
- 8)第八讲(2023/1/25):PLONK和多项式identities——主讲人Jason Morton。本讲将深入了解PLONK zkSNARK协议——基于多项式承诺构建的zkSNARK,具有特殊的PLONK-style arithmetization。还将讨论基于多项式identities构建的LOOKUP。
- 9)第九讲(2023/1/27):证明系统栈,以及recursion和composition——主讲人Ying Tong Lai。将介绍zkSNARK协议蓝图,以及证明系统分类。还将讨论证明系统recursion和composition。
- 10)第十讲(2023/1/30):Applied ZK Constructions 1——主讲人Aayush Gupta。将畅谈ZK构造:用于pseudonymous消息的membership proofs、用于private digital currency transfers的nullifier-based constructions、以及将zkSNARKs用于incomplete information games。
- 11)第十一讲(2023/2/1):Applied ZK Constructions 2——主讲人Brian Gu。将讨论zkSNARKs的高级应用场景:加密数据市场、ZKML、ZKVMs、recursive ZK proofs、proof-of-email等。
- 12)第十二讲(2023/2/3):在最后一讲中,学生和工作人员将展示他们在IAP上进行的项目和ZK应用程序!
参考资料
[1] [MIT IAP 2023] Modern Zero Knowledge Cryptography
以上是关于现代密码学介绍(一)的主要内容,如果未能解决你的问题,请参考以下文章