chap2_传统秘密金钥系统-DES、CBC等
密码学与网络安全传统对称密钥密码分析课件

为了防止穷举攻击,可以采用增加密钥长度、增加密码复杂 度、使用随机化等策略。
时序攻击与应对措施
时序攻击
时序攻击是一种利用密码生成或使用过程中的时间模式来破解密码的方法。
应对措施
为了防止时序攻击,可以采用加密时序、混淆时序、伪装时序等策略,使得攻击者无法通过时间模式 来破解密码。
统计分析攻击与应对措施
RSA算法的基本思想是利用两个不同大小的素数相乘产生一个公钥和一个私钥。公钥包括模数和两个素数的乘积 ,可以公开使用;私钥包括模数和两个素数的乘积,必须保密。加密过程使用公钥对明文进行加密,解密过程使 用私钥对密文进行解密。
03
对称密钥密码分析技术
穷举攻击与应对措施
穷举攻击
在密码分析中,穷举攻击是一种通过尝试所有可能的密钥组 合来破解密码的方法。
端口转发
SSH协议可以利用对称密钥加密算法,实现端口转发,将客户端的 数据通过安全的连接转发到服务器。
密钥分配与管理
SSH协议支持密钥的分配和管理,确保只有授权的用户能够访问特 定的资源。
WEP协议中的对称密钥应用
加密算法
WEP协议采用对称密钥加密算法 ,对传输的数据进行加密,确保 数据的机密性。
认证与授权
防止中间人攻击
利用对称密钥加密算法,SSL/TLS协 议可以防止中间人攻击,确保数据传 输的安全性。
SSL/TLS协议中的证书机制允许服务 器和客户端进行身份认证,同时通过 密钥交换实现数据传输的授权。
SSH协议中的对称密钥应用
远程登录
SSH协议利用对称密钥加密算法,实现远程登录,确保用户在远 程终端访问服务器时的数据安全。
统计分析攻击
统计分析攻击是一种利用密码生成或使 用过程中的统计规律来破解密码的方法 。
密码学与网络安全_第三章传统对称密钥密码

解密:
C= zebbw
k=7, 7 =15 mod 26
-1
25 = z 4=e 1=b 22 = w
(25-2)×15 = 7 mod 26 ( 4-2 )×15 = 4 mod26 ( 1-2)×15 = 11 mod26 (22-1)×15= 14 mod26
H=07 E=04 L=11 O=14
4.选择明文攻击(Chosen-ciphertext Attack)。
选择明文攻击和已知明文攻击相似,不过明文 / 密文对是 由破译者自己选择的。 5.统计攻击(statistical attack)。 破译者找出密文中使用最多的字母,并假设相关明文的 字母是 E ,找出几对后,破译者就可以找到密钥并运用 密钥来解密信息。 6.模式攻击(pattern attack)。 有些密码将语言特征隐藏起来,但可能在密文忠创建一 些模式,破译者可能会采用模式攻击来攻击这些模式来 破译密文。
破译者只知加密算法、待破译的密文。破译者只能 得到用同一加密算法加密的消息的密文。 2.蛮力攻击(brute-force method) 破译者知道算法和密钥域,运用拦截密码的放大, 采用所有可能的密钥对密文进行解密,知道明文被 搞清楚。 3.已知明文攻击(Known-Plaintext Attack) 破译者已知:加密算法和经密钥加密形成的一个或多 个明文 — 密文对,即可以知道一定数量的密文和对 应的明文。
埃尼格玛之父谢尔比乌斯却未能看到埃尼格玛被广泛使用并对第二次世界大战所产生的重大影响他于1929年5月因骑马时发生意外伤重而死enigma密码机的构造装有26个灯泡的灯板加密时显示密文字符解密时显示明文字符3个转轮每天从5个转轮中选出
第三章 传统对称密钥密码
§3.1 导言
网络安全 第4章 信息保密技术

