棋盘密码的加密方法,其实方法十分简单,在密码学并不发达的古代,也够用了。棋盘密码的解题思路是这样
这种密码的原理是:通信双方各掌握一个m*n列的矩阵,比如A列第一行写上“我”,A列第2行写上“的”……以此类推,构成:
所以,“我的名字叫XXX”的密文即:A1 A2 A3 A4 B1 B2。这样,一份密文就出来了。
使用这种密码表的加密也叫作 ADFGX 密码(密文中只有 A D F G X)
明文:HELLO 密文:DD XF AG AG DF
对于解密,对密文每两个字符一组,分别进行解密
由于密文仅包含5个字符,所以其密钥(也就是密码表)只有5!种可能
写脚本暴力攻击(brute-force)即可
棋盘密码的由来:
公元前2世纪前后希腊人提出了棋盘密码,在当时得到了广泛的运用。同时,它也是密码史上第一个密码。棋盘密码通过将26个字母设法变成十位数来达到加密的目的。棋盘密码的密钥是一个5×5的棋盘,将26个英文字母放置在里面。其中 i 和 j 共用一个密码。
栅栏易位法。即把将要传递的信息中的字母交替排成上下两行,再将下面一行字母排在上面一行的后边,从而形成一段密码。撒移位密码。也就是一种最简单的错位法,将字母表前移或者后错几位。进制转换密码。比如给你一堆数字,乍一看头晕晕的,你可以观察数字的规律,将其转换为10进制数字,然后按照每个数字在字母表中的排列顺序,拼出正确字母。摩尔斯密码。翻译不同,有时也叫摩尔密码。*表示滴,-表示哒,如下表所示比如滴滴哒就表示字母U,滴滴滴滴滴就表示数字5。另外请大家不要被滴哒的形式所困,我们实际出密码的时候,有可能转换为很多种形式,例如用0和1表示,迷惑你向二进制方向考虑,等等。摩尔斯是我们生活中非常常见的一种密码形式,例如电报就用的是这个哦。下次再看战争片,里面有发电报的,不妨自己试着破译一下电报。维热纳尔方阵。上面所说的频率分析,很容易破解较长篇幅的密文,于是维热纳尔继承前人的经验,创造出了这个维热纳尔方阵,从而克服了词频分析轻易能够破解密码的弊端,成为一种较为强大的密码编译形式。字母频率密码。关于词频问题的密码,词频法其实就是计算各个字母在文章中的出现频率,然后大概猜测出明码表,最后验证自己的推算是否正确。这种方法由于要统计字母出现频率,需要花费时间较长,本人在此不举例和出题了,有兴趣的话,参考《跳舞的小人》和《金甲虫》。
你是想知道密码学怎样加解密还是?
近代密码学:编码密码学主要致力于信息加密、信息认证、数字签名和密钥管理方面的研究。信息加密的目的在于将可读信息转变为无法识别的内容,使得截获这些信息的人无法阅读,同时信息的接收人能够验证接收到的信息是否被敌方篡改或替换过;数字签名就是信息的接收人能够确定接收到的信息是否确实是由所希望的发信人发出的;密钥管理是信息加密中最难的部分,因为信息加密的安全性在于密钥。历史上,各国军事情报机构在猎取别国的密钥管理方法上要比破译加密算法成功得多。
密码分析学与编码学的方法不同,它不依赖数学逻辑的不变真理,必须凭经验,依赖客观世界觉察得到的事实。因而,密码分析更需要发挥人们的聪明才智,更具有挑战性。
现代密码学是一门迅速发展的应用科学。随着因特网的迅速普及,人们依靠它传送大量的信息,但是这些信息在网络上的传输都是公开的。因此,对于关系到个人利益的信息必须经过加密之后才可以在网上传送,这将离不开现代密码技术。
1976年Diffie和Hellman在《密码新方向》中提出了著名的D-H密钥交换协议,标志着公钥密码体制的出现。 Diffie和Hellman第一次提出了不基于秘密信道的密钥 分发,这就是D-H协议的重大意义所在。
PKI(Public Key Infrastructure)是一个用公钥概念与技术来实施和提供安全服务的具有普适性的安全基础设施。PKI公钥基础设施的主要任务是在开放环境中为开放性业务提供数字签名服务。
要查看具体的某个密码体系的知识可参考《密码学概论》。
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)。