460 likes | 554 Views
信 息 系 统 安 全. 第二讲 传统密码 张焕国 武汉大学计算机学院. 目 录. 1 、 信息系统安全 的基本概念 2 、 密码学 (1) 3 、 密码 学 (2) 4 、操作系统安全 (1) 5、 操作系统安全 (2) 6 、数据库安全 (1) 7、数据库 安全 (2) 8、可信计算 (1) 9、可信计算 (2). 前言. 硬件结构安全和操作系统安全是基础,密码、网络安全等技术是关键技术。 密码技术是一门古老的技术; 战争的刺激和科学技术的发展推动了密码学的发展。 计算机系统的广泛应用为密码学的应用开辟了广阔的天地 。.
E N D
信 息 系 统 安 全 第二讲 传统密码 张焕国 武汉大学计算机学院
目 录 1、信息系统安全的基本概念 2、密码学(1) 3、密码学(2) 4、操作系统安全(1) 5、操作系统安全(2) 6、数据库安全(1) 7、数据库安全(2) 8、可信计算(1) 9、可信计算(2)
前言 • 硬件结构安全和操作系统安全是基础,密码、网络安全等技术是关键技术。 • 密码技术是一门古老的技术; • 战争的刺激和科学技术的发展推动了密码学的发展。 • 计算机系统的广泛应用为密码学的应用开辟了广阔的天地。
一、密码学的基本概念 1、密码的基本思想:是伪装信息,使未授权 者不能理解它的真实含义。所谓伪装就是对信息进行一组可逆的数学变换。伪装前的原始信息称为明文, 伪装后的信息称为密文,伪装的过程称为加密。去掉伪装还原明文的过程称为解密。加密在加密密钥(Key)的控制下进行。解密在解密密钥的控制下进行。用于对数据加密的一组数学变换称为加密算法。用于对密文解密的一组数学变换称为解密算法,而且解密算法是加密算法的逆。
2、密码体制(Cryptosystem)的构成 攻击者 加 密 算 法 解 密 算 法 明 文 M C 信 道 C M 明 文 Ke Kd 密钥 K=<Ke , Kd> 解密钥 加密钥
3、密码体制的分类 • 按密钥数量划分: ⑴ 传统密码: Ke= Kd ⑵ 公开密钥密码: Ke ≠ Kd,且由Ke不能计算出 Kd 。这样公开加密钥Ke,不会暴露解密钥Kd ,于是便可以将Ke公开,故称公开密钥密码。
3、密码体制的分类 • 按加密的数据处理方式划分: ⑶ 序列密码: ①明文、密文、密钥以位(字符)为单位加解密; ②模型 ③核心密码主流; ④商用典型密码:RC4 种子密钥 密钥序列 产生器 密钥序列 密文 明文
3、密码体制的分类 ⑷ 分组密码: ①明文、密文、密钥以分组为单位加解密; ②商业密码的主流: ③典型密码: DESIDEA EES AES SMS4
3、密码体制的分类 ⑸ 各类密码的优缺点: ①传统密码: 优点:安全、快速; 缺点:密钥分配困难,不易实现数字签名; ②公钥密码: 优点:密钥分配容易、容易实现数字签名; 缺点:加解密慢,密钥产生困难。 ③公钥密码与传统密码结合: 利用公钥密码分配传统密码的密钥,用传统密码加密数据。 公钥密码用于认证,传统密码用于加密。
3、密码体制的分类 ⑹ 演化密码 1、演化密码的概念 • 目前的密码都是一种加密算法固定的密码。 例如: DES AES RSA ECC • 加密的过程可表为: C0 =E(M0 , K0), C1 =E(M1 , K1), ┅ Cn =E(Mn , Kn)。
3、密码体制的分类 ⑹ 演化密码 如果使加密过程中加密算法E不断变化,即 C0 =E 0 (M0 , K0), C1 =E 1 (M1 , K1), ┅ Ci =E i (Mi , Ki),┅ Cn =E n (Mn , Kn) 则称为加密算法可变的密码。 • 由于加密算法在加密过程中可不断变化,显然可以极大地提高密码的强度。 • 若能使加密算法朝着越来越好的方向变化,密码就成为一种自发展、自完善的密码,我们称为演化密码。
3、密码体制的分类 ⑹ 演化密码 2、 通过演化计算设计密码 • 设E –τ为初始加密算法,则演化过程从E–τ开始,经历E–τ+1 ,E –τ+2,┅,E–1,最后变为 E0。由于E 0的安全强度已经达到实际使用的要求,可以实际应用。 我们称这一过程成为“ 十月怀胎”,E–τ为“ 初始胚胎”,E 0为“ 一朝分娩的新生加密算法”。 • 设S(E)为加密算法E的强度函数,则演化设计过程可表为: E –τ ,E –τ+1 ,E –τ+2,┅,E –1,E 0 S( E –τ )<S( E –τ+1 )<S(E –τ+2)<,┅,<S(E –1)<S( E 0 )
3、密码体制的分类 ⑹ 演化密码 3、密码演化全过程 E –τ →E –τ+1 →E –τ+2→ ┅ →E 0 →E 1 → ┅ →E n S(E –τ )< S(E –τ+1 )< ┅ < S(E 0 ) ≤S(E 1 ) ≤ ┅ ≤S(E n ) • E –τ →E –τ+1 → ┅ →E –1为设计演化阶段。 • E 0是密码已经成熟的标志。 • E 0 →E 1 →E 2→ ┅ →En为密码的工作阶段,而且仍不断地发展变化越变越好。
3、密码体制的分类 ⑹ 演化密码 4、演化密码是实现密码设计自动化的有效方法。 • 密码设计自动化是人们长期追求的目标 • 目前密码的设计主要是密码专家的手工劳动 • 演化密码是实现密码设计自动化的有效方法 演化密码图示 设计阶段 工作阶段 初始胚胎 新生算法 E –τ E –τ+1 E 0 E 1 E n S(E –τ) S(E –τ+1) S(E 0) S(E 1) S(E n) < < < ≤ ≤ ≤
4、新型密码 ⑴量子密码 ①在唯密文攻击下绝对安全的密码。 ②逐步走向实用。 ③2007年我国宣布,国际上首个量子密码通信网络由我国科学家在北京测试运行成功。这是迄今为止国际公开报道的唯一无中转、可同时、任意互通的量子密码通信网络,标志着量子保密通信技术从点对点方式向网络化迈出了关键一步。
4、新型密码 ⑵DNA密码 • DNA密码基于生物学中的某种困难问题。 • 由于DNA密码的安全不依赖于计算困难问题,所以不管未来的电子计算机、量子计算机和DNA计算机具有多么强大的计算能力,DNA密码对于它们的计算攻击都是免疫的 。
5、密码学的组成 ①研究密码编制的科学称为密码编制学(Cryptography) ②研究密码破译的科学称为密码分析学(Cryptanalysis) ③而密码编制学和密码分析学共同组成 密码学(Cryptology)。
6、密码分析 ①如果能够根据密文系统地确定出明文或密钥,或者能够根据明文-密文对系统地确定出密钥,则我们说这个密码是可破译的。 ②一个密码,如果无论密码分析者截获了多少密文和用什么方法进行攻击都不能被攻破,则称为是绝对不可破译的。
6、密码分析 ③绝对不可破译的密码在理论上是存在的。 ④理论上,任何可实际使用的密码都是可破译的。 ⑤密码学的基本假设: ☆攻击者知道密码算法的细节; ☆攻击者能获得密文; ☆攻击者拥有相当的计算资源。
6、密码分析 1)穷举攻击 密码分析者采用依次试遍所有可能的密钥对所获密文进行解密,直至得到正确的明文;或者用一个确定的密钥对所有可能的明文进行加密,直至得到所获得的密文。 显然,理论上,对于任何实用密码只要有足够的资源,都可以用穷举攻击将其改破。
6、密码分析 2)统计分析攻击 所谓统计分析攻击就是指密码分析者通过分析密文和明文的统计规律来破译密码。统计分析攻击在历史上为破译密码作出过极大的贡献。许多古典密码都可以通过统计分析而破译。
6、密码分析 3)数学分析攻击 所谓数学分析攻击是指密码分析者针对加密算法的数学依据通过数学求解的方法来破译密码。为了对抗这种数学分析攻击,应当选用具有坚实数学基础和足够复杂的加密算法。
6、密码分析 根据占有的数据资源分类: A)仅知密文攻击(Ciphertext-only attack) 所谓仅知密文攻击是指密码分析者仅根据截获的密文来破译密码。因为密码分析者所能利用的数据资源仅为密文,因此这是对密码分析者最不利的情况。
6、密码分析 根据占有的数据资源分类: B)已知明文攻击(Known-plaintext attack) 所谓已知明文攻击是指密码分析者根据已经知道的某些明文-密文对来破译密码。 攻击者总是能获得密文,并猜出部分明文。 计算机程序文件加密特别容易受到这种攻击。
6、密码分析 根据占有的数据资源分类: C)选择明文攻击(Chosen-plaintext attack) 所谓选择明文攻击是指密码分析者能够选择明文并获得相应的密文。 计算机文件加密和数据库加密特别容易受到这种攻击。 这是对攻击者最有利的情况!
二、我国的密码政策 一、我国的密码分级: ①核心密码: 用于保护党、政、军的核心机密。 ②普通密码: 用于保护国家和事企业单位的低于核心机密而高于商业机密的密码信息。 ③商用密码: 用于保护国家和事企业单位的非机密的敏感信息。 ④个人密码: 用于保护个人的隐私信息。 前三种密码均由国家密码管理局统一管理。
二、我国的密码政策 二、我国商的业密码政策 ①统一领导: 国家密码管理局统一领导。 ②集中管理: 国家密码管理局办公室集中管理。 ③定点研制: 研制只允许定点单位进行。 ④专控经营: 经许可的单位才能经营。 ⑤满足使用: 国内各单位都可申请使用。
三、我国商用密码SMS4 一、我国商用密码概况 ⑴ 密码的公开设计原则 密码的安全应仅依赖于对密钥的保密,不依赖于对算法的保密。 ⑵ 公开设计原则并不要求使用时公开所有的密码算法 核心密码不能公布算法; 核心密码的设计也要遵循公开设计原则。 ⑶ 商用密码应当公开算法 ①美国DES开创了公开商用密码算法的先例; ②美国经历DES(公开)→EES(保密)→AES(公开)。 ③欧洲也公布商用密码算法
三、我国商用密码SMS4 ⑷我国的商用密码概况 ●我国在密码技术方面具有优势: 密码理论、密码分析 ●长期以来不公开密码算法,只提供密码芯片 少数专家设计,难免有疏漏; 难于标准化,不利于推广应用。 ●2006年2月我国公布了部分商用密码算法; ☆商用密码管理更科学化、与国际接轨; ☆将促进我国商用密码研究与应用的繁荣。
三、我国商用密码SMS4 二、SMS4密码概况 ①分组密码: 数据分组长度=128位、密钥长度=128位 数据处理单位:字节( 8位),字(32位) ②密码算法结构: 基本轮函数加迭代 对合运算:解密算法与加密算法相同
三、我国商用密码SMS4 二、SMS4密码概况 ②密码算法结构: 128位密钥 128位明文 密钥 扩展 迭代控制 基本轮函数 128位密文
三、我国商用密码SMS4 三、SMS4密码算法 1、基本运算: ① 模2加:⊕,32 比特异或运算 ②循环移位:<<< i ,把32位字循环左移i 位 2、基本密码部件: ① 非线性字节变换部件S盒: ☆ 8位输入、8位输出。 ☆本质上, 8位的非线性置换。 ☆设输入位a,输出位b,表示为: b=S_Box(a) 8位输入 S盒 (置换) 8位输出
三、我国商用密码SMS4 S盒中数据为16进制数
三、我国商用密码SMS4 ☆S盒的置换规则: 以输入的前半字节为行号,后半字节为列号,行列交叉点处的数据即为输出。 举例:设输入为“ef ”,则行号为e,列号为f ,于是S 盒的输出值为表中第e 行和第f 列交叉点的值, Sbox(‘ef’)= ‘84’。 ②非线性字变换:32位字的非线性变换 ▼4个S盒并行置换; ▼设输入字A=(a0,a1,a2,a3),输出字B=(b0,b1,b2,b3), B= (A)=(S_box(a0), S_box(a1), S_box(a2), S_box(a3))
三、我国商用密码SMS4 ②非线性变换:32位字的非线性变换 输入字A 非线性 变换 输出字B 8位输入a0 8位输入a1 8位输入a2 8位输入a3 S盒 (置换) S盒 (置换) S盒 (置换) S盒 (置换) 8位输出b0 8位输出b1 8位输出b2 8位输出b3
三、我国商用密码SMS4 ③字线性部件L变换: ☆ 32位输入、32位输出。 ☆设输入位B,输出位C,表为: C=L(B) ☆运算规则: C=L(B) =B⊕(B<<<2)⊕(B<<<10)⊕(B<<<18) ⊕(B<<<24) ④字合成变换T: ☆由非线性变换τ 和线性变换L 复合而成; ☆T(X)=L(τ(X))。先S盒变换,再L变换。
三、我国商用密码SMS4 3、轮函数F: ☆输入数据:(X0,X1,X2,X3),128位,四个32位字。 ☆输入轮密钥:rk ,32位字。 ☆输出数据:32位字。 ☆轮函数F : F(X0,X1,X2,X3,rk) = X0⊕T( X1⊕ X2⊕ X3⊕rk)
三、我国商用密码SMS4 3、轮函数F: 2 10 18 24 X0 X1 X2 X3 S S S S S rk S S S S S S S S S S S S S S S 输出
三、我国商用密码SMS4 4、加密算法: • 输入明文:(X0,X1,X2,X3),128位,四个字。 • 输入轮密钥:rki,i=0,1,…,31,32个字。 • 输出密文:(Y0,Y1,Y2,Y3),128位,四个字。 • 算法结构:轮函数的32轮迭代,每轮使用一个轮密钥。 • 加密算法 : Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki) = Xi⊕T( Xi+1⊕ Xi+2⊕ Xi+3⊕rki), i=0,1…31 (Y0,Y1,Y2,Y3)=(X35,X34,X33,X32)
三、我国商用密码SMS4 4、加密算法: 明文 X0 X1 X2 X3 X4 X5 X31 X32 X33 X34 X35 Y0 Y1 Y2 Y3 Rk0 F 密文 rk1 F rk31 F
三、我国商用密码SMS4 5、解密算法: • 输入密文:(X0,X1,X2,X3) • 输入轮密钥:rki,i=31,30,…,1,0 • 输出明文:(Y0,Y1,Y2,Y3) • 算法:轮函数的32轮迭代,每轮使用一个轮密钥。 • 解密算法 : Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki) = Xi⊕T( Xi+1⊕ Xi+2⊕ Xi+3⊕rki), i=31,…1,0 (Y0,Y1,Y2,Y3)=(X35,X34,X33,X32)
三、我国商用密码SMS4 6、密钥扩展算法: ①常数FK • 在密钥扩展中使用一些常数 FK0=(A3B1BAC6),FK1=(56AA3350),FK2=(677D9197 ), FK3=(B27022DC)。
三、我国商用密码SMS4 6、密钥扩展算法: ②固定参数CK • 32 个固定参数Cki,i=0,1,2…31 00070e15, 1c232a31, 383f464d, 545b6269, 70777e85, 8c939aa1, a8afb6bd, c4cbd2d9, e0e7eef5, fc030a11, 181f262d, 343b4249, 50575e65, 6c737a81, 888f969d, a4abb2b9, c0c7ced5, dce3eaf1, f8ff060d, 141b2229, 30373e45, 4c535a61, 686f767d, 848b9299, a0a7aeb5, bcc3cad1, d8dfe6ed, f4fb0209, 10171e25, 2c333a41, 484f565d, 646b7279 产生规则:Ckij= (4i+j)×7(mod 256),i=0,1,2…31,j=0,1,…3。
三、我国商用密码SMS4 6、密钥扩展算法: • 输入加密密钥:MK=(MK0,MK1,MK2,MK3) • 输出轮密钥:rki,i=0,1…,30,31 • 中间数据:Ki,i=0,1…,34,35 • 密钥扩展算法: ① (K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3) ② For i=0,1…,30,31 Do iki= Ki+4= Ki⊕T’(Ki+1 ⊕Ki+2 ⊕Ki+3 ⊕CKi) • 说明:T’ 变换与加密算法轮函数中的T 基本相同,只将其中的线性变换L 修改为以下:L’ L’ (B)=B⊕(B<<< 13)⊕(B<<< 23)
三、我国商用密码SMS4 7、实例: • 明文: 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 • 密钥: 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 • 密文: 68 1e df 34 d2 06 96 5e 86 b3 e9 4f 53 6e 42 46 8、安全性 ①国家专业机构设计。算法简洁,以字和字节为处理单位,对合运算,符合当今分组密码主流。 ②专业机构进行了密码分析,因此是安全的。 ③民间学者对21轮SMS4进行了差分密码分析。 ④尚需经过实践检验。
三、我国商用密码SMS4 练习题: 1、分析SMS4在密码结构上与DES和AES有何异同? 2、编程研究SMS4的S盒的以下特性: ①输入改变1位,输出平均改变多少位? ②对于一个输入,连续施加S盒变换,变换多少次时出现输出等于输入? 3、我国公布商用密码算法有何意义?