实验一-古典密码—单表代换

合集下载

实验二 古典密码

实验二 古典密码

实验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所示。

密码学-古典密码

密码学-古典密码
每组中的两个字母H不ill 同体。制
P 中同行, 为紧靠各自右端的字母 P 中同列, 为紧靠各自下方的字母
密文 非同行同列, 为确定矩阵的对角字母
2. Vigenere体制
设明文m = m1m2…mn,k = k1k2…kn,则密文 c = Ek(m) = c1c2…cn,
其中ci = (mi + ki) mod 26, i = 1, 2, …, n。 当密钥的长度比明文短时,密钥可以周期性地
4. Vernam体制
Vernam密码在加密前首先将明文编码为(0, 1)字符串。
设明文m = m1m2…mn,k = k1k2…kn,其中mi , ki∈GF(2) , 则密文c = c1c2…cn ,其中
ci = mi⊕ki , i ≥1。
在用Vernam密码对明文加密时,如果对不同的明文使 用不同的密钥,则这时Vernam密码为“一次一密”(onetime pad)密码,在理论上是不可破译的。如果存在不 同的明文使用相同的密钥,则这时Vernam密码就比较 容易被破译。
例2.5(P16)
2.3.2 多表古典密码的统计分析
在多表古典密码的分析中,首先要确定密钥字的长度, 也就是要首先确定所使用的加密表的个数,然后再分析确 定具体的密钥。
确定密钥字长的常用方法有:
设设 设
对任意
对任意
密文
对任意
密其密文中文其的中乘的法加都法是都模是q 模乘q法加. 法显.然显, 然简,单简乘单法
密加码法的密密码钥的量密为钥量为
其中的加法和乘法都是模q 加法和乘法.
显然, 简单仿射密码的密钥量为
2. 2 几种典型的古典密码体制
几种典型的单表 古典密码体制

古典替换密码

古典替换密码

