密码技术
计算机科学中的密码技术

计算机科学中的密码技术密码技术是计算机科学中至关重要的一个领域。
它可以预防数据泄漏,保护机密信息,并且有效的防止网络攻击。
本文将从三个方面介绍计算机科学中的密码技术:对称加密、非对称加密以及哈希函数。
一、对称加密对称加密是一种加密方式,其中加密和解密都使用相同的密钥。
这意味着需要安全分发密钥来保护加密数据并防止未经授权的访问。
对称加密算法通常分为分组密码和流密码两种类型。
分组密码将明文分为块,并使用相同的密钥加密每个块,从而生成密文。
这些块可以是比特序列或者是更大的块。
分组密码算法中比较常见的有DES(数据加密标准),Triple-DES,AES(高级加密标准)等。
流密码则通过加密明文和随机密钥序列的异或运算来生成密文。
这种密码算法可以被看作是分组密码的一种变体,其中块是一位比特。
流密码算法中比较常见的有RC4,ChaCha20等。
二、非对称加密非对称加密是一种公钥加密技术。
这里需要两个密钥:公钥和私钥。
公钥是公开的,并且任何人都可以使用它来加密消息。
相反,解密消息需要私钥,这个私钥只能由接收方持有。
这种加密方式的一种优点是可以避免安全分发密钥的问题,但是会增加加密和解密的计算量。
非对称加密算法比较常见的有RSA(可扩展的加密算法)和椭圆曲线加密算法(ECC)。
三、哈希函数哈希函数是一种将任意长度的输入映射为固定长度的输出的函数。
这个输出通常称为散列值或者数字指纹。
哈希函数的一个主要特性是当输入数据发生变化时,输出结果必须发生变化。
散列值用于验证数据的完整性,它通常用于数字签名和消息认证码(MAC)等方面。
SHA-1和MD5是最常使用的哈希函数之一。
但是最近关于它们的安全问题已经被发现,因此人们更常使用SHA-256、SHA-384和SHA-512等更多安全的哈希算法。
结论密码学技术是计算机科学的研究,包括对称加密算法、非对称加密算法和哈希函数。
现代密码学可以帮助数据保持安全,并且保证保密性和完整性,从而预防数据泄露和网络攻击。
第3章密码技术

密码算法是在密钥控制下的一簇数学运算。根 据消息密级的不同,算法强度可以不同。
1.密码算法的分类
(1)对称密码算法
也称为单密钥密码算法。其特征是加密与解密 的密钥是一样的或相互可以导出的。
对称加密体制,如图3.3所示。
明文
E1 加密
密文
信道
密文
E2 解密
明文
通过试算我们找到,当d=7时,e×d≡1 mod φ(n)同余 等式成立。因此,可令d=7。从而我们可以设计出一 对公私密钥,加密密钥(公钥)为:KU =(e,n)=(3,33),解密密钥(私钥)为:KR =(d,n)=(7,33)。
将明文信息数字化,假定明文英文字母编码表为按字 母顺序排列数值,则字母y的明文信息为25,对其加 密得密文:C=253(mod 33)=16;对16解密得明文: M=167(mod 33)=25。
(6)RSA体制
一个可逆的公钥密码体制,它利用了如下基本事实:
寻找大素数是相对容易的,而分解两个大素数的积在 计算上是不可行的。
RSA体制的密钥对的产生过程如下:
选择两个大素数p和q(典型在10100以上)。
计算n=pq,φ(n)=(p-1)(q-1)。
选择e,并使e与φ(n)互为素数。
(3)公钥密码体制的两种基本应用模式 加密模式:公钥加密,私钥解密。 认证模式:私钥加密,公钥解密。
可用于这两种模式的公钥密码体制称为可逆公钥密码 体制,只能用于认证模式的公钥密码体制称为不可逆 公钥密码体制。
(4)公钥密码体制的安全性基础 对算法设计者来说,公钥密码体制的设计比对称密码
3.4 密钥及密钥管理框架
密钥是密码算法中的可变参数。现代密码学中有句名 言:“一切秘密寓于密钥之中”。密钥需要保密,而 密码算法是公开的。密码体制的安全性是建立在对密 钥的保密基础上的。
密码技术