58 60 62
50 52 54
42 44 46
34 36 38
26 28 30
18 20 22
10 12 14
2 4 6
64 57
59 61 63
56 49
51 53 55
48 41
43 45 47
40 33
35 37 39 40
32 25
27 29 31 8
24 17
19 21 23 48
16 9
1 电码本(ECB)模式
消息分为长为64比特的分组,最后一个分组如果不 够64比特,则需要填充。 明文是由分组长为64比特的分组序列P1,P2,…, PN构成,相应的密文分组序列是C1,C2,…,CN。 ECB的最大特性是同一明文分组在消息中重复出现 的话,产生的密文分组也相同。 ECB用于长消息时可能不够安全,如果消息有固定 结构,密码分析者有可能找出这种关系。 ECB在用于短数据(如加密密钥)时非常理想,因 此如果需要安全地传递DES密钥,ECB是最合适的模 式。
标准。最近的一次评估是在1994年1月,美国已决定1998年
12月以后将不再使用DES。因为按照现有的技术水平,采 用不到几十万美元的设备,就可破开DES密码体制。目前
的新标准是AES,它是由比利时的密码学家Joan Daemen和
Vincent Rijmen设计的分组密码—Rijndael(荣代尔)。
破译它的穷举密钥搜索量为 21125×1035 量级,而 用差分分析破译也要超过 1052量级。此方案仍有足 够的安全性。
分组密码的运行模式
分组密码在加密时,明文分组的长度固定。 实际应用中待加密消息的数据长度和格式各 有不同。 为了能在各种应用场合使用DES,定义了 DES的4种运行模式,这些模式也可用于其他 分组密码。
银行常用算法介绍

明文PIN 123456, 则PIN BLOCK 为0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF
PIN BLOCK
—— ANSIX9.8 格式(带主账号信息) PIN BLOCK为PIN按位异或主账号(PAN)。 PAN格式如下表所示:
PIN 明文:123456 磁卡上的PAN:1234 5678 9012 3456 78 截取下的PAN:6789 0123 4567 则用于PIN加密的PAN为:0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67 则PIN BLOCK 为: 0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF 异或: 0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67 结果为:0x06 0x12 0x53 0xDF 0xFE 0xDC 0xBA 0x98
数据传输安全控制的基本要求
数据传输安全控制要求包括以下五个方面: a) 密钥管理机制:在技术上实施严格和可靠的密钥分配过 程。 b) 个人标识码(PIN)的加密及转换机制:不允许 PIN 的 明码在通信线路上和人工可操作的存储媒体上出现。 c) 对交易报文作来源正确性鉴别的机制(MAC)。 d) 所有入网机构采用硬件加密装置。 e) 点对点的数据加解密网络机制。
对所选择的MAC报文域,应进一步作字符处理。除去一 些冗余信息,以提高MAC的质量。处理方法 如下: a) 带长度值的域在计算 MAC 时应包含其长度值信息; b) 在域和域之间插入一个空格; c) 所有的小写字母转换成大写字母; d) 除了字母(A-Z),数字(0-9),空格,逗号(,)和点号 (.)以外的字符都删去; e) 删去所有域的起始空格和结尾空格; f) 多于一个的连续空格,由一个空格代替。
传统密码技术总结_技术季度总结

传统密码技术总结_技术季度总结随着信息技术的不断发展和普及,密码技术已经成为了信息安全的重要保障手段之一。
传统密码技术是密码学领域最早的研究方向,它由单向加密算法、对称加密算法和非对称加密算法三部分组成,下面我们分别对这三部分进行总结。
一、单向加密算法单向加密算法也被称为散列函数或哈希函数。
它通过将任意长度的输入数据哈希成固定长度的输出数据,保证了输入数据的不可逆性、唯一性和可验证性。
单向加密算法主要应用于数字签名、数字证书、口令验证、数据完整性校验等领域。
目前常用的单向加密算法包括MD5、SHA-1、SHA-2等。
但是,由于哈希算法的输入数据长度是不限制的,因此在实际应用中容易受到碰撞攻击、彩虹表攻击等攻击手段的影响,安全性较低,因此在传统密码技术中的地位日渐减弱。
对称加密算法也被称为私钥加密算法,是目前应用最广泛的一类加密技术。
对称加密算法的特点是加解密使用同一个密钥,速度快、安全性高、易于实现,主要应用于数据传输、文件加密等领域。
在传统密码技术中,DES、AES、IDEA等都是常见的对称加密算法。
但是,由于对称加密算法的密钥需要在传输过程中进行共享,因此密钥管理困难、密钥泄露可能性较高,安全性难以保证。
三、非对称加密算法非对称加密算法也被称为公钥加密算法,它与对称加密算法不同,加解密使用不同的密钥,其中一个作为公钥用于加密,另一个作为私钥用于解密。
RSA、ElGamal等算法都是非对称加密算法中比较典型的代表。
由于非对称加密算法具有广泛的应用领域和高度的安全性,因此在互联网通信、数字证书、电子签名、加密货币等领域有着重要的地位。
但是,非对称加密算法的算法复杂度较高、加解密速度较慢、密钥管理复杂等问题也影响了其在实际应用中的推广。
总结:传统密码技术在信息安全领域仍然发挥着重要的作用。
单向加密算法、对称加密算法和非对称加密算法分别解决了不同的加密需求,但是随着计算机技术的不断发展和安全威胁的不断增加,传统密码技术已经逐渐被更为安全、高效的新型加密技术所取代,如量子密码、同态加密、零知识证明等新兴密码技术将成为未来信息安全的重要保障手段。
网络信息安全-加密技术

