左侧 导航 网站辽宁省住房和城乡建设部网站主页
左侧 导航 网站,辽宁省住房和城乡建设部网站主页,网络平台怎么挣钱的,微博营销网站源码密码学的基本概念
密码学(Cryptology)#xff1a; 研究信息系统安全保密的科学。 密码编码学(Cryptography)#xff1a; 研究对信息进行编码,实现对信息的隐蔽。 密码分析学(Cryptanalytics) #xff1a; 研究加密消息的破译或消息的伪造。 消息被称为明文(Plaintext)。 用…密码学的基本概念
密码学(Cryptology) 研究信息系统安全保密的科学。 密码编码学(Cryptography) 研究对信息进行编码,实现对信息的隐蔽。 密码分析学(Cryptanalytics) 研究加密消息的破译或消息的伪造。 消息被称为明文(Plaintext)。 用某种方法伪装消息以隐藏它的内容的过程称为加密(Encrtption)被加密的消息称为密文(Ciphertext)而把密文转变为明文的过程称为解密(Decryption)。 密码算法 用于加密和解密的数学函数。 密码员对明文进行加密操作时所采用的一组规则称作加密算法(Encryption Algorithm)。\所传送消息的预定对象称为接收者(Receiver)。接收者对密文解密所采用的一组规则称为*解密算法(Decryption Algorithm)。 加密过程 密码学的目的Alice和Bob两个人在不安全的信道上进行通信而破译者Oscar不能理解他们通信的内容。 加密和解密算法的操作通常都是在一组密钥的控制下进行的分别称为加密密钥(Encryption Key) 和解密密钥(Decryption Key)。
密码体制 一个五元组(P,C,K,E,D)满足条件
P是可能明文的有限集(明文空间)C是可能密文的有限集(密文空间)K是一切可能密钥构成的有限集(密钥空间)任意k∈K,有一个加密算法ek∈E和相应的解密算法dk∈D使得ek : P→C和dk : C→P分别为加密解密函数满足dk(ek(x))x其中 x ∈P。
加密算法基本原理 代替明文中的元素映射成另一个元素 置换 重新排列 要求不允许信息丢失即算法可逆
基于密钥的算法按照密钥的特点分类 对称密码算法(symmetric cipher)加密密钥和解密密钥相同或实质上等同即从一个易于推出另一个。又称秘密密钥算法或单密钥算法。 非对称密钥算法(asymmetric cipher)加密密钥和解密密钥不相同从一个很难推出另一个。又称公开密钥算法(public-key cipher) 。
密码分析破解类型
唯密文攻击 密码分析者仅知道有限数量用同一个密钥加密的密文已知明文攻击 密码分析者除了拥有有限数量的密文外还有数量限定的一些已知“明文—密文”对选择明文攻击 密码分析者除了拥有有限数量的密文外还有机会使用注入了未知密钥的加密机通过自由选择明文来获取所希望的“明文—密文”对。选择密文攻击 密码分析者除了拥有有限数量的密文外还有机会使用注入了未知密钥的解密机通过自由选择密文来获取所希望的“密文—明文”对。选择文本攻击
密码的安全性 无条件安全(Unconditionally secure) 无论破译者有多少密文他也无法解出对应的明文即使他解出了他也无法验证结果的正确性。除一次一密钥都不是无条件安全 计算上安全(Computationally secure) 破译的代价超出信息本身的价值 破译的时间超出了信息的有效期
现代密码学基本原则 设计加密系统时总假定密码算法是可以公开的需要保密的是密钥。“一切秘密在于密钥之中而加密算法可以公开” 即Kerckhoff原则。
密码学的起源和发展三个阶段 1949年之前密码学是一门艺术 古典密码(classical cryptography) 隐写术(steganography)不同于加密。 如果把一封信锁在保险柜中把保险柜藏在纽约的某个地方…然后告诉你去看这封信。这并不是安全而是隐藏。 19491975年密码学成为科学 计算机使得基于复杂计算的密码成为可能 1949年Shannon的“The Communication Theory of Secret Systems” 1967年David Kahn的《The Codebreakers》 1971-73年IBM Watson实验室的Horst Feistel等的几篇技术报告 Smith,J.L.,The Design of Lucifer, A Cryptographic Device for Data Communication, 1971 Smith,J.L.,…,An Expremental Application of Cryptogrphy to a remotely Accessed Data System, Aug.1972 Feistel,H.,Cryptography and Computer Privacy, May 1973 数据的安全基于密钥而不是算法的保密 1976年以后密码学的新方向——公钥密码学 1976年Diffie Hellman的“New Directions in Cryptography”提出了不对称密钥密码 1977年Rivest,Shamir Adleman提出了RSA公钥算法 90年代逐步出现椭圆曲线等其他公钥算法 公钥密码使得发送端和接收端无密钥传输的保密通信成为可能 1977年DES正式成为标准80年代出现“过渡性”的“post DES”算法如IDEARCxCAST等 90年代对称密钥密码进一步成熟 RijndaelRC6 MARSTwofishSerpent等出现 2001年Rijndael成为DES的替代者 经典密码体制
代替密码(substitution cipher)
就是明文中的每一个字符被替换成密文中的另一个字符。接收者对密文做反向替换就可以恢复出明文。
简单代替密码(simple substitution cipher) 又称单字母密码(monoalphabetic cipher)明文的一个字符用相应的一个密文字符代替。
多字母密码(ployalphabetic cipher) 明文中的字符映射到密文空间的字符还依赖于它在上下文的位置。
恺撒密码(Caesar Cipher) 已知的最早也是最简单的方式的简单替代密码是朱里斯.恺撒所用的密码。恺撒密码是把字母表中的每个字母用该字母后面第3个字母进行代替。例如 明文meet me after the toga party 密文PHHW PH DIWHU WKH WRJD SDUWS 既然字母表是循环的因此Z后面的字母是A。能够通过列出所以可能性定义如下所示的变换
移位密码(Shift cipher) 对每个明文字母p恺撒加密可转化为移位密码其中加密算法 C E§ (pk) mod (26)其中k在125之间取值。 解密算法是p D© (Ck) mod (26) 如果已知密文是恺撒密码则使用强行攻击密码分析容易取得结果 直接对所有25个可能的密钥进行尝试。
模运算 ab mod n (a mod nb mod n) mod n ab mod n (a mod nb mod n) mod n a×b mod n (a mod n×b mod n) mod n
仿射密码算法 P C Z26 K (ab) ∈K Z26×Z26 加密 y eK(x) (axb) mod 26 要求唯一解的充要条件gcd(a,26)1 解密 dK (y) (y – b) / a mod 26 (y – b) a-1 mod 26 仿射密码算法例 K (73)则有7-1 mod 26 15 因此对任一明文x有ek (x) 7x 3 解密 dk (y) 15 * (y – 3) mod 26 15y – 19 mod 26 15 * (7x 3) – 19 105*x 45 – 19 105x x mod 26 仿射密码算法讨论 首先a 1时即是移位密码 (shift) 其次如果K随意选择可能会有问题 比如取K (85) 即y8x5 mod 26 明文a和n记x1 0 (a)x2 13 (n)则y1 5y2 5 (F) 不同的明文被加密成相同的密文这样在解密时就有歧义 那么如何避免这种歧义的出现 合理选取密钥 要求a和26互素即gcd (a, 26) 1 如果k (a,b)中a和26不互素则会有歧义若a和26有公因子gcd (a, 26)d1则对明文x10和x2 26/d的就相同密文 因为ax1b≡b mod 26而ax2ba×26/dba/d×26b≡b mod 26 即x1和x2被加密成相同的密文所以解密时会混淆 这里是否互素代表了什么性质呢 互素才有“逆” 逆元讨论在余数集合上进行 加法逆元如果a b≡0 mod n互为加法逆元 则Zn中都有0,0 1,n-1 2,n-2 … n/2,n/2 乘法逆元如果a×b≡1 mod n则a、b互为乘法逆元 如6×20≡1 mod 119 定义a的乘法逆元a-1a-1a ≡ 1 mod n显然可交换 由y (ax b) mod 26 得x dK (y) (y - b) / a a-1 (y - b) /a-1a a-1 (y - b) 即x a-1(ax b - b) a-1ax x mod 26x恢复了 乘法逆元如何构造 3×9 ≡ 1 mod 26 5×≡ 1 mod 26 并不是每个元素都有乘法逆元概括为解方程 ax≡1 mod n 如何求乘法逆元 一次同余方程ax ≡ b (mod m)这个方程有没有解相当于问有没有那样一个整数x使得对于某个整数y来说有ax myb 推论ax≡1 mod n有解 IFF (a, n) | 1即a、n互素
欧几里德算法(求最大公约数) 基于定理对于任何非负的整数a和非负的整数b gcd (ab) gcd (ba mod b) 例如 gcd (5522) gcd (2255 mod 22) gcd (2211) 11 扩展欧几里德算法(求乘法逆元)例 方式一 求7关于96的乘法逆元
QX1X2X3Y1Y2Y31096017130171-0*1310–1*13 -1396-7*13511-1350-1*1 -11- 1*(-13) 147-1*522-11421-2*01-13-2*14 -415-2*21由于Y31所以算法中止故乘法逆元为-41 mod 96 55即7×55 ≡1 mod 96方式二求22mod31的逆元iriqixiyi–––––-13110022011911-1242-233125-7当ri1则5x31-7x 22 1 mod 31则逆元为-7 31 24PS:第一行为被除数默认XiYi为 1 0 第二行为除数默认XiYi为 0 1 个人觉得方式二好理解一些任意的单表代替密码算法设PCZ26K是由26个符号01…25的所有可能置换组成。任意π∈K定义eπ(x) π(x)y 且dπ(y)π-1(y)x, π-1是π的逆置换。注密钥空间K很大k26! ≈ 4×1026破译者穷举搜索不行的(每微秒搜索加密一次需要6.4×1012年)。移位密码、乘数密码、仿射密码算法都是替换密码的特例。任意的单表代替密码算法可由统计的方式破译
简单代替密码(simple substitution cipher) 又称单字母密码(monoalphabetic cipher)明文的一个字符用相应的一个密文字符代替。
多字母密码(ployalphabetic cipher) 明文中的字符映射到密文空间的字符还依赖于它在上下文的位置。
多字母代替密码Playfair Playfair将明文中的双字母组合作为一个单元对待并将这些单元转换为密文的双字母组合。 5×5变换矩阵 I与J视为同一字符 加密规则按成对字母加密 相同对中的字母加分隔符(如x) balloon -ba lx lo on 同行取右边: he - EC 同列取下边: dm - MT 其他取交叉: kt MQOD TR
Hill密码 基于矩阵的线性变换由数学家Lester Hill于1929年研制 Z26上的线性变换 例xx1x2yy1y2 定义y111x13x2 mod 26y2 8x17x2 mod 26
Vigenére密码 是一种多表移位代替密码 设d为一固定的正整数d个移位代换π(π1,π2,…,πd) 由密钥序列K(k1,k2,…,kd)给定第itd个明文字母由表i决定即密钥ki决定 ek(xitd) (xitd ki) mod q ydk(yitd) (xitdki) mod q x 例子q26, xpolyalphabetic cipher, KRADIO 明文 x p o lya l phab e t i cc i pher 密钥 k R ADIO RADIO RADIO RADIO 密文 y GOOGO CPKTP NTLKQ ZPKMF
One-Time Pad一次一密 Joseph Mauborgne提出使用与消息一样长且无重复的随机密钥来加密消息密钥只对一个消息加解密之后弃之不用每条新消息都需要与其等长的新密钥这就是一次一密它是不可攻破的。 运算基于二进制数据而非字母 加密ci pi ⊕ ki, pi是明文第i个二进制位 ki是密钥第i个二进制位ci是密文第i个二进制位 ⊕是异或运算 密文是通过对明文和密钥的逐位异或而成的根据异或运算的性质解密过程为pi ci ⊕ ki, 给出任何长度与密文一样的明文都存在着一个密钥产生这个明文。如果用穷举法搜索所有可能的密钥会得到大量可读、清楚的明文但是无法确定哪个才是真正所需的因而这种密码不可破。 一次一密的两个限制 产生大规模随机密钥有实际困难 密钥的分配和保护无法保证
置换密码(permutation cipher)
又称换位密码(transposition cipher)明文的字母保持相同但顺序被打乱了。
斯巴达密码棒 公元前405年雅典和斯巴达之间的战争已进入尾声。斯巴达急需摸清波斯帝国的具体行动计划。斯巴达军队捕获了一名从波斯帝国回雅典送信的信使。可他身上除了一条布满希腊字母字样的普通腰带外什么也没有。 斯巴达统帅把注意力集中到了那条腰带上他反复琢磨那些乱码似的文字却怎么也解不出来。最后当他无意中把腰带呈螺旋形缠绕在手中的剑鞘上时原来腰带上那些杂乱无章的字母竟组成了一段文字。它告诉雅典波斯准备在斯巴达发起最后攻击时突然对斯巴达军队进行袭击。 栅栏技术 在这种密码中最简单的是栅栏技术在该密码中以对角线顺序写下明文并以行的顺序读出。 例如以深度为2的栅栏密码加密消息“meet me after the toga party”写出如下形式
mematrhtgpryetefeteoaat被加密的消息为mematrhtgpryetefeteoaat
置换密码 更为复杂的方式是以一个矩形逐行写出消息再逐列读出该消息。 该方法以行的顺序排列。列的阶则成为该算法的密钥。密钥包含3方面信息:行宽、列高、读出顺序 例 |key | 4| 3| 1| 2| 5| 6| 7| |–|–|–|–|–|–|–|–|–| |plaintext: |a | t | t | a| c| k| p| | | o| s | t| p | o | n| e| | | d| u | n| t| i| l| t| || w | o | a | m |x | y| z| ciphertext TTNAAPTMTSUOAODWCOIXPETZ
完全保留字符的统计信息 使用多轮加密可提高安全性
Rotor Machines转轮密码机 在现代密码系统出现之前转轮密码机是最为广泛使用的多重加密器尤其是在第二次世界大战中。 代表German Enigma, Japanese Purple 转轮机使用了一组相互独立的旋转圆筒可以通过电脉冲每个圆筒有26个输入和26个输出每个输入仅与一个输出相连一个圆筒就定义了一个单表代换。 每按下一个键圆筒旋转一个位置内部连线相应改变就定义了不同的单表代换密码经过26个明文字母圆筒回到初始状态就得到一个周期为26的多表代换密码。 3个圆筒的转轮机就有26317576个不同的代换字母表
Enigma的使用 发信人首先要调节三个转子的方向而这个转子的初始方向就是密钥是收发双方必须预先约定好的然后依次键入明文并把显示器上灯泡闪亮的字母依次记下来最后把记录下的闪亮字母按照顺序用正常的电报方式发送出去。 收信方收到电文后只要也使用一台恩尼格玛按照原来的约定把转子的方向调整到和发信方相同的初始方向上然后依次键入收到的密文显示器上自动闪亮的字母就是明文了。 加密的关键在于转子的初始方向。如果敌人收到了完整的密文还是可以通过不断试验转动转子方向来找到这个密匙特别是如果破译者同时使用许多台机器同时进行这项工作那么所需要的时间就会大大缩短。对付这样暴力破译法(即一个一个尝试所有可能性的方法)可以通过增加转子的数量来对付因为只要每增加一个转子就能使试验的数量乘上26倍 由于增加转子就会增加机器的体积和成本恩尼格玛密码机的三个转子是可以拆卸下来并互相交换位置这样一来初始方向的可能性一下就增加了六倍。假设三个转子的编号为1、2、3那么它们可以被放成123-132-213-231-312-321这六种不同位置。 恩尼格玛还有一道保障安全的关卡在键盘和第一个转子之间有块连接板。通过这块连接板可以用一根连线把某个字母和另一个字母连接起来这样这个字母的信号在进入转子之前就会转变为另一个字母的信号。这种连线最多可以有六根后期的恩尼格玛甚至达到十根连线这样就可以使6对字母的信号两两互换其他没有插上连线的字母则保持不变。当然连接板上的连线状况也是收发双方预先约定好的。 转子的初始方向、转子之间的相互位置以及连接板的连线状况组成了恩尼格玛三道牢不可破的保密防线其中连接板是一个简单替换密码系统而不停转动的转子虽然数量不多但却使整个系统变成了复式替换系统。 Enigma的破解 “暴力破译法”还原明文需要试验多少种可能性 三个转子不同的方向组成了26262617576种可能性 三个转子间不同的相对位置为6种可能性 连接板上两两交换6对字母的可能性则是异常庞大有100391791500种 于是一共有175766100391791500其结果大约为10,000,000,000,000,000即一亿亿种可能性
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91575.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!