(4)可以完成数字签名和数字鉴别。发信人使用只有自己 知道的密钥进行签名,收信人利用公开密钥进行检查,既方 便又安全。
置换选择函数PC-1
Ci(28位)
Di(28位)
14 3 23 16 41 30 44 46
17 28 19 7 52 40 49 42
11 15 12 27 31 51 39 50
24 6 4 20 37 45 56 36
1 21 26 13 47 33 34 29
5 10 8 2 55 48 53 32
难以解决数字签名验证的问题。
解决密钥分发的困难 数字签名的需要 依据数学问题的不同,可分为三类:
基于整数分解问题:RSA 基于离散对数问题:DSA,DH 基于椭圆曲线点群上离散对数问题:ECDSA
【RSA密码体制】 密钥产生
假设Alice想要通过一个不可靠的媒体接收Bob的一条私人讯息。她 可以用以下的方式来产生一个公钥和一个私钥: 随意选择两个大的质数p和q,p不等于q,计算n=p×q。 根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1) 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1) 用公式计算d:d× e ≡ 1 (mod (p-1)(q-1)) 将p和q的记录销毁。 e是公钥,d是私钥。d是秘密的,而n是公众都知道的。Alice将她 的公钥传给Bob,而将她的私钥藏起来。
用户2 (保存自己的私钥、公钥)
Internet
用户4 (保存自己的私钥、公钥)
第3章密码技术

3.2 对称加密算法
分组密码 分组密码是将明文消息编码表示后的数字(简称明文数字) 序列,划分成长度为n的组(可看成长度为n的矢量),每 组分别在密钥的控制下变换成等长的输出数字(简称密文 数字)序列。 扩散(diffusion)和扰乱(confusion)是影响密码安全的 主要因素。扩散的目的是让明文中的单个数字影响密文中 的多个数字,从而使明文的统计特征在密文中消失,相当 于明文的统计结构被扩散。 扰乱是指让密钥与密文的统计信息之间的关系变得复杂, 从而增加通过统计方法进行攻击的难度。扰乱可以通过各 种代换算法实现。 分组密码包括DES、IDEA等。
3.2 对称加密算法
DES算法 主要有以下四点: (1)提供高质量的数据保护,防止数据未经授权 的泄露和未被察觉的修改; (2)具有相当高的复杂性,使得破译的开销超过 可能获得的利益,同时又要便于理解和掌握; (3)DES密码体制的安全性应该不依赖于算法的 保密,其安全性仅以加密密钥的保密为基础; (4)实现经济,运行有效,并且适用于多种完全 不同的应用。
3.2 对称加密算法
对称加密采用了对称密码编码技术,它的特点是文件加密 和解密使用相同的密钥,或加密密钥和解密密钥之间存在 着确定的转换关系。这种方法在密码学中叫做对称加密算 法,其实质是设计一种算法,能在密钥控制下,把 n比特 明文置换成唯一的n比特密文,并且这种变换是可逆的。 根据不同的加密方式,对称密码体制又有两种不同的实现 方式,即分组密码和序列密码(流密码)。
3.3 非对称加密技术
RSA算法公钥和私钥的生成
假设 A 要与 B 进行加密通信,该怎么生成公钥和私钥呢? 1.随机选择两个不相等的质数 p 和 q。 假设 A 选择了 3 和 11。 (实际应用中,这两个质数越大,就越难破解。 ) 2.计算 p 和 q 的乘积 n。 n=3× 11=33 n 的长度就是密钥长度。33 写成二进制是 100001,一共有 6 位,所以这个 密钥就是 6 位。 实际应用中, RSA 密钥一般是 1024 位, 重要场合则为 2048 位。 3.计算 n 的欧拉函数 (n) 。 根据公式:
密码技术