加密技术一.加密技术的分类1.对称密钥:所谓对称密钥就是加密和解密用的密钥是相同的。
当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文体供阅读。
在对称密钥中,密钥的管理极为重要,一旦密钥丢失,密文将无密可保。
2.不对称密钥:所谓不对称密钥,指的是加密用的密钥和解密用的密钥不同,虽然两者之间存在一定的关系,但不可能轻易地从一个推导出另一个。
不对称密钥由于两个密钥(加密密钥和解密密钥)各不相同,因而可以将一个密钥公开,而将另一个密钥保密,同样可以起到加密的作用。
二.典型的传统加密算法如果是由一个字母表构成的替代密码,称为单表密码。
其替代过程是在明文和密码字符之间进行一对一的映射。
如果是由多个字母表构成的替代密码,称为多表密码。
(1)单表替代密码一种典型方法是凯撒(Caesar)密码,又叫循环移位密码。
它的加密方法就是把明文中所有字母都用它右边的第k个字母替代,并认为Z后边又是A。
这种映射关系表示为如下函数:F(a)=(a+k) mod n其中:a表示明文字母;n为字符集中字母个数;k为密钥。
映射表中,明文字母中在字母表中的相应位置数为C,(如A=1,B=2,…)形式如下:设k=3;对于明文P=COMPUTE SYSTEMS则f(C)=(3+3)mod 26=6=Ff(O)=(15+3)mod 26=18=Rf(M)=(13+3)mod 26=16=P┆f(S)=(19+3)mod 26=22=V密文C= E k(P)=FRPSXRWHUVBVWHPV。
(2)多表替代密码周期替代密码是一种常用的多表替代密码,又称为维吉尼亚(Vigenere)密码。
这种替代法是循环的使用有限个字母来实现替代的一种方法。
若明文信息m l m2m3…m n,采用n个字母(n个字母为B1,B2,…B n)替代法,那么,m l将根据字母B n的特征来替代,m n+l又将根据B1的特征来替代,m n+2又将根据B2的特征来替代……,如此循环。
公钥、私钥、SSLTLS、会话密钥、DES
公钥、私钥、SSLTLS、会话密钥、DES⼀,公钥私钥1,公钥和私钥成对出现2,公开的密钥叫公钥,只有⾃⼰知道的叫私钥3,⽤公钥加密的数据只有对应的私钥可以解密4,⽤私钥加密的数据只有对应的公钥可以解密5,如果可以⽤公钥解密,则必然是对应的私钥加的密6,如果可以⽤私钥解密,则必然是对应的公钥加的密假设⼀下,我找了两个数字,⼀个是1,⼀个是2。
我喜欢2这个数字,就保留起来,不告诉你们,然后我告诉⼤家,1是我的公钥。
我有⼀个⽂件,不能让别⼈看,我就⽤1加密了。
别⼈找到了这个⽂件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以⽤数字2,就是我的私钥,来解密。
这样我就可以保护数据了。
我的好朋友x⽤我的公钥1加密了字符a,加密后成了b,放在⽹上。
别⼈偷到了这个⽂件,但是别⼈解不开,因为别⼈不知道2就是我的私钥,只有我才能解密,解密后就得到a。
这样,我们就可以传送加密的数据了。
现在我们知道⽤公钥加密,然后⽤私钥来解密,就可以解决安全传输的问题了。
如果我⽤私钥加密⼀段数据(当然只有我可以⽤私钥加密,因为只有我知道2是我的私钥),结果所有的⼈都看到我的内容了,因为他们都知道我的公钥是1,那么这种加密有什么⽤处呢?但是我的好朋友x说有⼈冒充我给他发信。
怎么办呢?我把我要发的信,内容是c,⽤我的私钥2,加密,加密后的内容是d,发给x,再告诉他解密看是不是c。
他⽤我的公钥1解密,发现果然是c。
这个时候,他会想到,能够⽤我的公钥解密的数据,必然是⽤我的私钥加的密。
只有我知道我得私钥,因此他就可以确认确实是我发的东西。
这样我们就能确认发送⽅⾝份了。
这个过程叫做数字签名。
当然具体的过程要稍微复杂⼀些。
⽤私钥来加密数据,⽤途就是数字签名。
好,复习⼀下:1,公钥私钥成对出现2,私钥只有我知道3,⼤家可以⽤我的公钥给我发加密的信了4,⼤家⽤我的公钥解密信的内容,看看能不能解开,能解开,说明是经过我的私钥加密了,就可以确认确实是我发的了。
Ch02-单钥密码体制
密码体制分类 —— 单钥体制
特点:系统的保密性主要取决于密钥的安全性,与 算法的安全性无关,即由密文和加解密算法不可能 得到明文。即算法无需保密,需保密的是密钥。 主要任务:产生满足保密要求的密钥以及如何将密 钥安全可靠的分配给通信双方。
2010-9-11
11
1.密码学的基本概念 1.密码学的基本概念
丁刚
2
主 要 内 容
密码学的基本概念 流密码 分组密码概述 数据加密标准(DES) 数据加密标准(DES) 分组密码的运行模式 IDEA
2010-9-11
3
1.密码学的基本概念
密码学概述
密码技术通过信息的变换或编码,将机密的敏感信 息变换成黑客难以读懂的乱码以达到两个目的: 1、使不知道如何解码的黑客不可能由其截获的乱码 中得到任何有意义的信息。 2、使黑客不可能伪造乱码型的信息。
2010-9-11
15
2.流密码
流密码的基本思想
利用密钥K产生一个密钥流z=z0z1……,并使用如下 规则对明文串x=x0x1……加密: y=y0y1..y2=Ez0(x0) Ez1(x1) Ez2(x2) 密钥流由密钥流发生器f产生,zi=f(k,σi), σi是 加密器中的记忆元件(存储器)在时刻i的状态。
2010-9-11
34
3.分组密码 3.分组密码 Feistel密码结构 Feistel密码结构 —— 加密结构
代换
置换
2010-9-11
35
3.分组密码 3.分组密码
Feistel密码结构 Feistel密码结构—— 加密结构 密码结构
第I轮迭代的输入为前轮输出的函数: Li=Ri-1 Ri=Li-1⊕F(Ri-1,Ki)
2010-9-11
银行密钥体系
银⾏密钥体系银⾏系统的密钥有三种,主密钥/pinkey/Mackey,其中pinkey是⽤来加密密码的,⽽mackey是⽤来校验报⽂是否有错码,主密钥是⽤来加密pinkey 和mackey的.其中主密钥加密pinkey和mackey是是⽤3des来加解密的代码如下:/*param:pKey:密钥(⼗六进制)strPlainAKey:需要加解密的字符串(⼗六进制)ciperAKey:返回值iflag:1解密 0加密*/void getCiper(char* pKey, char* strPlainAKey, char* ciperAKey, int iflag){unsigned char binPlainAKey[64] = {0};hex2binary(binPlainAKey, strPlainAKey, strlen(strPlainAKey));ASCIIStr2BinCharStrBy3DES(pKey,(unsigned char*)binPlainAKey,strlen(strPlainAKey)/2, (unsigned char*)ciperAKey, iflag);}/*param:pKey:密钥(⼗六进制)inBinary:加解密字符串的字节形式inLen:加解密字符串的长度binCharString:返回值iflag:1解密 0加密*/void ASCIIStr2BinCharStrBy3DES(char* pKey, unsigned char* inBinary, int inLen, unsigned char* binCharString,int iflag){unsigned char targetIdBin[DESBINARY_LEN] = {0}; //TargetIdLen=8// 3DES encriptionunsigned char key[LEN_OF_KEY];unsigned char block_key[9];memset(key, 0, LEN_OF_KEY);hex2binary(key, pKey, strlen(pKey));DES_key_schedule ks,ks2,ks3;memset(block_key, 0, sizeof(block_key));memcpy(block_key, key + 0, 8);DES_set_key_unchecked((const_DES_cblock*)block_key, &ks);memcpy(block_key, key + 8, 8);DES_set_key_unchecked((const_DES_cblock*)block_key, &ks2);memcpy(block_key, key + 0, 8);DES_set_key_unchecked((const_DES_cblock*)block_key, &ks3);unsigned char input[8];memset(input, 0, sizeof(input));unsigned char encryptedOutBinary[DESBINARY_LEN];memset(encryptedOutBinary, 0, sizeof(encryptedOutBinary));for(int i=0; i<inLen/8; i++){memset(targetIdBin, 0, sizeof(targetIdBin));memcpy((void*)targetIdBin, (const void*)(inBinary+i*8), 8);DES_ecb3_encrypt((const_DES_cblock*)targetIdBin, (DES_cblock*)encryptedOutBinary, &ks, &ks2, &ks3, iflag);binary2char((char*)binCharString+i*16, encryptedOutBinary, DESBINARY_LEN);}}//// A public function: convert binary string to character string, the character string's length = 2 // binary string.// @param charArray: character array. output.// @param binArray: binary array. input.// @param binLen: length of binary array.//void binary2char(char* charArray, const unsigned char* binArray, int binLen){int i;for(i = 0; i < binLen; i++){sprintf(charArray + 2*i, "%02X", binArray[i]);}charArray[2*i] = '\0';}//// A public function: convert hex string to binary string, the hex string's length = 2 * binary string.// @param binArray: binary array. output.// @param hexCharArray: character array contains hex string. input.// @param hexLen: length of hex string array. input.//void hex2binary(unsigned char* binArray, const char* hexCharArray, int hexLen){if (hexLen%2 != 0){printf("hex2binary(): length of input parameter hexCharArray should be even number!\n");return;}int i, j;//convert two hex chars to one bytechar atom[2 + 1] = "\0";for (i = 0, j = 0; i < hexLen/2; i++, j+=2){strncpy(atom, hexCharArray + j, sizeof(atom) - 1);atom[sizeof(atom) - 1] = '\0';binArray[i] = (unsigned char)strtol(atom, NULL, 16);}}⼀般来说,ATM拿到pinkey密⽂会使⽤主密钥解密,得到pinkey明⽂,然后是⽤帐号+密码⽣成pinblock明⽂,然后使⽤pinkey使⽤3des加密,然后传给后端⽣成pinblock明⽂的算法为:char uniteBytes(char a,char b){char c = (int(a-'0')<<4)+b-'0';return c;}/*** getHPin* 对密码进⾏转换* PIN格式* BYTE 1 PIN的长度* BYTE 2 – BYTE 3/4/5/6/7 4--12个PIN(每个PIN占4个BIT)* BYTE 4/5/6/7/8 – BYTE 8 FILLER “F” (每个“F“占4个BIT)* @param pin String* @return byte[]*/void getHPin(char* pin, char* encode){encode[0] = 6;encode[1] = uniteBytes(pin[0], pin[1]);encode[2] = uniteBytes(pin[2], pin[3]);encode[3] = uniteBytes(pin[4], pin[5]);encode[4] = 255;encode[5] = 255;encode[6] = 255;encode[7] = 255;}/*** getHAccno* 对帐号进⾏转换* BYTE 1 — BYTE 2 0X0000* BYTE 3 — BYTE 8 12个主帐号* 取主帐号的右12位(不包括最右边的校验位),不⾜12位左补“0X00”。
密钥管理系统
密钥管理系统密钥管理系统是一种通过密码保护数据的电子工具。
它被广泛应用于企业和个人的加密和安全保障工作中,可以帮助用户在互联网上安全地存储和传输机密信息。
随着网络科技的飞速发展,实现网络安全保护已经成为许多行业的共同需求。
本文将探讨密钥管理系统的定义、功能、应用及其对安全保障的作用。
一、密钥管理系统的定义密钥管理系统是一种基于加密技术的安全保护系统。
它主要依靠密码技术对机密信息进行加密,从而实现信息保密。
密钥管理系统通常包括密钥的生成、存储、交换、发布、注销等功能。
根据密钥的种类和用途,可将密钥管理系统分为对称密钥管理系统和非对称密钥管理系统。
对称密钥管理系统,又称为传统加密系统。
对称密钥系统商讨好密钥后,一方将密钥发送给另一方,双方共用该密钥。
这种方式的优点是加密速度快,缺点是密钥的传递对安全性要求较高,一旦密钥泄露,后果将非常严重。
非对称密钥管理系统是一种新型的加密方式。
它包含两种密码,一种是公开密码,另一种是私有密码。
公开密码可以自由分发,而私有密码只有用户本人知道。
非对称密钥系统鉴别双方身份后,通过传输公开密码,发出一次或多次数据交换请求,以了解对方具体要求、解密数据,等到对方全部要求满足时,再用私有密码加密数据,传递给对方的公开密码解密。
由于非对称密钥管理系统的特殊设计,数据交换时不需要传输密钥,因此更加具有安全性。
二、密钥管理系统的功能1.密钥生成和存储密钥生成和存储是密钥管理系统最基本的两个功能。
密钥生成是指根据要求自动产生密钥或者手动输入密钥;密钥存储是指将密钥安全地保存起来,并确定只有经过授权的用户才有权使用。
2.密钥交换密钥交换是指在安全通信前,双方交换密钥的过程。
在对称密钥系统中,通常采用密码固定的方法,即通信双方提前商定一个密钥,然后再进行交换。
在非对称密钥系统中,一般采用公钥加密的方式来实现密钥的安全交换。
3.密钥发布和注销密钥发布和注销是指从密钥管理系统中找到被授权的密钥,然后在需要的时候对密钥进行发布和撤销。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•數
(
)
2-3
√ • 暴力 √ • • • •
(cryptanalysis)
(Brute-Force Attack) ( ( (Computationally Secure) (256µs=7.2*1016µs=1142年) ) )
4
金
Key size 32 bits 56 bits 128 bits 168 bits 26 (1) (2) 1µs 1µs 數 232 = 4.3x109 256 = 7.2x1016 2128 = 3.4x1038 2168 = 3.7x1050 26 ! = 4x1026 106 (1) 231 = 35.8 255 = 1142年 2127 = 5.4x11024 年 2167 = 5.4x11024年 2x1026 = 5.9x11036年 2.15 m sec 10.01 5.4x1018 年 5.9x1030年 6.4x1106年 (2)
12
Enigma
4
Enigma
8
Enigma
13
2-5
64 bits M = M1 || M2 || M3‧‧|| Mn
理(
)
料
連 C C = Ek(M) = Ek(M1) || Ek(M2) || ‧‧‧|| Ek(Mn) (Product Ciphers) 串 Feistel 數
料
||
concatenation
"graphein" (
• • •
理 (Enciphering) (Deciphering) (Cryptosystem) ≠
2
2-2
念 (Privacy) (Authenticity) (Integrity) 不 repudiation) 率 • 料 ( ) 度 (key) 金 金 力
3
• 率 (Non• • 度
48 bits 32 bits
列 數 )
32 bits
24
Li=Ri-1
Ri
DES
Ex(Ri-1) 數
理--
(E)
列
列(P)
數P
數
48 ← 32 bits
32 ← 32 bits
S(B's) = 0101 1100 1000 0010 R0 = 1111 0000 1010 1010 1111 0000 1011 0101 1001 0111 1010 1010 Ex(R0) = 011110 100001 010101 010101 f(R0 ,K1 )= 0010 0011 0100 1010 1010 1001 1011 1011 011110 100001 010101 010101
(A) (Rotation Substitution Cipher) I SIT BY MY WINDOW WAITING FOR YOU B LBM UR FR PBGWHP PTBMBGZ YHK RHN •
Z A B Y Z A B C C X XY D D W W E E
Z A B Y S T U C V X QR W D W P X E
金
2-1 2-2 2-3 2-4 2-5 Feistel 2-6 DES DES 流 列 理 2-8 理 串 JJ論 理 DES DES 2-7 DES
立"(
論(Cryptography)
) ) M= K1 = E= • • •C= K2 = D= C = EK1 (M) M = DK2(C) = DK2(EK1(M))
--Feistel
n bit block n/2 n/2 L R R ) 行 Key_2 L 亂 Key_1
• • •
m
Key_m
16
Feistel
• Li+1 = Ri • Ri+1 = Li F F(Ki+1 亂 數 Ri)
理
i+1
A ex-or C=A⊕B
Key_i+1
B •
17
Feistel
(
)
64 bit block 32 32 L R Key_1
Key_2
64 bit
56 bit Key Generator Key_1 2 16 48 bit/subkey
• • •
Key_16
20
2-6-1 DES
DES 流 1. 料 2. 列 (Initial Permutation, IP) 3. 16 4. 理 5. 理 16 不 6. 列 (Final Permutation)
(Rotor Machine)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 8 18 26 17 20 22 10 3 13 11 4 23 5 24 9 12 25 16 19 6 15 21 2 7 1 14 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1 4 15 1 12 1 13 14 8 0 7 6 10 13 8 6 2 3 6
Bi = b1, b2, b3, b4, b5, b6 Si(Bi) = Si b1b6 (b2 b3 b4 b5)
行 (b2, b3, b4, b5) 7 8 9 10 11 12 13 14 15 6 12 9 3 2 1 12 7 12 5 2 14 8 2 3 5 12 11 7 14 13 10 6 12 7 14 12 3 5 12 14 11 5 9 3 10 12 6 9 0 11 12 5 11 11 1 5 12 9 5 10 0 0 9 3 5 4 11 10 5 12 10 2 7 0 3 5 6 5 11 2 14 2 15 14 2 4 14 8 2 7 8 0 13 10 5 15 9 8 1 7 12 5 9 4 14
• P= • ( • • C= ) C = P - 7 mod 26 C = P+19 mod 26 P = C+7 mod 26
11
(B)
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 24 25 26 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 21 3 15 1 19 10 14 26 20 8 16 7 22 4 11 5 17 9 12 23 18 2 25 6 24 13 26 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 20 1 6 4 15 3 14 12 23 5 16 2 22 19 11 18 25 24 13 7 10 8 21 9 26 17
• •
數 {5,7,4,2} C= P - 7 mod 26
10
modular
vs.
I SIT BY MY WINDOW WAITING FOR YOU B LBM UR FR PBGWHP PTBMBGZ YHK RHN
A BCDE FG H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
25
DES
48 bits B = Ex(Ri-1)
(b1, b6) b1 b6 S1 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 14 0 4 15 15 3 0 13 10 13 13 1 7 13 10 3 B 4 5
理 -- S-Box
數-1
32 bits Ki B = B1 || B2 || … || B8
5
2-4 -1
理 (Transposition Cipher) (Substitution Cipher) 利 來 列 列
律 I SIT BY MY WINDOW WAITING FOR YOU UOY ROF GNITIAW WODNIW YM YB TIS I 來 (A) (Railroad Method) 不 4X(?) • I SIT BY MY WINDOW WAITING FOR YOU • I I BMWNOW I IGOYU S T Y Y I D W A T NF R O E • IIBMWNOWIIGOYUSTYYIDWATNFROE • 列 列
-列 1- 8 9 - 16 17 - 24 25 - 32 33 - 40 41 - 48 49 - 56 57 - 64 40 39 38 37 36 35 34 33 8 7 6 5 4 3 2 1 48 47 46 45 44 43 42 41 16 15 14 13 12 11 10 9 56 55 54 53 52 51 50 49
串
Block Cipher
14
2-5-1
• • •
--
(permutation) (substitution) M = M1 || M2 || M3‧‧|| Mn C = Ek(M) = Sk Pk-1 ‧‧P2 S2 P1 S1 (M)
3 bits 12 bits
12 bits
15
2-5-2
n bit Feistel Ciphers • • • ( 不
6
(B)
列 I SIT BY MY WINDOW WAITING FOR YOU 列 key key=1 行 4 I Y W F 3 S W A O 1 I I I R 2 T N T Y 5 B D I O 6 Y O N U 7 M W G E