古典加密的两种基本方法
- 格式:doc
- 大小:10.83 KB
- 文档页数:2
实验2 古典密码1.实验目的(1)了解古典密码中的基本加密运算。
(2)了解几种典型的古典密码体制。
(3)掌握古典密码的统计分析方法。
2.实验内容(1)古典密码体制①简单移位加密(单表代换)该加密方法中,加密时将明文中的每个字母向前推移K位。
经典恺撒密码加密变换就是这种变换,取k=3。
步骤1:打开CAP4软件,并加载实验一附带的“mw.txt”,如图2-1所示。
图2-1加载文件步骤2:采用恺撒加密方法手工加密“mw.txt”;打开CAP4菜单栏“Cipher”菜单项选择“simple shift”选项,并选择移位值“shift value”为3,加密步骤1中加载的文件,如图2-2所示。
图2-2 参数设置图2-3加密文件步骤3:比较二者的加密结果是否相同。
步骤4:点击CAP4软件中的“Simple analysis”下的“shift”键,观察恺撒加密法的可能密钥值,并分析其攻击的难度,如图2-4所示。
图2-4密钥分析②仿射密码加密(单表代换)在仿射密码加密(affine cipher)中,字母表中的字母被赋予一个数字,例如,a=0,b=1,c=2,…,z=25.仿射密码加密法的密钥为0~25之间的数字对(a,b)。
a与26的最大公约数必须为1,这就是说能整除a和26的数只有1.现在假设m为明文字母的数字,而c为密文字母的数字,那么,这两个数字之间有如下关系: c=(am+b)(mod 26)m=a-1(c-b)(mod 26)其中,(mod 26)的操作是:除以26,得其余数。
例如,选取密钥为(7,3)。
因为7与26互素,也就是只有公约数1,所以(7,3)可以作为仿射密码的加密钥。
将“hot”转换成数字7、14、19,利用仿射等式生成: c(H)=(7×7+3) mod 26=52 mod 26=0,即为字母“a“。
c(O)=(7×14+3) mod 26=101 mod 26=23,即为字母“x“.c(T)=(7×19+3) mod 26=136 mod 26=6,即为字母”g”. 这样,对于这个密钥,”hot”变成了“axg“.CAP4软件中实现仿射密码加密:步骤1:在CAP4软件中加载要加密地的明文“mw.txt“.步骤2:选取Cipher菜单下的Affine Cipher菜单项,弹出如下对话框,如图2-5所示。
介绍密码学的发展历史密码学的发展历程大致经历了三个阶段:古代加密方法、古典密码和近代密码。
1.古代加密方法(手工阶段)源于应用的无穷需求总是推动技术发明和进步的直接动力。
存于石刻或史书中的记载表明,许多古代文明,包括埃及人、希伯来人、亚述人都在实践中逐步发明了密码系统。
从某种意义上说,战争是科学技术进步的催化剂。
人类自从有了战争,就面临着通信安全的需求,密码技术源远流长。
古代加密方法大约起源于公元前440年出现在古希腊战争中的隐写术。
当时为了安全传送军事情报,奴隶主剃光奴隶的头发,将情报写在奴隶的光头上,待头发长长后将奴隶送到另一个部落,再次剃光头发,原有的信息复现出来,从而实现这两个部落之间的秘密通信。
公元前400年,斯巴达人就发明了“塞塔式密码”,即把长条纸螺旋形地斜绕在一个多棱棒上,将文字沿棒的水平方向从左到右书写,写一个字旋转一下,写完一行再另起一行从左到右写,直到写完。
解下来后,纸条上的文字消息杂乱无章、无法理解,这就是密文,但将它绕在另一个同等尺寸的棒子上后,就能看到原始的消息。
这是最早的密码技术。
我国古代也早有以藏头诗、藏尾诗、漏格诗及绘画等形式,将要表达的真正意思或“密语”隐藏在诗文或画卷中特定位置的记载,一般人只注意诗或画的表面意境,而不会去注意或很难发现隐藏其中的“话外之音”。
比如:我画蓝江水悠悠,爱晚亭枫叶愁。
秋月溶溶照佛寺,香烟袅袅绕轻楼2.古典密码(机械阶段)古典密码的加密方法一般是文字置换,使用手工或机械变换的方式实现。
古典密码系统已经初步体现出近代密码系统的雏形,它比古代加密方法复杂,其变化较小。
古典密码的代表密码体制主要有:单表代替密码、多表代替密码及转轮密码。
3.近代密码(计算机阶段)密码形成一门新的学科是在20世纪70年代,这是受计算机科学蓬勃发展刺激和推动的结果。
快速电子计算机和现代数学方法一方面为加密技术提供了新的概念和工具,另一方面也给破译者提供了有力武器。
古典密码简介从密码学发展历程来看,可分为古典密码(以字符为基本加密单元的密码)以及现代密码(以信息块为基本加密单元的密码)两类。
⽽古典密码有着悠久的历史,从古代⼀直到计算机出现以前,古典密码学主要有两⼤基本⽅法:①置换密码(⼜称易位密码):明⽂的字母保持相同,但顺序被打乱了。
②代替密码:就是将明⽂的字符替换为密⽂中的另⼀种的字符,接收者只要对密⽂做反向替换就可以恢复出明⽂。
古典密码是密码学的根源,虽然都⽐较简单⽽且容易破译,但研究古典密码的设计原理和分析⽅法对于理解、分析以及设计现代密码技术是⼗分有益滴^_^⼀.置换密码1.列置换密码(矩阵置换密码)明⽂:ming chen jiu dian fa dong fan gong密钥:yu lan hua去掉密钥重复字母:yulanh,得出距阵列数为6;将明⽂按⾏填充距阵。
得到密钥字母顺序: 653142;按列(依顺序)写出距阵中的字母。
密⽂:giffg hddn0 njngn cuaa0 inano meiog解密:加密的逆过程;2.周期置换密码 周期置换密码是将明⽂串P按固定长度m分组,然后对每组中的⼦串按1,2,...,m的某个置换重排位置从⽽得到密⽂C。
其中密钥σ包含分组长度信息。
解密时同样对密⽂C按长度m分组,并按σ的逆置换σ-1把每组⼦串重新排列位置从⽽得到明⽂P。
明⽂:State Key Laboratory of Networking and Switching加密密钥:σ=(15623)明⽂分为七组:(StateK)(eyLabo)(ratory)(ofNetw)(orking)(andSwi)(tching)加密变换:密钥⾥没有4,则第4位保持不变,然后对应的第1位换到第5位,第5位换到第6位,第6位换到第2位....密⽂:(aKttSe)(Loyaeb)(tyaorr)(Nwfeot)(kgrion)(dinSaw)(hgcitn)解密密钥:σ-1 = (13265)3.栅栏密码此密码⼀般适⽤于较短的密码,原理是字母的错位。
信息安全试题(一)一、单项选择题(每小题2分,共20分)1.信息安全的基本属性是___。
A. 保密性B.完整性C. 可用性、可控性、可靠性D. A,B,C都是2.假设使用一种加密算法,它的加密方法很简单:将每一个字母加5,即a加密成f。
这种算法的密钥就是5,那么它属于___。
A. 对称加密技术B. 分组密码技术C. 公钥加密技术D. 单向函数密码技术3.密码学的目的是___。
A. 研究数据加密B. 研究数据解密C. 研究数据保密D. 研究数据的加密与解密4.A方有一对密钥(KA公开,KA秘密),B方有一对密钥(KB公开,KB秘密),A方向B方发送数字签名M,对信息M加密为:M’= KB公开(KA秘密(M))。
B方收到密文的解密方案是___。
A. KB公开(KA秘密(M’)) B. KA公开(KA公开(M’))C. KA公开(KB秘密(M’)) D. KB秘密(KA秘密(M’))5.数字签名要预先使用单向Hash函数进行处理的原因是___。
A. 多一道加密工序使密文更难破译B. 提高密文的计算速度C. 缩小签名密文的长度,加快数字签名和验证签名的运算速度D. 保证密文能正确还原成明文6.身份鉴别是安全服务中的重要一环,以下关于身份鉴别叙述不正确的是__。
A. 身份鉴别是授权控制的基础B. 身份鉴别一般不用提供双向的认证C. 目前一般采用基于对称密钥加密或公开密钥加密的方法D. 数字签名机制是实现身份鉴别的重要机制7.防火墙用于将Internet和内部网络隔离___。
A. 是防止Internet火灾的硬件设施B. 是网络安全和信息安全的软件和硬件设施C. 是保护线路不受破坏的软件和硬件设施D. 是起抗电磁干扰作用的硬件设施二、填空题(每空1分,共20分)2.古典密码包括代替密码和置换密码两种,对称密码体制和非对称密码体制都属于现代密码体制。
传统的密码系统主要存在两个缺点:一是密钥管理与分配问题;二是认证问题。
一、实验目的通过本次实验,掌握古典加密算法的基本原理和实现方法,加深对古典加密算法的理解,提高编程能力。
二、实验内容本次实验主要涉及以下古典加密算法:1. 仿射密码2. 单表代替密码3. 维吉尼亚密码三、实验原理1. 仿射密码仿射密码是一种单字母替换密码,其加密原理为将明文进行0~25字母编码,按照加密公式计算出密文对应位置的字母编码,最后从密文的字母编码还原出密文对应位置的字母。
解密原理与加密原理相反。
2. 单表代替密码单表代替密码的加密原理为利用代替表,将明文中的每个字符映射到密文。
解密原理为对代替表进行反向查找,由密文映射回明文。
3. 维吉尼亚密码维吉尼亚密码的加密原理为通过加密方程Ci = (pi k(i mod m)) mod 26,由明文得到密文。
解密原理为解密过程是加密过程的逆过程,通过解密方程pi = (Ci k(i mod m)) mod 26。
四、实验步骤1. 仿射密码(1)编写加密函数encrypt,输入明文和密钥a、b,输出密文。
(2)编写解密函数decrypt,输入密文和密钥a、b,输出明文。
(3)测试加密和解密函数,验证其正确性。
2. 单表代替密码(1)编写加密函数subencrypt,输入明文和代替表,输出密文。
(2)编写解密函数subdecrypt,输入密文和代替表,输出明文。
(3)测试加密和解密函数,验证其正确性。
3. 维吉尼亚密码(1)编写加密函数vigenereencrypt,输入明文和密钥,输出密文。
(2)编写解密函数vigeneredecrypt,输入密文和密钥,输出明文。
(3)测试加密和解密函数,验证其正确性。
五、实验结果与分析1. 仿射密码通过编写encrypt和解密函数,成功实现了仿射密码的加密和解密过程。
实验结果表明,加密和解密函数运行正常,能够正确转换明文和密文。
2. 单表代替密码通过编写subencrypt和解密函数,成功实现了单表代替密码的加密和解密过程。
古典密码运用的两种基本技术古典密码是指使用传统的加密算法和技术进行加密和解密通信信息的密码系统。
它是密码学的起源,直到20世纪的中期被现代密码系统所取代。
古典密码运用了许多不同的加密技术,但其中有两种是最基本和常见的,分别是置换技术和替换技术。
1.置换技术置换技术是一种古老而普遍的加密方法,它通过改变字母或字符的顺序来加密原始文本。
常见的置换技术有以下几种:a. 凯撒密码(Caesar Cipher):凯撒密码是一种基本的字母置换密码,它通过对字母表进行循环左移或右移来加密和解密文本。
在凯撒密码中,每个字母都被替换为字母表中固定位置的字母,这个固定位置由一个偏移量决定。
b. 列置换密码(Columnar Transposition Cipher):列置换密码将明文分成若干列,然后按照一定的顺序将这些列重新排列,形成密文。
解密时,按照相同的顺序将密文的列排列,并按列逐个读取即可恢复原始文本。
c. 群置换密码(Permutation Cipher):群置换密码将明文中的字母分成若干个群,然后按照一定的顺序对这些群进行重新排列,形成密文。
解密时,按照相同的顺序将密文的群排列,并按群逐个读取即可恢复原始文本。
2.替换技术替换技术是古典密码学中另一种常见的加密技术,它通过将明文中的字母替换为其他字母或符号来加密文本。
a.单字母替换密码:单字母替换密码使用一个简单的替换表来将明文字母一对一地替换为其他字母或符号。
替换表可以是任何形式的映射,如字母表的逆置、移位替换等。
单字母替换密码易于破解,因为它们可以通过使用频率分析方法推断出英文字母的出现频率。
b. 多字母替换密码:多字母替换密码使用多个字母或字符的替换规则来加密文本。
常见的多字母替换密码包括维吉尼亚密码(Vigenère Cipher)和同音词替换密码(Homophonic Substitution Cipher)。
多字母替换密码相对于单字母替换密码更加安全,因为它们改变了字母的频率,并增加了破解的难度。
1.采用恺撒密码(K=3),消息是BCD,密文是DEF 。
2.根据著名的Kerckhoff原则,密码系统的保密性不依赖于算法的保密,而依赖于密钥。
3.对抗被动攻击采取的方法是认证。
4.公钥密码体制的出现,解决了单钥体制中的最难解决的两个问题,分别是密钥管理和数字签名。
5.AES的基本变换包括字节代换、行移位、列混淆、轮密钥加,其中字节代换是非线性变换。
6.考虑一个数据块长度为256位且密钥长度为128位的AES加密算法。
请问该密码算法的一个数据块中字的个数Nb是8 ,密钥中字的个数Nk是6 。
7.在使用Diffie-Helllman密钥交换算法时,如果通信的双方没有经过身份认证,那么攻击者就会利用这一点进行中间人攻击。
1.下列攻击形式,不属于主动攻击的是()A.伪造 B.篡改 C.中断 D.监听2.RSA算法可用于数字签名,现A拥有一对密钥PK A和SK A,B拥有一对密钥PK B和SK B,如果A向B发送消息,A对发送的消息进行签名,那么用的密钥是()A. PK AB. SK AC. PK BD. SK B3.下列密码算法属于分组密码的是()A. RabinB. RSAC.AESD. 背包密码4.如果单向杂凑函数H(X)满足这样的性质:已知x,找出y(),使得H(x)=H(y)在计算上是不可行的,则称其为()。
A.弱单向杂凑函数B.强单向杂凑函数5.当需要对消息同时进行签名和保密时,为例防止攻击者伪造签名,则签名和加密的顺序应当是()。
A.先签名再加密B.先加密再签名C.与顺序无关1.D2.B3.C4.A5.D一.选择题1、关于密码学的讨论中,下列( D )观点是不正确的。
A、密码学是研究与信息安全相关的方面如机密性、完整性、实体鉴别、抗否认等的综合技术B、密码学的两大分支是密码编码学和密码分析学C、密码并不是提供安全的单一的手段,而是一组技术D、密码学中存在一次一密的密码体制,它是绝对安全的2、在以下古典密码体制中,属于置换密码的是( B)。
密码技术专题(二)—古典密码体制∙1、密码体制的概念o明文信源o密文o密钥与加密运算o密码体制∙2、古典密码体制的发展o古典加密方法o代替密码o换位密码o转轮密码∙3、几种典型的古典密码体制o CAESAR体制o双字的Playfair体制o维吉尼亚体制o Hill体制我们已经知道,一个密码体制由明文信源、密文、密钥与加密运算这四个基本要素构成,下面我们将进一步给出它们的数学模型。
1、明文信源直观地讲,明文信源就是明文字母表或者明文字母。
比如所有的英文字母、全部的中文字符就是典型的明文字母表。
准确一点,明文信源还应当包含明文字母的概率分布。
如果用X表示明文字母表,则它的元素x∈X则就是明文字母。
在明文字母表中,不同的明文字母出现的频率往往是不同的,比如在26个英文字母中,一般来说字母“e”的频率最高;而在汉字中,可能是“的”字频率最高。
所以,一个明文信源记为S=[X,p(x)],其中X为明文字母表,p(x)为明文字母x∈X 出现的概率,而且p(x)满足如下条件:对任何x∈X,p(x)≥0,且∑p(x)=1。
2、密文密文由密文字母表Y和密文字母y∈Y组成,密文字母表一般是指密文可能使用的全部字母的集合,而y∈Y是它的元素。
密文字母表可以与明文字母表相同,也可以不同。
3、密钥与加密运算密钥用来从密码体制的一组加密运算中选择一个加密运算(或者称为加密步),密钥允许你按照以前制定的规则改变加密,比如每天,或每份报之后,或者每个字符之后。
通常,密钥的组织和编排须利于它们允许通过简单的规则产生单独的加密步。
加密方法的组合复杂度取决于在此方法下密钥的数量。
如果用K表示密钥空间,也就是选择加密步的参数集合,k∈K则称为一个密钥。
加密步就是明文字母表X到密文字母表Y的一个映射:E:X→Y,对每个x∈X。
由于加密步并不是单一的,而是一族运算,因此我们就可以记为Ek=Ek(x),其中x∈X,k∈K。
除特殊的编码方法外,如多名码或多音码,对于每个k∈K,Ek(x)都是X到Y的1-1映射。
加密方式的历史演变和发展
加密方式的历史演变和发展可以分为以下几个阶段:
1. 古代加密方法:源于公元前440年的古希腊,目的是将秘密嵌入于公开的内容,如:隐形墨水、图画、文章、特殊物品等。
其主要是依赖于技巧与加密方法的保密来实现信息加密。
2. 古典密码:出现在公元前54年,加密方法大多是按照字母表向后移动n 位等来实现。
虽然这种方法已经脱离了实物,向算法发展,但是其还是部分依赖于算法本身的保密来实现信息的加密。
3. 近代密码(1860s):此时数学开始主导密码学,同时已经认识到真正保证信息加密安全的不是加密算法本身,而是秘钥。
即使加密算法本身外泄,有秘钥的存在,密码也不会失效。
4. 现代密码(1950s):现代密码基于计算机科学的发展,同时极度依赖于数学的发展。
此外,随着科技的发展,加密技术也从简单的字母替换扩展到了更复杂的算法和协议。
现在常用的加密技术包括对称加密、非对称加密和哈希算法等。
这些技术广泛应用于金融、通信、互联网安全等领域,为保障个人隐私和数据安全提供了重要的支持。
以上内容仅供参考,建议查阅专业书籍或文献获取更全面和准确的信息。
古代加密方式
古代的加密方式有很多种,以下列举几种比较常见的方式:
1. 凯撒密码:又称移位密码,是一种最早出现的加密方式。
其原理是将明文中的每个字母按照一定的偏移量进行替换,达到隐藏信息的目的。
例如,将每个字母向后移动三位,A就变成了D,B变成了E,以此类推。
2. 简易替换密码:也称为单字母替换密码,是一种通过将明文字母替换为其他字母来加密的方式。
例如,将明文中的每个字母替换为字母表中的另一个字母,形成密文。
由于规则简单,被认为是一种相对较弱的加密方式。
3. 维吉尼亚密码:是一种基于多个凯撒密码的组合加密方式。
它引入了密钥的概念,密钥决定了每个字母的偏移量。
通过使用不同的密钥,可以生成不同的凯撒密码,增加了加密的复杂度。
4. 图形密码:在古代,人们还使用了图形作为密码的一种方式。
例如,在埃及墓穴中发现的壁画中,人们使用了各种符号和图案作为密码来保护珍贵的物品和信息。
需要注意的是,古代的加密方式相对简单,随着科技的发展,加密算法变得更加复杂和安全。
现代的加密方式采用了更强大的数学算法和计算机技术,能够提供更高的安全性和保密性。
一.选择题1、关于密码学的讨论中,下列(D )观点是不正确的。
A、密码学是研究与信息安全相关的方面如机密性、完整性、实体鉴别、抗否认等的综合技术B、密码学的两大分支是密码编码学和密码分析学C、密码并不是提供安全的单一的手段,而是一组技术D、密码学中存在一次一密的密码体制,它是绝对安全的2、在以下古典密码体制中,属于置换密码的是(B)。
A、移位密码B、倒序密码C、仿射密码D、PlayFair密码3、一个完整的密码体制,不包括以下( C )要素。
A、明文空间B、密文空间C、数字签名D、密钥空间4、关于DES算法,除了(C )以外,下列描述DES算法子密钥产生过程是正确的。
A、首先将DES 算法所接受的输入密钥K(64 位),去除奇偶校验位,得到56位密钥(即经过PC-1置换,得到56位密钥)B、在计算第i轮迭代所需的子密钥时,首先进行循环左移,循环左移的位数取决于i的值,这些经过循环移位的值作为下一次循环左移的输入C、在计算第i轮迭代所需的子密钥时,首先进行循环左移,每轮循环左移的位数都相同,这些经过循环移位的值作为下一次循环左移的输入D、然后将每轮循环移位后的值经PC-2置换,所得到的置换结果即为第i轮所需的子密钥Ki5、2000年10月2日,NIST正式宣布将(B )候选算法作为高级数据加密标准,该算法是由两位比利时密码学者提出的。
A、MARSB、RijndaelC、TwofishD、Bluefish*6、根据所依据的数学难题,除了(A )以外,公钥密码体制可以分为以下几类。
A、模幂运算问题B、大整数因子分解问题C、离散对数问题D、椭圆曲线离散对数问题7、密码学中的杂凑函数(Hash函数)按照是否使用密钥分为两大类:带密钥的杂凑函数和不带密钥的杂凑函数,下面( C )是带密钥的杂凑函数。
A、MD4B、SHA-1C、whirlpoolD、MD58、完整的数字签名过程(包括从发送方发送消息到接收方安全的接收到消息)包括(C )和验证过程。
一.选择题11、关于密码学的讨论中,下列(D )观点是不正确的。
A、密码学是研究与信息安全相关的方面如机密性、完整性、实体鉴别、抗否认等的综合技术B、密码学的两大分支是密码编码学和密码分析学C、密码并不是提供安全的单一的手段,而是一组技术 D密码学中存在一次一密的密码体制,它是绝对安全的2、在以下古典密码体制中,属于置换密码的是(B)。
A、移位密码 B倒序密码 C、仿射密码 D、PlayFair密码3、一个完整的密码体制,不包括以下(C )要素。
A、明文空间 B、密文空间 C、数字签名 D、密钥空间4、关于DES算法,除了(C )以外,下列描述DES算法子密钥产生过程是正确的。
A、首先将DES算法所接受的输入密钥K(64 位),去除奇偶校验位,得到56位密钥(即经过PC-1置换,得到56位密钥)B、在计算第i轮迭代所需的子密钥时,首先进行循环左移,循环左移的位数取决于i的值,这些经过循环移位的值作为下一次循环左移的输入C、在计算第i轮迭代所需的子密钥时,首先进行循环左移,每轮循环左移的位数都相同,这些经过循环移位的值作为下一次循环左移的输入D、然后将每轮循环移位后的值经PC-2置换,所得到的置换结果即为第i轮所需的子密钥Ki5、2000年10月2日,NIST正式宣布将(B )候选算法作为高级数据加密标准,该算法是由两位比利时密码学者提出的。
A、MARS B、Rijndael C、Twofish D、Bluefish6、根据所依据的数学难题,除了(A )以外,公钥密码体制可以分为以下几类。
A、模幂运算问题B、大整数因子分解问题C、离散对数问题D、椭圆曲线离散对数问题7、密码学中的杂凑函数(Hash函数)按照是否使用密钥分为两大类:带密钥的杂凑函数和不带密钥的杂凑函数,下面(C )是带密钥的杂凑函数。
A、MD4 B、SHA-1 C、whirlpool D、MD58、完整的数字签名过程(包括从发送方发送消息到接收方安全的接收到消息)包括(C )和验证过程。
古典密码对称密码公钥密码
古典密码是指在计算机技术出现之前使用的一种加密方法,通
常是基于替换或移位的原理。
古典密码包括凯撒密码、培根密码、
维吉尼亚密码等,它们的特点是加密和解密使用相同的密钥,安全
性相对较低。
对称密码是一种加密方法,加密和解密使用相同的密钥。
常见
的对称密码算法包括DES、AES、IDEA等。
对称密码的优点是加密解
密速度快,缺点是密钥管理困难,需要确保密钥的安全传输和存储。
公钥密码(也称非对称密码)是一种使用不同密钥进行加密和
解密的加密方法。
公钥密码包括RSA、DSA、ECC等算法。
公钥密码
的优点是密钥管理方便,不需要安全地传输密钥,缺点是加密解密
速度较慢。
从安全性来看,公钥密码相对于对称密码更安全,因为它不需
要在通信过程中传输密钥,而对称密码需要确保密钥的安全传输。
但是公钥密码的加密解密速度相对较慢,所以在实际应用中,通常
会将公钥密码与对称密码结合使用,以兼顾安全性和效率。
另外,对称密码和公钥密码的组合也被广泛应用在数字签名、SSL/TLS协议等安全通信领域,以确保通信的安全性和完整性。
总
的来说,古典密码、对称密码和公钥密码都是加密领域的重要概念,它们在信息安全领域都有着重要的应用和意义。
古典密码-凯撒密码原理以及代码⽬录古典密码--->凯撒密码⼀⼂凯撒密码1.1 什么是凯撒密码凯撒密码,想必很多⼈听说过.没听说过的简单说⼀下.相传在很久很久以前,有⼀位皇帝,叫做尤利乌斯 · 凯撒为了缩短名字,我们称为凯撒⼤帝.是在公元前100年左右单⾝与古罗马,是⼀名著名的军事统帅.由它发明的密码.叫做凯撒密码1.2 凯撒密码的加密原理凯撒密码其实很简单. 需要我们理解平移概念 ,就是将⼀段数据平移多少位, 最后解密的时候进⾏反平移即可得出.以字母 a-z来说我们将a 进⾏平移3位得出密⽂如下图:将a 平移三位,得出 D b则是E 以此类推. 如果到达末尾,则从头开始. 例如Z 是字母的末尾.平移三位则是 C那么由此得出公式密⽂ = 函数(明⽂ + 平移位数(key) Mod 26;明⽂ = 函数(密⽂ - 平移位数(key) mod 26;其中密⽂明⽂函数平移位数等都是有英⽂含义的.所以我们很多时候都能看到如下写法c = E(p + k) mod 26p = D(c - k) mod 26C = Ciphertext 英⽂意思是密码密⽂的意思p = plainttext 英⽂意思是明⽂的意思,也就是未加密之前的数据E = encrypt 英⽂的意思是加密的意思. 放在我们编程中则可以理解为是⼀个⽅法.专门⽤于加密的⽅法D = Decrypt 英⽂意思是解密的意思同加密⼀样k = key 英⽂意思是钥匙的意思. 也就是解密的钥匙或者加密的钥匙mod 数学上取余数的意思 10 % 2 == 0 取得余数为0综上所述,⼤概是了解以下基本的术语密⽂ = 加密函数(明⽂ + key) % 26明⽂ = 解密函数(密⽂ - key) % 261.3 凯撒密码的破解其实凯撒密码是⾮常好破解的. 假设你不知道明⽂.只知道密⽂.那么总是可以尝试出来的. 总共是26次.依次破解. 我们常听的暴⼒破解就是这个意思. 也称为穷举那怎么知道凯撒密码破解出来是否正确. 是这样的. 明⽂⼀般都是有意义的.当你⽤密⽂破解的时候会出现很多⽆意义的数据.⽽有些数据是很有意义的.所以我可推断以下.假设不是.那么总过26组破解密码.⼀个⼀个尝试也能知道的.⼆⼂凯撒密码代码编写2.1 C/C++代码,编写加解密函数既然我们知道了公式c = e(p + k) % 26那么我们根据公式来即可代码void Entrypt(IN char* PlaintText, IN int PlaintTextSize, OUT char* CipText){//加密PlaintTextfor (auto i = 0; i < PlaintTextSize; i++){/*1.⾸先字符 - 字符'a'得出下标.2.下标 + 则是代表假⾯3.如果是加密,怎么下标不能超过26. 所以 % 264.计算完的结果加上'a' 就等于实际加密的密⽂了*/char ch = (PlaintText[i] - 'a' + 3); //得出下标char ch1 = ch % 26 + 'a'; //得出实际密⽂//接受的密⽂数组CipText[i] = ch1;}return;}//解密数据,与加密相反void Detrypt(IN char* CipText, IN int CipTextSize, OUT char* PlaintText){//加密PlaintTextfor (auto i = 0; i < CipTextSize; i++){/*1.⾸先字符 - 字符'a'得出下标.2.下标 - 则是代表解密3.如果是- 则会出现复数情况, 如 a的下标为0 a - 3 = 负数. 那么需要加26进⾏调整. 调整之后是绝对不会超过26的4.虽然不会超过.但是也要 % 26.因为如果是正数的情况,如果你加26那么还是会超过26*/char ch = (CipText[i] - 'a' - 3); //得出下标char ch1 = (ch + 26); //负数调整,char ch3 = ch1 % 26 + 'a'; //正数 % 26得出下标,下标 + 'a'//接受的密⽂数组PlaintText[i] = ch3;}return;}int main(){//c = entrypt(p + k) % 26//char szBuffer[] = "ibinary";char PlaintText[] = "ibinary";char CipText[8] = { 0 };char PlanitText1[8] = { 0 };Entrypt(PlaintText, strlen(PlaintText), CipText);printf("加密明⽂后的密⽂ = %s \r\n", CipText);Detrypt(CipText, strlen(CipText), PlanitText1);printf("解密密⽂后的明⽂ = %s \r\n", PlanitText1);system("pause");return 0;}。
密码学简答题By 风婴1. 阐述古典密码学中的两种主要技术以及公钥密码学思想。
答:代换( Substitution )和置换( Permutation )是古典密码学中两种主要的技术。
代替技术就是将明文中每一个字符替换成另外一个字符从而形成密文,置换技术则是通过重新排列明文消息中元素的位置而不改变元素本身从而形成密文。
公钥密码的思想:密码系统中的加密密钥和解密密钥是可以不同的。
由于并不能容易的通过加密密钥和密文来求得解密密钥或明文,所以可以公开这种系统的加密算法和加密密钥,用户则只要保管好自己的解密密钥。
2. 简述密码分析者对密码系统的四种攻击。
答:密码分析者对密码系统的常见的攻击方法有:1) 唯密文攻击:攻击者有一些消息的密文,这些密文都是采用同一种加密方法生成的。
2) 已知明文攻击:攻击者知道一些消息的明文和相应的密文。
3) 选择明文攻击:攻击者不仅知道一些消息的明文和相应的密文,而且也可以选择被加密的明文。
4) 选择密文攻击:攻击者能选择不同的被加密的密文,并得到对应的明文。
3. 信息隐藏技术与数据加密技术有何区别?答:信息隐藏不同于传统的密码学技术,它主要研究如何将某一机密信息秘密隐藏于另一共开的信息中,通过公开信息的传输来传递机密信息。
而数据加密技术主要研究如何将机密信息进行特殊的编码,以形成不可识别的密文形式再进行传递。
对加密通信而言,攻击者可通过截取密文,并对其进行破译,或将密文进行破坏后再发送,从而影响机密信息的安全。
但对信息隐藏而言,攻击者难以从公开信息中判断机密信息是否存在,当然他们就不易对秘密信息进行窃取、修改和破坏,从而保证了机密信息在网络上传输的安全性。
为了增加安全性,人们通常将加密和信息隐藏这两种技术结合起来使用。
4. 试说明使用3DES而不使用2DES的原因。
答:双重DES可能遭到中途相遇攻击。
该攻击不依赖于DES的任何特性,可用于攻击任何分组密码。
具体攻击如下:假设 C = E K2[E K1[M]] ,则有X = E K1[M] = D K2[C]首先用256个所有可能的密钥K1对M加密,将加密结果存入一表并对表按X排序。
古典加密的两种基本方法
在密码学中,加密是将原始数据转换为未知形式的过程,以隐藏数据的含义和信息。
古典加密是指用于加密数据的传统方法,有两种基本方法:替换密码和置换密码。
1. 替换密码
替换密码是一种将字符或字母替换为其他字符或字母的加密方法。
最简单的替换密码是凯撒密码。
凯撒密码是一种最古老的加密技术,它将字母按照一定的位移量进行替换。
例如,当位移量为3时,A将被替换为D,B将被替换为E等等。
这种方法非常容易被破解,因为只需要尝试每一种可能的位移量,就可以找到正确的解密方法。
更加复杂的替换密码有多种方法,例如多表替换密码、单表替换密码、维吉尼亚密码等等。
这些方法通过不同的替换规则和密钥来增加加密强度。
2. 置换密码
置换密码是一种将原始数据重新排列的加密方法。
最简单的置换密码是栅栏密码。
栅栏密码将原始数据写成一列,然后将这一列按照一定的间隔进行划分,最后按照不同的顺序排列。
例如,当间隔为3时,
原始数据'HELLO WORLD'可以被排列成'HLOOLRWE LD'。
这种方法也容易被破解,因为只需要尝试不同的间隔和排列方式即可。
更加复杂的置换密码有多种方法,例如双重置换密码、多重置换密码、列置换密码等等。
这些方法通过不同的置换规则和密钥来增加加密强度。
总之,古典加密虽然有很多弱点,但是这些基本方法为现代加密技术的发展奠定了基础,也有助于我们更好地理解密码学的基本概念。