9
2. DES算法关键操作 DES算法关键操作
(1) 初始置换,逆初始置换及其参数表 初始置换, DES算法在加密前 DES算法在加密前, 首先执行一个初始置换操 算法在加密前, 初始置换表将 位明文的位置 按照规定的初始置换表 64 位明文的 作 , 按照规定的 初始置换表 将 64位明文的位置 进行变换,得到一个乱序的64位明文 位明文. 进行变换,得到一个乱序的64位明文. 经过16轮运算后 通过一个逆初始置换操作, 轮运算后, 经过16轮运算后, 通过一个逆初始置换操作, 按照规定的逆初始置换表将左半部分32位和右 逆初始置换表将左半部分 按照规定的逆初始置换表将左半部分32位和右 半部分32位合在一起 得到一个64位密文 位合在一起, 位密文. 半部分32位合在一起,得到一个64位密文. 初始置换和逆初始置换并不影响 DES 的安全 性 , 其主要目的是通过置换将明文和密文数据 变换成字节形式输出,易于DES芯片的实现 芯片的实现. 变换成字节形式输出,易于DES芯片的实现.
10
(2) 密钥置换及其参数表 64位密钥中 每个字节的第8 位密钥中, 在64位密钥中, 每个字节的第8位为奇偶校验 经过密钥置换表置换后去掉奇偶校验位, 密钥置换表置换后去掉奇偶校验位 位,经过密钥置换表置换后去掉奇偶校验位, 实际的密钥长度为56位 实际的密钥长度为56位. 在每一轮运算中, 56位密钥中产生不同的 位密钥中产生不同的48 在每一轮运算中, 从56位密钥中产生不同的48 这些子密钥按下列方式确定: 位子密钥 Ki,这些子密钥按下列方式确定: 56位密钥分成两部分 每部分为28位 位密钥分成两部分, 将56位密钥分成两部分,每部分为28位; 根据运算的轮数, 按照每轮左移位数表 每轮左移位数表将这两 根据运算的轮数, 按照每轮左移位数表将这两 部分分别循环左移 1位或 2位; 按照压缩置换表 56位密钥中选出 位子密 压缩置换表从 位密钥中选出48 按照压缩置换表从56位密钥中选出48位子密 它也称压缩置换或压缩选择. 钥,它也称压缩置换或压缩选择.
2_1密码技术基础分析

维吉尼亚表:
m=abcdefg
key=bag E(m)= BBIEELH key=egg E(m)=? E(m)=DCI key=bag
m=?
a a A b B c C d D e E f F g G … …
b B C D E F G H …
c C D E F G H I …
d D E F G H I J …
计算机网络安全基础
2.1 密码技术的基本概念
(2)双钥/非对称密码体制 使用相互关联的一对密钥,一个是公用密 钥,任何人都可以知道,另一个是私有密钥, 只有拥有该对密钥的人知道。如果有人发信给 这个人,他就用收信人的公用密钥对信件进行 过加密,当收件人收到信后,他就可以用他的 私有密钥进行解密,而且只有他持有的私有密 钥可以解密。
数据,或有足够多的明文、密文对,穷搜索法总是可以 成功的。但实际中任何一种能保障安全要求的实用密码 体制,都会设计得使这种穷搜索法在实际上是不可行的。 在理论上,这种方法也往往作为与其他攻击方法相比较 的基础,以此作为标准,判断其他各种攻击方法的有效 程度。
计算机网络安全基础
2.1 密码技术的基 密码技术的基本概念
(2)已知明文攻击(Known-Plaintext Attack)。密码分 析者不仅可得到一些消息的密文,而且也知道这些消 息的明文。分析者的任务就是用加密信息推出用来加 密的密钥或推导出一个算法,此算法可以对用同一密 钥加密的任何新的消息进行解密。 ( 3 )选择明文攻击( Chosen-Plaintext Attack)。分析 者不仅可得到一些消息的密文和相应的明文,而且他 们也可选择被加密的明文。这比已知明文攻击更有效。 因为密码分析者能选择特定的明文块去加密,那些块 可能产生更多关于密钥的信息,分析者的任务是推出 用来加密消息的密钥或导出一个算法,此算法可以对 用同一密钥加密的任何新的消息进行解密。
密码算法和密码技术