♦ OK!
♦ 加密算法: ♦ Ek: i -> i + k (mod 26)
♦ 解密算法: ♦ Dk: i -> i - k (mod 26)
1.古典加密技术
♦ 两个基本组成部分:
替换与置换 (substitution and transposition)
3.密码分析(Cryptanalysis of Caesar ciphers)
Plaintext: IFWEWISHTOREPLACELETTERS Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA
9。打乱的密码代换的ຫໍສະໝຸດ 全性♦ 密钥总数:26! ♦ 如此多的密钥,可以认为安全吗? ♦ !!!NO!!! ♦ 仍然有语言统计规律 ♦ 需要其它方法隐藏这种规律性 ♦
♦ 熵(Entropy,定义为事件集X中事件出现 的信息的统计平均值
∑ H (X ) =
i
1 p(xi) loga p(xi)
≥0
它表示X中出现一个事件平均给出的信息量,
或事件的平均不确定性
Exercises
♦ encrypt and then decrypt by hand, the text below using a general monoalphabetic cipher with a key of "NIFTY":
equivalents
11. 一般单码替换密码 举例
♦ 给定密钥字 "STARWARS" ♦ 去掉重复字母得到 "STARW" ♦ 填写剩余字母:
STARW BCDEF GHIJK LMNOP QUVXY Z ♦ 按列读取字母得到密文 ♦ Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ Cipher: SBGLQZTCHMUADINVREJOXWFKPY ♦ 可以用这个密钥加密、解密 ♦ 例如 Plaintext: I KNOW ONLY THAT I KNOW NOTHING ♦ Ciphertext: H UINF NIAP OCSO H UINF INOCHIT ♦

第3章 古典密码学

第3章 古典密码学
表2.3 密钥为cipher的维吉尼亚密码加密过程
密文为:cxtsmvfkgftkqanzxvo。 解密使用相同的密钥,但用模26的减法代替模26加法,这里 不再赘述。
17
多表代换密码
3.一次一密密码(One Time Pad) 若替代码的密钥是一个随机且不重复的字符序列,这种密码 则称为一次一密密码,因为它的密钥只使用一次。 该密码体制是美国电话电报公司的Gilbert Vernam在 1917年为电报通信设计的一种密码,所以又称为Vernam 密码。后来被陆军情报军官Joseph Mauborgne改进。 Vernam密码在对明文加密前首先将明文编码为(0,1)序 列,然后再进行加密变换。 设m=(m1 m2 m3 … mn)为明文,k=(k1 k2 k3 … kn )为密 钥,其中mi,ki ∈(0,1), i≥1, 则加密和解密变换为,这里为 模2加法(或异或运算): c=(c1 c2 c3 … cn) , 其中ci = mi ki , i≥1
• 将Caesar密码一般化,取任意的整数k作为密钥:
加密变换: c=E(k,p)=(p + k) (mod 26) 解密变换: p=D(k,c)=(c – k) (mod 26)
9
一般单表; • 一般单表替代密码的原理是以26个英文字母集合上 的一个置换π为密钥构造代换表,对明文消息中的每 个字母依次进行变换。 • 例:设置换π的对应关系如下: abcdefghi jklmnopqrstuvwxyz qwertyuiopasdf ghjklzx cvbnm 试用单表替代密码以π为密钥对明文消息message 加密,然后写出逆置换 ,并对密文解密。 解:密文消息为: π(m)π(e)π(s)π(s)π(a)π(g)π(e)=dtllqut

chap2-古典密码

chap2-古典密码

密钥 密文
密钥
明文


加密算法
明文 解密算法
加密密钥(Encryption Key) 解密密钥(Decryption Key)
基本概念
需要密钥的加密算法,记为:C=E(K,P),即密文消息同时
依赖于初始明文和密钥的值。实际上,E是一组加密算法, 而密钥则用于选择其中特定的一个算法。
加密与解密的密钥相同,即:P=D(K,E(K,P)) 加密与解密的密钥不同,则:P=D(K ,E(K ,P))
除了一次一密的方案外,没有无条件安全的算法 安全性体现在任意一条:
• 破译的成本超过加密信息的价值 • 破译的时间超过该信息有用的生命周期
密钥搜索所需平均时间
目录
1.
2. 3.
密码学的起源、发展和现状
密码学基本概念 典型几种古典密码技术
经典加密技术
替代 置换 隐写术

古典密码:替代(代替)
2018/6/26
41/72
古典密码:置换
改变明文内容元素的相对位置,保持内容的表现形式不 变 通常称为transposition或者permutation密码 通过重新安排消息字母的位置来隐藏明文信息,而不是 用其他字母来代换明文字母 这种方法是很容易破译的,因为密文拥有与明文一样的 字母频率统计特性
(4)任意k∈ K,有一个加密算法 ek E 和相应的解密 算法 d k D ,使得 ek : P C 和 dk : C P 分别为加 密解密函数, 满足dk(ek(x))=x ,这里 x ∈P。
密码编码系统分类
保密内容 密钥数量 明文处理的方式
保密内容
受限制的(restricted)算法

古典密码:-Playfair-Cipher

古典密码:-Playfair-Cipher
較Monoalphabetic(单表代换)加密更為 安全,第一次世界大戰中被採用。
不過密文中仍存在明文的結構,只要搜集 到字元数超过可分析的密文,仍有可能以 統計方法進行分析,進而破解密文。
30
Vigenère Cipher
20
10
Random Polyalphabetic Cipher
0 2 4 6 8 10 12 14 16 18 20 22 24 26 Frequency Ranked Letters
密文的字母頻率越一致,越難以統計分析破解。
2021/3/31
6
6
感谢您的阅读收藏,谢谢!
又称为Conventional / Private-key / Single-key Encryption
2.安全1管.共道用(S一ec把urkeeyChannel)
key
key
K 3.安全的加4解.以密數算學法式、子必表須示假設公開的
K
M
M
明文 Plaintext
1.共用密法的安全性
明文 Plaintext
mona r chybd e f g i/j k l pqst uvwx z
解密演算法 Decryption Algorithm
2021/3/31
密文 Ciphertext
mona r chybd e f g i/j k l pqst uvwx z
代换加密: Playfair Cipher
2021/3/31
1
Playerfair Cipher教学内容
• 对称式加密(Symmetric Encryption) • Playfair加密法(Playfair Cipher) • Playfair加密法的安全性

第三讲-古典密码

第三讲-古典密码

Playfair密码
以前面的5×5变换矩阵(cipher)为例 C I P H E R A B D F G K L M N O Q S T U V W X Y Z (1)balloon ba lx lo on db sp gs ug (2)book bo ok rs qg (3)fill fi lx lx ae sp sp
Playfair密码分析
Playfair有26X26=676种字母对组合 字符出现几率一定程度上被均匀化 基于字母频率的攻击比较困难 依然保留了相当的结构信息

仿射密码
用形如 e(x)=ax+b (mod 26),a∈Z26,b∈Z26 的加密函数的加密算法称为仿射密码,这类加密 函数称为仿射函数。(a=1时为移位密码)
替 换 表
维吉尼亚密码(1858)
例子:q=26,x=polyalphabetic cipher, K=RADIO
密钥字为RADIO,则相应密钥为(17,0,3,8,14)
明文 密钥 密文
x=p olyal p ha betic cipher k=R ADIOR A DI ORADI ORADIO y=GOOJOCPKTP NTLKQZPKMF
古典密码
基于字符的密码 替换(substitution cipher):就是明文 中的每一个字符被替换成密文中的另一个 字符,接收者对密文做反向替换就可以恢复 出明文 置换(permutation cipher):又称换位密码 (transposition cipher):明文的字母保 持相同,但顺序被打乱了
对明文的多个字母加密 使用多表替换

多表替换密码
多表替换密码:以一系列(两个以上)替换表 依此对明文消息的字母进行替换的方法 非周期多表替换密码:替换表是非周期的无 限序列,密钥和明文长度相同 周期多表替换密码:替换表个数有限,重复 使用。

单表代替的缺点

单表代替的缺点

置移动的密码。
换句话说,移位密码就是对明文字符的位置 进行重新排列的一种密码。移位密码有时也称为 易位密码、置换密码、换位密码等。
4
例1 明文:明晨五时发起总攻
移位规则:
密文字符位置
明文字符位置
1
5
2
4
3
6
4
8
5
7
6
3
7
2
8
1
该移位规则的含义是:第1个密文字符是第5个明文字符、 第2个密文字符是第4个明文字符,…。由该移位规则加密得到 的密文为:
10
在拼音文字国家,其早期大多采用代替密码,而现
代机器密码也大量采用代替密码法。
广义地讲,由于所有的加密算法都是密文对明文的
代替,因而都是代替密码。
代替密码可分为单表代替、多表代替。 其中在多表代替密码中,有一类在理论上是可以证
明能够做到不可破译的。
11
1、单表代替
在单表代替中, 始终使用一个代替表, 即代替表是固定的, 与被加密的明文字符组的序号无关。 设 是所有可能的明文字符组, 是对应的密文字符组,
符的统计规律之中.形态变但位置不变
24
英文字母使用频率
25
26
英语字母中常见的组合
27
单表代替的上述信息泄漏,直接导致了对单表代
替密码的破译方法。
在唯密文攻击条件下,由于敌手可以掌握明文字
符或明文字符组的统计规律,因而可利用不同的 明文字符或明文字符组的出现频次的不同,利用 密文字符或密文字符组的出现频次推断出代替关
单表代替的缺点:明文字符相同,则密文字符也相同 代替密码的代替规则就是其密钥。在例4中,由于10个数 字的全排列共有10!,因而由十个数字形成的单表代替的 总数是10!。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一古典密码—单表代换
【实验目的】
理解代换密码的基本思想
理解移位密码、仿射密码等算法的原理
掌握上述各个算法的输入输出格式和密钥格式
掌握上述各个算法的加解密过程和实现方法
【实验原理】
代换密码体制的一般定义为M=C=K=Z26,其中M为明文空间、C为密文空间、K为密钥
空间、Z26为26个整数(对应26个英文字母)组成的空间;要求26个字母与模26的剩余类集
合{0,1,2,…,25}建立一一对应的关系。

一、移位密码
移位密码的加密实现上就是将26个英文字母向后循环移动k位,其加解密可分别表示为:
c=E k(m)=m+k(mod 26)
m=D k(c)=c-k(mod 26)
其中,m、c、k是满足0≤m,c,k≤25的整数。

二、乘法密码
乘法密码是通过对字母等间隔抽取以获得密文,其加解密可分别表示如下:
-1
c=mk(mod 26)
m=ck(mod26)
其中,m、c、k是满足0≤m,c,k≤25,且gcd(k,26)=1的整数。

三、仿射密码
仿射密码的加密是一个线性变换,将移位密码和乘法密码相结合,其加解密可分别表示为:
C=E a,b(m)=am+b(mod 26)
M=D a,b(C)=a-1(c-b)(mod 26)
其中:a、b是密钥,是满足0≤a,b≤25和gcd(a,26)=1的整数,即a和26互素;a-1的逆元,即a•a-1≡1 mod 2
【实验环境】
ISES客户端
Microsoft CLR Debugger 2005或其它调试器
【实验内容】
通过运算器工具实现移位密码、乘法密码、仿射密码
对各个算法的加解密进行扩展实验和算法跟踪
【实验步骤】
此处以移位密码为例说明,乘法密码、仿射密码可参照完成。

一、加解密计算
(一) 加密
(1) 参照实验原理,在明文栏输入所要加密的明文,在密钥栏输入相应的密钥,如下图1.1-2

示。

图 1.1-2
(2) 点击“加密”按钮,在密文文本框内就会出现加密后的密文,如图1.1-3所示。

图1.1-3
(二) 解密
(1) 在密文栏相应的文本框内输入所要解密的密文,在密钥栏输入相应的密钥,如图1.1-4
所示。

图1.1-4
希望对大家有所帮助,多谢您的浏览!
(2) 点击“解密”按钮,在明文文本框内就会出现解密后的明文,如图1.1-5所示。

图1.1-5
二、扩展实验
(1) 点击扩展实验下的按钮,进入相应算法的扩展实验面板,此处为移位密码扩展实验的
面板,如图1.1-6所示。

图1.1-6
(2) 在“密钥k”栏中输入一个介于0~25之间的整数,如19,点击“确定”按钮后,系
统显示出“明文-密文映射表”,如图1.1-7所示。

希望对大家有所帮助,多谢您的浏览!
图1.1-7
(3) 在明文文本框中输入明文(如“Classical Cryptology.”),并点击“加密”按钮,在密
文文本框内就会出现加密后的密文(如“VETLLBVTEVKRIMHEHZR”。

注,系统会
自动删除非英文字母,并自动将明文变换为小写字母),如图1.1-8所示。

图1.1-8
(4) 解密过程是加密过程的逆过程,在密文文本框中输入密文(确保密钥已经正确输入),
点击“解密”按钮,即可得到相应的明文。

三、算法跟踪
(一) 算密跟踪
(1) 选择要跟踪的算法即移位密码,在相应的算法计算区域填写明文和密钥。

(2) 点击“跟踪加密”按钮,此时会弹出选择跟踪调试器对话框,如图1.1-9所示,对话
框中所列出的可选调试器根据系统中所安装的调试器而不同。

希望对大家有所帮助,多谢您的浏览!
图1.1-9
(3) 选择“新实例Microsoft CLR Debugger 2005”或其它调试器并点击“是”,打开调试
器如图1.1-10所示。

图1.1-10
(4) 如果出现选择编码的对话框时选择“(自动检测)”,进入代码跟踪界面,如图1.1-11
所示。

希望对大家有所帮助,多谢您的浏览!
图1.1-11
(5) 选择对应c#源代码的xxx.cs标签页并按下快捷键F10开始跟踪,如图1.1-12所示。

图1.1-12
(6) 当算法跟踪完毕后,会自动切换回实验窗口并显示计算结果。

希望对大家有所帮助,多谢您的浏览!
(7) 查看实验面板中的计算结果,然后切换回调试器,选择工具栏中的“停止调试”按钮
或按下SHIFT + F5快捷键以停止调试,如图1.1-13所示。

图1.1-13
(8) 关闭调试器,弹出保存对话框,选择“否”不保存。

(二) 解密跟踪
跟踪解密算法时,选择要跟踪的算法,在相应的算法计算区域填写密文和密钥,点击“跟踪解密”按钮,具体参照加密跟踪步骤。

【实验思考】
思考仿射密码为何要求a与26互素
尝试不同的密钥,并根据密钥的取值范围,思考移位密码、乘法密码和仿射密码的安全性观察明文与密文中字母频度的变化,思考字母频度分析对维吉尼亚密码是否具有威胁
从跟踪的算法源码对照理解算法的原理,并思考是否有其它的实现方法。

(注:可编辑下载,若有不当之处,请指正,谢谢!)。

相关文档
最新文档