密码算法和密码技术
密码算法是一种数学和计算机科学的方法,用于对数据进行加密和解密。
密码技术是应用密码算法的实践,旨在保护数据的机密性、完整性和可用性。
常见的密码算法和密码技术包括:
1. 对称加密算法:使用相同的密钥对数据进行加密和解密,如DES、AES和RC4。
2. 非对称加密算法:使用一对密钥(公钥和私钥)对数据进行加密和解密,如RSA和ECC。
3. 哈希函数:将任意长度的数据映射为固定长度的哈希值,用于数据完整性校验,如MD5和SHA。
4. 数字证书和公钥基础设施(PKI):用于对公钥进行认证和信任管理,确保数据传输的安全性。
5. 身份验证技术:用于确认用户的身份,如密码验证、生物特征识别和多因素认证。
6. 访问控制和权限管理:限制用户对系统和数据的访问权限,防止未经授权的访问。
7. 安全协议和通信安全性:确保网络通信的机密性和完整性,如SSL/TLS协议和IPsec。
8. 密码硬件和安全芯片:提供物理层面上的安全保护,如智能卡和加密芯片。
密码算法和密码技术的发展始终是一个动态的过程,随着计算机技术的进步和安全需求的变化,新的算法和技术不断涌现,以应对不断演进的安全威胁。
同时,破解密码算法和技术的方
法也在不断发展,密码学家们需要时刻保持警惕,并不断改进和加强密码算法和技术的安全性。
密 码 技 术

1.2.2 变换密码
换位有时也称为排列,它不对明文字母进行变换, 只是将明文字母的次序进行重新排列。它的密钥 必须是一个不含重复字母的单词或短语,加密时 将明文按密钥长度截成若干行排在密钥下面,按 照密钥字母在英文字母表中的先后顺序给各列进 行编号,然后按照编好的序号按列输出明文即成 密文。
1.3.1 DES算法
数据加密标准(Data Encryption Standard,DES)是由IBM 公司研制的加密算法,于1977年被美国政府采用,作为商业和 非保密信息的加密标准被广泛采用。尽管该算法较复杂,但易 于实现。它只对小的分组进行简单的逻辑运算,用硬件和软件 实现起来都比较容易,尤其是用硬件实现使该算法的速度快。
TDEA使用3个密钥,按照加密→解密→加密的次序执 行3次DES算法。
TDEA3个不同的密钥总有效长度为168比特,加强了 算法的安全性。
1.3.2 IDEA算法
国际数据加密算法IDEA是瑞士的著名学者提出的。 IDEA是在DES算法的基础上发展起来的一种安全 高效的分组密码系统。 IDEA密码系统的明文和密文长度均为64比特,密 钥长度则为128比特。其加密由8轮类似的运算和 输出变换组成,主要有异或、模加和模乘3种运算。
密钥长度越大,安全性也就越高,但相应的计算机速 度也就越慢。由于高速计算机的出现,以前认为已经 很具有安全性的512位密钥长度已经不再满足人们的 需要。1997年,RSA组织公布当时密钥长度的标准 是个人使用768位密钥,公司使用1024位密钥,而一 些非常重要的机构使用2048位密钥。
1.4 加密技术的典型应用
返回本节目录
一个较为成熟的密码体系,其算法应该是公开的,而 密钥是保密的。
在加密系统的设计中,密钥的长度是一个主要的设计 问题。一个2位数字的密钥意味着有100种可能性,一 个3位数字的密钥意味着有1000种可能性,一个6位数 字的密钥意味着有100万种可能性。密钥越长,加密 系统被破译的几率就越低。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2 密码算法
2.2.2 RSA算法
2.RSA算法举例
产生密钥
①设选择了两个素数,p=7,q=17。 ②计算出n=p*q=7×17=119 ③计算出φ=(p-1)*(q-1)=(7-1)(17-1)=96。 ④从[0,95]中选择一个与96互素的数e。选e=5。 得5*d=1 mod 96解出d。不难得出,d=77,因为 e*d=5×77=385=4×96 + 1=1 mod 96。 ⑤ 公开密钥PK={e,n}={5,119}, 秘密密钥SK={d,n}={77,119}。
密码技术
密码学
包括两部分:数据加密和密码破译 数据加密:对信息进行加密和解密的技 术 加密算法,解密算法,密钥管理技术 密码破译:攻破加密信息的技术 破解加密信息,破解密钥
密码
数据加密的基本概念:
明文(plaintext,P):未加密的信息或数据 密文(ciphertext,C)加密的信息或数据 加密算法(E):将明文转化为密文的处理过程 解密算法(D)将密文转化为明文的处理过程 加密密钥(KE)控制加密过程的一种信息或数据 解密密钥(KD)控制解密过程的一种信息或数据 加密过程:C=E(KE,P), 解密过程:P=D(KD,C)
对DES的评述
DES算法存在的问题与挑战 55次尝试 强力攻击:2 47次尝试 差分密码分析法:2 43次尝试 线性密码分析法:2
DES搜索速度估算
密钥长度(bit) 40 48 56 64 72 80 88 96 112 128 穷举时间 78秒 5 小时 59天 41年 10,696年 2,738,199年 700,978,948年 179,450,610,898年 11,760,475,235,863,837年 770,734,505,057,572,442,069年
②计算φ(n)。计算出n的欧拉函数φ(n)=(p-1)(q-1), φ(n)定义为不超过n并与n互素的数的个数。 ③ 选择 e。用户从[0, φ(n) - 1]中选择一个与φ(n)互素的 数e作为公开的加密指数。 ④ 计算d。计算出满足下式的d, ed= 1 modφ(n) 作为解密指数。
⑤ 得出所需要的公开密钥和秘密密钥: 公开密钥(即加密密钥)PK {e, n} 秘密密钥(即解密密钥)SK {d, n}
64位明文 DES算法 64位密文
64位密钥(56位有效)
DES的结构图
明文输入(64位码) 初始变换IP
乘积变换
逆初始变换IP-1
密文输出(64位码)
DES 加 密 标 准
输入(64位)
初始变换IP
58 60 62 64 57 59 61 63
50 52 54 56 49 51 53 55
42 44 46 48 41 43 45 47
RSA算法
2.RSA算法举例
现在设明文 X为19。公开密钥={5,119},私有密钥={77,119} 加密运算过程 2476099 195= 119 明文 =20807 及余数 66 密文 解密运算过程 1.27…×10140
6677= 密文
119
=1.06×10138 及余数 明文 19
2.2.2 3、RSA算法的安全性
RSA算法
RSA的安全性依赖于大数分解困难。公钥和私钥 都是两个大素数( 大于 100个十进制位)的函数。 据猜测,从一个密钥和密文推断出明文的难度等同于 分解两个大素数的积。
目前, RSA的一些变种算法已被证明等价于大数分解。 不管怎样,分解n是最显然的攻击方法。现在,人们 已能分解140多个十进制位的大素数。因此,模数n须 选大一些,因具体适用情况而定。
EPK(DSK(X)) = X不能用PK解密 在计算机上可以容易地产生成对的PK和SK 从已知的PK不可能推导出SK,即从PK到SK 是“计算上不可能的”。
加密和解密算法都是公开的。
RSA算法相关概念
1、什么是“素数”?
2、什么是“互质数”(或“互素数” ) 3、什么是模指数运算?
互质数判别方法(不限于此)
乘积变换
Li-1
乘积变换中的一次迭代
64位密钥 置换选择1 C0(28位) 循环左移 C1(28位) D0(28位) 循环左移 D1(28位) (56位) 循环左移 Ci(28位) 循环左移 Di(28位) (56位)
密钥表的计算逻辑
循环左移: 1 1 2 1 3 2 4 2 5 2 6 2 7 2 8 2 9 10 11 12 13 14 15 16 1 2 2 2 2 2 2 1
传统加密算法
3、异或加密法
异或规则: 0 xor 1=1 1 xor 0=1 1xor 1=0 0 xor 0=0
异或规律:假如X xor Y=Z 则有X xorZ=Y Zxor Y=X
举例:
X=1011 0110 Y=0110 1101 Z=1101 1011
应用
原文:Who are you 密钥:123123123
明文 加密 E
密文
解密后的明文 解密 D
k
k
密 钥 产生器
加密和解密表示为: EK(M)=C DK(C)=M 解密算法是加密算法的 逆运算 加密密钥和解密密钥相 同; 加密算法强度高; 密钥传递需专用通道;
DES算法
为二进制编码数据设计的,可以对计算机数据进行密 码保护的数学运算。DES的保密性仅取决于对密钥的保 密,而算法是公开的。 64位明文变换到64位密文,密钥64位,实际可用密钥 长度为56位。
2.公开密钥密码体制
每个用户产生一对密钥PK和SK
基 本 思 想
加密密钥(即公开密钥)PK 公开
解密密钥(即私有密钥)SK 保密 加密算法E和解密算法D也都是公开
私有密钥SK由公开密钥PK决定,但 却不能根据PK计算出SK
2.公开密钥密码体制
公 开 密 钥 算 法 描 述
DSK(EPK(X)) = X EPK(DSK(X)) = X
DES的发展
.三重DES
三重DES (Triple DES)是Tuchman提出的,并在 1985 年成为美国的一个商用加密标准[RFC 2420]。三重DES使 用两个(或三个)密钥,执行三次DES算法。 其做法有许多的方式: DES-EEE3 DES-EDE3 DES-EEE2 DES-EDE2,
密码破译技术
已知密文:攻击者仅仅掌握密文,试图破译对 应的明文,加密算法和密钥 已知明文:攻击者掌握了大量的明文和对诮的 采用相同加密算法和密钥加密的密文,试图破 译加密这些密文的算法和密钥 选择明文:攻击者可以向被攻击的加密系统提 交无数个选择的明文并查对生成的密文,试图 破译加密系统的加密算法和密钥
传统加密算法
1、替换密码: 如凯撒密码
举例:
明码表 A B C D E F G H I J K L M N O P QRSTUVWXYZ 密码表D E F G H I J K L M N O P Q R S TUVWXYZABC 明文 F O R E S T 密文 IRUHVW
34 36 38 40 33 35 37 39
26 28 30 32 25 27 29 31
18 20 22 24 17 19 21 23
10 12 14 16 9 11 13 15
2 4 6 8 1 3 5 7
输出(64位) L0(32位) R0(32位)
置换码组 输入(64位)
逆初始变换IP-1
RSA算法 1.算法的描述 (1)RSA公开密钥加、解密算法
设用整数X表示明文, 用整数Y表示密文(X和Y均小于n),
加密算法 加密:Y = Xe mod n
解密算法 解密:X = Yd mod n
RSA算法 1.算法的描述 (2)RSA密钥的产生
①计算n。秘密地选择两个大素数p和q,n= pq。n称为 RSA算法的模数。
置换选择2
K1
(48位)
置换选择2
Ki
(48位)
对DES的评述
对DES攻击结果及其启示 1997年1月28日美国RSA数据安全公司悬赏 “秘密密钥挑战”竞赛 48位的RC5 313小时/3500台计算机 1997年3月13日Rocke Verser 设计一个攻击 程序(DESCHALL),参加的志愿者有78516 个,第96天(6月17日晚10:39)Michael Sanders破译成功,获1万美圆奖金。搜索量 为24.6%。
32 31 30 29 28 27 26 25
输出(64位)
左32位
Li-1
右32位
乘积变换 Ri-1 选择
64位密钥
48位(明文) 模2加 +++++…+++++ 48位(密钥) 8组6位码 S1 S2
作第i次迭代的 密钥 计算机子密钥Ki 程序表 选择函数 输入:6位 输出:4位
S8
32位 置换 32位 模2加+++++...++++++ 32位 Ri-1 Li 左32位 Ri 右32位
密码系统
明文用M或P表示,密文用C表示。加密函 数E作用于M得到密文C。 可用数学公式表示: EK(M)=C 相反地,解密函数D作用于C产生M: DK(C)=M 先加密后再解密,原始的明文将恢复,故下 面的等式必须成立: DK(EK(M))=M
密码系统
密码编码学与密码分析学合起来即为密 码学。 密码编码学是密码体制的设计学,而密 码分析学则是在未知密钥的情况下从密 文推演出明文或密钥的技术。