第四部分
信息保密技术
1.密码学导引
? 密码学是一门研究秘密信息的隐写技术
的学科
? 密码学技术可以使消息的内容对 (除发送
者和接收者以外 )的所有人保密,
? 可以使接收者验证消息的正确性
? 是解决计算机与通信安全问题重要技术
之一,
1.1基本术语 -basic terminology
? 密码技术( Cryptography) — 把可理解
的消息变换成不可理解消息,同时又可
恢复原消息的方法和原理的一门科学或
艺术。
? 明文( plaintext ) --变换前的原始消息
? 密文( ciphertext) --变换后的消息
? 密码( cipher ) --用于改变消息的替换
或变换算法
? 密钥( key) --用于密码变换的,只有发
送者或接收者拥有的秘密消息
? 编码( encipher /encode) --把明文
变为密文的过程
? 译码( decipher /decode)— 把密文变
为明文的过程
? 密码分析( cryptanalysis
/codebreaking)
?在没有密钥的情况下,破解密文的原理与
方法,
? 密码学( cryptology ) --包括加密理
论与解密理论的学科
1.2记号
? Encryption
?把明文变成密文的加密函数
?C = EK(P)
? Decryption
?把密文变成明文的加密函数
?P = EK-1(C)
? key –用于加密或解密的秘密参数,选自
密钥空间 K
? 一般情况下,可以把 密码系统 理解成可
逆的密码算法、密钥空间,即
加密算法,EK; K in K, P -> C
? 及唯一逆算法:
P = EK-1; K in K, C -> P
? 通常密码系统是公开的,只有密钥是秘
密信息
1.3密码学算法的分类
? 密码学算法大致分为,
? 私钥加密算法 (private-key encryption algorithms )
----分组密码,-----流密码
? 公钥加密算法 (public-key encryption algorithms)
? 数字签名算法 (digital signature algorithms )
? 哈希函数 ( hash functions)
1.4对称密码算法
? 在对称密码算法中,发送者与接收者使用
相同的密钥
? 所有传统的加密算法都是对称算法
1.5密码分析(攻击)
? 密码分析学是指在没有加密密钥的情况下,
攻击密文的过程
? 唯密文攻击 (ciphertext only )
--只知道算法与一些密文
--利用统计方法
--需要能够识别明文
1.5密码分析(续)
? 已知明文攻击( known plaintext )
----知道一些明文 /密文对
----利用已知的明文 /密文对进行攻击
? 选择明文攻击( chosen plaintext )
----能够选择明文并得到响应的密文 ----利用
算法的结构进行攻击
? 选择密文攻击( chosen ciphertext )
----能够选择密文并得到对应的明文
----利用对算法结构的知识进行攻击
密码分析(续)
? 选择明文 -密文对攻击( chosen
plaintext-ciphertext )
----能够选择明文并得到对应的密文或选择
密文并得到对应的明文
----利用对算法结构的了解进行攻击
1,6-穷举密钥搜索
? 理论上很简单,对每个密钥进行测试
? 最基本的攻击方法,复杂度有密钥量的大小决定
? 假设可以对正确的明文能够识别
? 假设的时间表,
Key size(bits) Time
(1us/test)
32 35.8mins
40 6.4days
56 1140yeas
64 ~500000yeas
128 5*10^24yeas
20.无条件安全与计算安全
? 无条件安全( unconditional security)
由于密文没有泄露足够多的明文信息,无论
计算能力有多大,都无法由密文唯一确定明
文。
? 计算安全( computational security )
----在有限的计算资源条件下,密文不能破解。
(如破解的时间超过地球的年龄)
2.1 密码技术
? 传统加密体制
– 需要加密的信息称为明文 (Plaintext),这个明文信
息由一个加密函数变换成密文 (Ciphertext),这个
函数以一个密钥 (Key)作为参数,所以可以用
c=E(m,ke)来表达这个 加密过程 。
– 用一个解密函数和解密密钥对密文进行交换,成为
明文,即 m=D(c,kd)。
– m=D(E(m,ke),kd)
– 如果 ke=kd,这种加密体制称为单钥或对称密码体
制 (One-Key or Symmetric Cryptosystem)。
– 如果 ke≠kd,这种加密体制称为双钥或非对称密码
体制 (Two-Key or Asymmetric Cryptosystem)。
加密密钥 ke 解密密钥 kd
c=E(m,ke) m=D(c,kd)
加密方法 E 密文 c 解密方法 D
明文 m 明文 m
传统加密体制的基本过程
2.2 古典加密技术
? 代换密码
– 令 θ表示明文字母表,内有 q个“字母”或“字
符”。设其顺序号是,0,1,?, q-1,可以将
θ映射为一个整数集 Zq={0,1,?, q-1},在加
密时常将明文信息划分为长为 L的信息单元,称
为明文组。以 m表示,如
m=(m1,m2,…,mL),mi∈ Zq
– 令 θ’ 表示 密 文字母表,内有 q’ 个“字母”或
“字符”。设其顺序号是,0,1,?, q’ -1,
可以将 θ’ 映射为一个整数集 Zq’ ={0,1,?,
q’ -1},密文组为 c=(c1,c2,…,cL),ci∈ Zq’
– 代换密码的加密变换是由明文空间到密文空
间的映射 。
f, m→ c,m∈ θ,c∈ θ’
假定函数 f 是一对一的映射,那么,给定密
文 c,有且仅有一个对应的明文组 m,即对
于 f存在逆映射 f -1,使 f -1(c)= f -1(f(m))=m
– 加密变换通常是在密钥控制下进行的,即
c=f(m,k)=Ek(m)
? 单表代换密码
– 单表代换密码是对明文的所有字母都用同一个
固定的明文字母表到密文字母表的映射,即
f,Zq→ Z q
若明文为 m=m0,m1,…, 则相应的密文为
c=c0,c1,… = f(m0),f(m1),…
? 移位代换密码:最简单的一种代换密码,其加密变
换为 Ek(i)=(i+k) mod q 0 ≤ i,j< q,0 ≤k<q
密钥空间元素个数 q,解密变换为:
D(j)= (j-k) mod q
? 例如:凯撒密码变换是对英文 26个字母进行移位代换的
密码,即将每一个字母向前推移 k位。
– 若 q=26,如选择密钥 k=5,则有下述变换:
明文,a b c d e f g h I j k l m n o
密文,F G H I J K L M N O P Q R S T
– 不同的 k将得到不同的密文,如 k=3时,于是对于明文
m=caesar cipher is a shift substitution
经凯撒密码变换后得到的密文,
c=FDHVDU FLSKHU LV D VKLIW VXEVWL WXWLRQ
– 反向利用同一个对应表,就可以很容易地从密文:
c=E(m)=FDHVDU FLSKHU LV D VKLIW VXEVWL WXWLRQ
中恢复出原来的明文:
m=caesar cipher is a shift substitution
? 乘数密码:将明文字母表按序号每隔 k位取出一个字母排
列而成密文 (字母表首尾相连 ),也称为采样密码。加密变
换为 Ek(i)= ik mod q 0 ≤ j< q 当 k与 q互素时,才是一
一对应的
– 例如,英文字母表 q=26,选 k=9,则由明文密文字母
对应表
序号,
明文,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
密文,A J S B K T C L U D M V E N W F O X G P Y H
Q Z I R
于是,对明文,cipher
有密文,SUFLKX
? 仿射密码:将移位密码和乘数密码进行组合就
可以得到更多的选择方式获得密钥。按
Ek(i)= ik1+k0 mod q k1,k0 ∈ Zq
– 当 k0 =0时就得到乘数密码,当 k1 =1时就得到移位
密码
? 单表代换不能非常有效的抵抗密码攻击,因为
语言的特征仍能从密文中被提取出来。为此可
以通过运用不止一个代换表来进行代换,从而
掩盖了密文的一些统计信息。
? 多表代换密码
– 一系列(两个以上)的代换表依次对明文信息
的字母进行代换的加密方法。令明文字母表为
Zq,令 Π =(п 1,п 2,… )为代换序列,明文字母
序列为 m=m1,m2,…,则相应的密文字母序列为
c=Ek(m)= Π(m)= п 1(m1),п 2(m2),…,若 Π 为
非周期的无限序列,则相应的密码为非周期多
表代换密码,否则为周期多表代换密码。
– 维吉尼亚是法国的密码专家,以他的名字命名
的维吉尼亚密码加密算法是多表密码的典型代
表。方法如下:
? 设密钥 k= k1,k2,…,kn,明文 m=m1,m2,…,mn,
加密变换为 Ek(m)=c1,c2,…,cn,其中
ci ≡ mi + ki mod q i=1,2,…,n
解密变换为
mi ≡ ci - ki mod q i=1,2,…,n
? 例如,令 q=26,明文 m=polyalphabetic
cipher,k=RADIO,即周期为 5。首先将 m分
解成长为 5的序列:
polya lphab eticc ipher
每一段用密钥 k=RADIO加密的密文:
C=GOOGO CPKTP NTLKQ ZPKMF
? 置换密码
– 思路:不改变明文字符,但通过重排而更改
它们的位置,又称为换位密码。
– 置换只不过是一个简单的换位。每个置换都
可以用一个置换矩阵 Ek表示。每个置换都有
一个与之对应的逆置换 Dk
– 对明文 L长字母组中的字母位置进行重新排
列,而每个字母本身并不改变。
– 令明文 m=m1,m2,…,mL,令置换矩阵所决定的置换为
π,则加密置换
c=Ek(m)=(c1,c2,?,cL)=mπ (1),mπ (2),? mπ (L)
解密置换
d=Dk(c)=(cπ -1 (1),cπ -1 (2),…,cπ -1 (L) )
– 例如,置换密码。给定明文为 the simplest possible
transposition ciphers,将明文分成长为 L=5的段,
– M1=thesi m2=mples m3=tposs m4=iblet
– M5=ransp m6=ositi m7=oncip m8=hersx
– 最后一段长不足 5,加添一个字母 x。
01234 01234 01234 01234
01234 01234 01234 01234
– 将各段的字母序号按下述置换矩阵进行换位:
– 得到密文如下:
STIEH EMSLP STSOP EITLB SRPNA TOIIS
IOPCN SHXRE
– 利用下述置换矩阵
– 可将密文恢复为明文
– L=5时可能的置换矩阵总数为 5! =120。一般为 L!
个
k
0 1 2 3 4E
1 4 3 0 2
???
????k 0 1 2 3 4D
3 0 4 2 1?
2.3 现代加密技术
? 对称加密技术
– 对称加密技术包括任何加密形式,其中同一个密钥即用于加
密又用于解密所涉及的文本,被称为对称密码,这点也是对
非对称密码而言 。
? 序列加密
– 将待加密的明文分成连续的字符或比特,然后用相应的密码
流对其进行加密。
– 主要原理:通过随机数发生器产生性能优良的伪随机序列
(密钥流),使用该序列加密信息流(逐比特加密),得到
密文序列。
? 分组加密
– 将待处理的明文按照固定长度进行分组(若干个字符一组),
解密的处理则是在固定长度的密钥的控制下,以一个分组为
单位独立进行,得出一个固定长度的对应于明文分组的结果。
– 分组加密算法介绍
? DES(Data Encryption Standard)算法
– 迄今为止世界上最为广泛使用和流行的分组加密算法。
– 一种单钥密码算法,其基本思想是:将二进制序列的
明文分成每 64位一组,用长为 56的密钥对其进行 16轮
代换和换位加密,最后形成密文。
? IDEA(International Data Encryption Algorithm)
算法
– 即国际数据加密算法,被认为是现今最好的最安全的
分组加密算法之一。
– 以 64位的明文块进行分组,密钥是 128位长,此算法
可用于加密和解密。
– IDEA用了混淆 (Confusion)和扩散 (Diffusion)等操作。
混淆是指加密算法使密文和明文及密钥关系十分复杂,
无法从数学上描述,或无法从统计上去分析。扩散是
指明文中的任一位以及密钥中的任一位,对全体密文
位都有影响,经由此种扩散作用,可以隐藏许多明文
在统计上的特性,从而增加密码的安全。
– 算法设计的思想:在不同的代数组中的混合运算,主
要有三种运算:异或、模加、模乘。
? 其他算法
– SAFER
– Blowfish
– Skipjack
– Rijndael等
– 分组密码的工作模式
为了满足各种应用环境,分组加密算法有着不同的
工作模式,常用的有四种,ECB,CBC,CFB、
OFB
? ECB(Electronic Code Book,电子密码本 )
– 使用同一个密钥简单地将每个明文块一个接一个地进行加
密。
? CBC(Cipher Block Chaining,密码分组链接 )
– 每个明文块在加密前先于前一个密文块进行, 异或, 运算,
从而增加了复杂程度,可以使某些攻击更难以实现。
? CFB(Cipher Feed Back,密码反馈 )
– 密文移位与下一个明文进行异或
? OFB(Output Feed Back,输出反馈 )
– 与 CBC相似,不同的是异或的量是独立生成的
? 非对称加密(公钥加密)
– 公钥密码体制是指一个加密系统的加密密钥
和解秘密钥是不一样的,或者说不能有一个
推出另一个。
– 一个称为公钥进行加密,是公开的;一个称
为私钥用于解密,是保密的。其中从公钥计
算私钥市难解的。
– 公开密钥加密算法的核心是运用一种特殊的
数学函数 ——单向陷门函数,即从一个方向
求值是容易的,而其逆向计算却很难,以至
于在实际上是不可行的。
– 单向陷门函数
? 设 f是一个函数,如果对任意给定的 x,计算 y,使得 y
= f(x)是容易计算的,但对于任意给定的 y,计算 x,
使得 x = f -1(y)是难解的,即求 f的逆函数是难解的,
则称 f是一个单向函数。
? 设 f是一个函数,t是与 f有关的一个参数,对于任意
给定的 x,计算 y,使得 y = f(x)是容易的,如果当不
知参数 t时,计算 f的逆函数是难解的,但当知道参数
t时,计算 f的逆函数是容易的,则称 f是一个单向陷
门函数,参数 t称为陷门。
? 在公钥加密算法中,加密变换就是一个单向陷门函
数,知道陷门的人可以容易地进行解密变换,而不
知道陷门的人则无法进行有效的解密变换。
– 常见的公钥密码算法
? 背包算法
? McEliece算法
? RSA算法
? Rabin(RSA的变种算法 )
? 基于离散对数难题的 ElGamal算法
? 最新的椭圆曲线算法
已被破译
比较安全的公
开密钥算法
2.4 信息隐藏技术
? 信息隐藏和信息加密的异同
– 相同之处:都是致力于信息的保密技术。
– 不同之处 ——设计思想
?, 密码术, 主要通过设计加密技术,使有用的信息变为看
上去是无用的乱码,使保密信息不可读,但是对于非授权
者来说,虽然他无法获知保密信息的具体内容,却能意识
到保密信息的存在,知道所截获的信息是重要信息,从而
引起攻击者的兴趣。
?, 隐藏术, 致力于通过设计精妙的方法,使得非授权者根
本无从得知保密信息的存在与否。它将有用的信息隐藏在
其他信息中,使攻击者无法发现,不仅实现了信息的保密,
也保护了通信本身。
? 信息隐藏的最大优势在于它并不限制对公开信息的存取和
访问,而是致力于秘密数据的安全保密性。
– 秘密信息( Secret Message):待隐藏的信
息称为秘密信息,它可以是版权信息或秘密
数据,也可以是一个序列号。
– 载体信息( Cover Message):公开信息称
为载体信息,如视频、音频信息通过嵌入算
法( Embedding Algorithm)将秘密信息隐
藏于公开信息中,而隐蔽载体(隐藏有秘密
信息的公开信息)则通过信道
( Communication Channel)传递,然后检
测器( Detector)从隐蔽载体中恢复 /检测出
秘密信息。
? 信息隐藏的原因
– 多媒体信息本身存在很大的冗余性,未压缩
的多媒体信息的编码效率很低,所以可以将
某些信息嵌入到多媒体信息中进行秘密传送
是完全可行的,并不会影响到多媒体信息本
身的传送和使用。
– 人眼和人耳本身对某些信息都有一定的掩蔽
效应,如人眼对灰度的分辨率只有几十个灰
度级,对边沿附近的信息不敏感等。利用这
些特点,可以将信息很好的隐藏而不被察觉。
? 信息隐藏的特点:
– 不破坏载体的正常使用。
– 载体具有某种冗余性。
– 鲁棒性:不因数据文件的某种改动而导致隐藏
信息丢失的能力。
– 不可检测性:指隐蔽载体与原始载体具有一致
的特性,使非法拦截者无法判断是否有隐蔽信
息。
– 透明性:利用人类视觉系统或听觉系统属性,
经过一系列隐藏处理,使目标数据没有明显的
降质,而隐蔽的数据却无法看见或听见。
– 安全性:隐藏算法有较强的抗攻击能力。
– 自恢复性
? 信息隐藏分支
– 隐写术( Steganography)
? 目的在于隐藏信息的存在
– 数字水印( Digital Watermark)
? 为解决数字产品的侵权问题提供了一个有效的解
决途径。
? 通过在数字作品中加入一个不可察觉的标识信息,
需要时可以通过算法提出标识信息来进行验证,
作为指证非法复制的证据。
? 数字图像水印技术、数字文本水印技术、数字视
频水印技术、数字音频水印技术等
? 信息隐藏的攻击
– 隐藏技术和隐藏攻击技术
隐藏技术 主要研究向载体对象中嵌入秘密信息,
隐藏攻击技术 主要研究对隐藏信息的检测、破解秘密
信息或通过对隐藏对象处理从而破坏隐藏的信息和阻
止秘密通信 。
– 信息隐藏攻击者的目的
? 检测隐藏信息的存在性
? 估计隐藏信息的长度和提取隐藏信息
? 在不对隐藏对象作大的改动的前提下,删除或扰乱
隐藏对象中的嵌入信息。
信息保密技术
1.密码学导引
? 密码学是一门研究秘密信息的隐写技术
的学科
? 密码学技术可以使消息的内容对 (除发送
者和接收者以外 )的所有人保密,
? 可以使接收者验证消息的正确性
? 是解决计算机与通信安全问题重要技术
之一,
1.1基本术语 -basic terminology
? 密码技术( Cryptography) — 把可理解
的消息变换成不可理解消息,同时又可
恢复原消息的方法和原理的一门科学或
艺术。
? 明文( plaintext ) --变换前的原始消息
? 密文( ciphertext) --变换后的消息
? 密码( cipher ) --用于改变消息的替换
或变换算法
? 密钥( key) --用于密码变换的,只有发
送者或接收者拥有的秘密消息
? 编码( encipher /encode) --把明文
变为密文的过程
? 译码( decipher /decode)— 把密文变
为明文的过程
? 密码分析( cryptanalysis
/codebreaking)
?在没有密钥的情况下,破解密文的原理与
方法,
? 密码学( cryptology ) --包括加密理
论与解密理论的学科
1.2记号
? Encryption
?把明文变成密文的加密函数
?C = EK(P)
? Decryption
?把密文变成明文的加密函数
?P = EK-1(C)
? key –用于加密或解密的秘密参数,选自
密钥空间 K
? 一般情况下,可以把 密码系统 理解成可
逆的密码算法、密钥空间,即
加密算法,EK; K in K, P -> C
? 及唯一逆算法:
P = EK-1; K in K, C -> P
? 通常密码系统是公开的,只有密钥是秘
密信息
1.3密码学算法的分类
? 密码学算法大致分为,
? 私钥加密算法 (private-key encryption algorithms )
----分组密码,-----流密码
? 公钥加密算法 (public-key encryption algorithms)
? 数字签名算法 (digital signature algorithms )
? 哈希函数 ( hash functions)
1.4对称密码算法
? 在对称密码算法中,发送者与接收者使用
相同的密钥
? 所有传统的加密算法都是对称算法
1.5密码分析(攻击)
? 密码分析学是指在没有加密密钥的情况下,
攻击密文的过程
? 唯密文攻击 (ciphertext only )
--只知道算法与一些密文
--利用统计方法
--需要能够识别明文
1.5密码分析(续)
? 已知明文攻击( known plaintext )
----知道一些明文 /密文对
----利用已知的明文 /密文对进行攻击
? 选择明文攻击( chosen plaintext )
----能够选择明文并得到响应的密文 ----利用
算法的结构进行攻击
? 选择密文攻击( chosen ciphertext )
----能够选择密文并得到对应的明文
----利用对算法结构的知识进行攻击
密码分析(续)
? 选择明文 -密文对攻击( chosen
plaintext-ciphertext )
----能够选择明文并得到对应的密文或选择
密文并得到对应的明文
----利用对算法结构的了解进行攻击
1,6-穷举密钥搜索
? 理论上很简单,对每个密钥进行测试
? 最基本的攻击方法,复杂度有密钥量的大小决定
? 假设可以对正确的明文能够识别
? 假设的时间表,
Key size(bits) Time
(1us/test)
32 35.8mins
40 6.4days
56 1140yeas
64 ~500000yeas
128 5*10^24yeas
20.无条件安全与计算安全
? 无条件安全( unconditional security)
由于密文没有泄露足够多的明文信息,无论
计算能力有多大,都无法由密文唯一确定明
文。
? 计算安全( computational security )
----在有限的计算资源条件下,密文不能破解。
(如破解的时间超过地球的年龄)
2.1 密码技术
? 传统加密体制
– 需要加密的信息称为明文 (Plaintext),这个明文信
息由一个加密函数变换成密文 (Ciphertext),这个
函数以一个密钥 (Key)作为参数,所以可以用
c=E(m,ke)来表达这个 加密过程 。
– 用一个解密函数和解密密钥对密文进行交换,成为
明文,即 m=D(c,kd)。
– m=D(E(m,ke),kd)
– 如果 ke=kd,这种加密体制称为单钥或对称密码体
制 (One-Key or Symmetric Cryptosystem)。
– 如果 ke≠kd,这种加密体制称为双钥或非对称密码
体制 (Two-Key or Asymmetric Cryptosystem)。
加密密钥 ke 解密密钥 kd
c=E(m,ke) m=D(c,kd)
加密方法 E 密文 c 解密方法 D
明文 m 明文 m
传统加密体制的基本过程
2.2 古典加密技术
? 代换密码
– 令 θ表示明文字母表,内有 q个“字母”或“字
符”。设其顺序号是,0,1,?, q-1,可以将
θ映射为一个整数集 Zq={0,1,?, q-1},在加
密时常将明文信息划分为长为 L的信息单元,称
为明文组。以 m表示,如
m=(m1,m2,…,mL),mi∈ Zq
– 令 θ’ 表示 密 文字母表,内有 q’ 个“字母”或
“字符”。设其顺序号是,0,1,?, q’ -1,
可以将 θ’ 映射为一个整数集 Zq’ ={0,1,?,
q’ -1},密文组为 c=(c1,c2,…,cL),ci∈ Zq’
– 代换密码的加密变换是由明文空间到密文空
间的映射 。
f, m→ c,m∈ θ,c∈ θ’
假定函数 f 是一对一的映射,那么,给定密
文 c,有且仅有一个对应的明文组 m,即对
于 f存在逆映射 f -1,使 f -1(c)= f -1(f(m))=m
– 加密变换通常是在密钥控制下进行的,即
c=f(m,k)=Ek(m)
? 单表代换密码
– 单表代换密码是对明文的所有字母都用同一个
固定的明文字母表到密文字母表的映射,即
f,Zq→ Z q
若明文为 m=m0,m1,…, 则相应的密文为
c=c0,c1,… = f(m0),f(m1),…
? 移位代换密码:最简单的一种代换密码,其加密变
换为 Ek(i)=(i+k) mod q 0 ≤ i,j< q,0 ≤k<q
密钥空间元素个数 q,解密变换为:
D(j)= (j-k) mod q
? 例如:凯撒密码变换是对英文 26个字母进行移位代换的
密码,即将每一个字母向前推移 k位。
– 若 q=26,如选择密钥 k=5,则有下述变换:
明文,a b c d e f g h I j k l m n o
密文,F G H I J K L M N O P Q R S T
– 不同的 k将得到不同的密文,如 k=3时,于是对于明文
m=caesar cipher is a shift substitution
经凯撒密码变换后得到的密文,
c=FDHVDU FLSKHU LV D VKLIW VXEVWL WXWLRQ
– 反向利用同一个对应表,就可以很容易地从密文:
c=E(m)=FDHVDU FLSKHU LV D VKLIW VXEVWL WXWLRQ
中恢复出原来的明文:
m=caesar cipher is a shift substitution
? 乘数密码:将明文字母表按序号每隔 k位取出一个字母排
列而成密文 (字母表首尾相连 ),也称为采样密码。加密变
换为 Ek(i)= ik mod q 0 ≤ j< q 当 k与 q互素时,才是一
一对应的
– 例如,英文字母表 q=26,选 k=9,则由明文密文字母
对应表
序号,
明文,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
密文,A J S B K T C L U D M V E N W F O X G P Y H
Q Z I R
于是,对明文,cipher
有密文,SUFLKX
? 仿射密码:将移位密码和乘数密码进行组合就
可以得到更多的选择方式获得密钥。按
Ek(i)= ik1+k0 mod q k1,k0 ∈ Zq
– 当 k0 =0时就得到乘数密码,当 k1 =1时就得到移位
密码
? 单表代换不能非常有效的抵抗密码攻击,因为
语言的特征仍能从密文中被提取出来。为此可
以通过运用不止一个代换表来进行代换,从而
掩盖了密文的一些统计信息。
? 多表代换密码
– 一系列(两个以上)的代换表依次对明文信息
的字母进行代换的加密方法。令明文字母表为
Zq,令 Π =(п 1,п 2,… )为代换序列,明文字母
序列为 m=m1,m2,…,则相应的密文字母序列为
c=Ek(m)= Π(m)= п 1(m1),п 2(m2),…,若 Π 为
非周期的无限序列,则相应的密码为非周期多
表代换密码,否则为周期多表代换密码。
– 维吉尼亚是法国的密码专家,以他的名字命名
的维吉尼亚密码加密算法是多表密码的典型代
表。方法如下:
? 设密钥 k= k1,k2,…,kn,明文 m=m1,m2,…,mn,
加密变换为 Ek(m)=c1,c2,…,cn,其中
ci ≡ mi + ki mod q i=1,2,…,n
解密变换为
mi ≡ ci - ki mod q i=1,2,…,n
? 例如,令 q=26,明文 m=polyalphabetic
cipher,k=RADIO,即周期为 5。首先将 m分
解成长为 5的序列:
polya lphab eticc ipher
每一段用密钥 k=RADIO加密的密文:
C=GOOGO CPKTP NTLKQ ZPKMF
? 置换密码
– 思路:不改变明文字符,但通过重排而更改
它们的位置,又称为换位密码。
– 置换只不过是一个简单的换位。每个置换都
可以用一个置换矩阵 Ek表示。每个置换都有
一个与之对应的逆置换 Dk
– 对明文 L长字母组中的字母位置进行重新排
列,而每个字母本身并不改变。
– 令明文 m=m1,m2,…,mL,令置换矩阵所决定的置换为
π,则加密置换
c=Ek(m)=(c1,c2,?,cL)=mπ (1),mπ (2),? mπ (L)
解密置换
d=Dk(c)=(cπ -1 (1),cπ -1 (2),…,cπ -1 (L) )
– 例如,置换密码。给定明文为 the simplest possible
transposition ciphers,将明文分成长为 L=5的段,
– M1=thesi m2=mples m3=tposs m4=iblet
– M5=ransp m6=ositi m7=oncip m8=hersx
– 最后一段长不足 5,加添一个字母 x。
01234 01234 01234 01234
01234 01234 01234 01234
– 将各段的字母序号按下述置换矩阵进行换位:
– 得到密文如下:
STIEH EMSLP STSOP EITLB SRPNA TOIIS
IOPCN SHXRE
– 利用下述置换矩阵
– 可将密文恢复为明文
– L=5时可能的置换矩阵总数为 5! =120。一般为 L!
个
k
0 1 2 3 4E
1 4 3 0 2
???
????k 0 1 2 3 4D
3 0 4 2 1?
2.3 现代加密技术
? 对称加密技术
– 对称加密技术包括任何加密形式,其中同一个密钥即用于加
密又用于解密所涉及的文本,被称为对称密码,这点也是对
非对称密码而言 。
? 序列加密
– 将待加密的明文分成连续的字符或比特,然后用相应的密码
流对其进行加密。
– 主要原理:通过随机数发生器产生性能优良的伪随机序列
(密钥流),使用该序列加密信息流(逐比特加密),得到
密文序列。
? 分组加密
– 将待处理的明文按照固定长度进行分组(若干个字符一组),
解密的处理则是在固定长度的密钥的控制下,以一个分组为
单位独立进行,得出一个固定长度的对应于明文分组的结果。
– 分组加密算法介绍
? DES(Data Encryption Standard)算法
– 迄今为止世界上最为广泛使用和流行的分组加密算法。
– 一种单钥密码算法,其基本思想是:将二进制序列的
明文分成每 64位一组,用长为 56的密钥对其进行 16轮
代换和换位加密,最后形成密文。
? IDEA(International Data Encryption Algorithm)
算法
– 即国际数据加密算法,被认为是现今最好的最安全的
分组加密算法之一。
– 以 64位的明文块进行分组,密钥是 128位长,此算法
可用于加密和解密。
– IDEA用了混淆 (Confusion)和扩散 (Diffusion)等操作。
混淆是指加密算法使密文和明文及密钥关系十分复杂,
无法从数学上描述,或无法从统计上去分析。扩散是
指明文中的任一位以及密钥中的任一位,对全体密文
位都有影响,经由此种扩散作用,可以隐藏许多明文
在统计上的特性,从而增加密码的安全。
– 算法设计的思想:在不同的代数组中的混合运算,主
要有三种运算:异或、模加、模乘。
? 其他算法
– SAFER
– Blowfish
– Skipjack
– Rijndael等
– 分组密码的工作模式
为了满足各种应用环境,分组加密算法有着不同的
工作模式,常用的有四种,ECB,CBC,CFB、
OFB
? ECB(Electronic Code Book,电子密码本 )
– 使用同一个密钥简单地将每个明文块一个接一个地进行加
密。
? CBC(Cipher Block Chaining,密码分组链接 )
– 每个明文块在加密前先于前一个密文块进行, 异或, 运算,
从而增加了复杂程度,可以使某些攻击更难以实现。
? CFB(Cipher Feed Back,密码反馈 )
– 密文移位与下一个明文进行异或
? OFB(Output Feed Back,输出反馈 )
– 与 CBC相似,不同的是异或的量是独立生成的
? 非对称加密(公钥加密)
– 公钥密码体制是指一个加密系统的加密密钥
和解秘密钥是不一样的,或者说不能有一个
推出另一个。
– 一个称为公钥进行加密,是公开的;一个称
为私钥用于解密,是保密的。其中从公钥计
算私钥市难解的。
– 公开密钥加密算法的核心是运用一种特殊的
数学函数 ——单向陷门函数,即从一个方向
求值是容易的,而其逆向计算却很难,以至
于在实际上是不可行的。
– 单向陷门函数
? 设 f是一个函数,如果对任意给定的 x,计算 y,使得 y
= f(x)是容易计算的,但对于任意给定的 y,计算 x,
使得 x = f -1(y)是难解的,即求 f的逆函数是难解的,
则称 f是一个单向函数。
? 设 f是一个函数,t是与 f有关的一个参数,对于任意
给定的 x,计算 y,使得 y = f(x)是容易的,如果当不
知参数 t时,计算 f的逆函数是难解的,但当知道参数
t时,计算 f的逆函数是容易的,则称 f是一个单向陷
门函数,参数 t称为陷门。
? 在公钥加密算法中,加密变换就是一个单向陷门函
数,知道陷门的人可以容易地进行解密变换,而不
知道陷门的人则无法进行有效的解密变换。
– 常见的公钥密码算法
? 背包算法
? McEliece算法
? RSA算法
? Rabin(RSA的变种算法 )
? 基于离散对数难题的 ElGamal算法
? 最新的椭圆曲线算法
已被破译
比较安全的公
开密钥算法
2.4 信息隐藏技术
? 信息隐藏和信息加密的异同
– 相同之处:都是致力于信息的保密技术。
– 不同之处 ——设计思想
?, 密码术, 主要通过设计加密技术,使有用的信息变为看
上去是无用的乱码,使保密信息不可读,但是对于非授权
者来说,虽然他无法获知保密信息的具体内容,却能意识
到保密信息的存在,知道所截获的信息是重要信息,从而
引起攻击者的兴趣。
?, 隐藏术, 致力于通过设计精妙的方法,使得非授权者根
本无从得知保密信息的存在与否。它将有用的信息隐藏在
其他信息中,使攻击者无法发现,不仅实现了信息的保密,
也保护了通信本身。
? 信息隐藏的最大优势在于它并不限制对公开信息的存取和
访问,而是致力于秘密数据的安全保密性。
– 秘密信息( Secret Message):待隐藏的信
息称为秘密信息,它可以是版权信息或秘密
数据,也可以是一个序列号。
– 载体信息( Cover Message):公开信息称
为载体信息,如视频、音频信息通过嵌入算
法( Embedding Algorithm)将秘密信息隐
藏于公开信息中,而隐蔽载体(隐藏有秘密
信息的公开信息)则通过信道
( Communication Channel)传递,然后检
测器( Detector)从隐蔽载体中恢复 /检测出
秘密信息。
? 信息隐藏的原因
– 多媒体信息本身存在很大的冗余性,未压缩
的多媒体信息的编码效率很低,所以可以将
某些信息嵌入到多媒体信息中进行秘密传送
是完全可行的,并不会影响到多媒体信息本
身的传送和使用。
– 人眼和人耳本身对某些信息都有一定的掩蔽
效应,如人眼对灰度的分辨率只有几十个灰
度级,对边沿附近的信息不敏感等。利用这
些特点,可以将信息很好的隐藏而不被察觉。
? 信息隐藏的特点:
– 不破坏载体的正常使用。
– 载体具有某种冗余性。
– 鲁棒性:不因数据文件的某种改动而导致隐藏
信息丢失的能力。
– 不可检测性:指隐蔽载体与原始载体具有一致
的特性,使非法拦截者无法判断是否有隐蔽信
息。
– 透明性:利用人类视觉系统或听觉系统属性,
经过一系列隐藏处理,使目标数据没有明显的
降质,而隐蔽的数据却无法看见或听见。
– 安全性:隐藏算法有较强的抗攻击能力。
– 自恢复性
? 信息隐藏分支
– 隐写术( Steganography)
? 目的在于隐藏信息的存在
– 数字水印( Digital Watermark)
? 为解决数字产品的侵权问题提供了一个有效的解
决途径。
? 通过在数字作品中加入一个不可察觉的标识信息,
需要时可以通过算法提出标识信息来进行验证,
作为指证非法复制的证据。
? 数字图像水印技术、数字文本水印技术、数字视
频水印技术、数字音频水印技术等
? 信息隐藏的攻击
– 隐藏技术和隐藏攻击技术
隐藏技术 主要研究向载体对象中嵌入秘密信息,
隐藏攻击技术 主要研究对隐藏信息的检测、破解秘密
信息或通过对隐藏对象处理从而破坏隐藏的信息和阻
止秘密通信 。
– 信息隐藏攻击者的目的
? 检测隐藏信息的存在性
? 估计隐藏信息的长度和提取隐藏信息
? 在不对隐藏对象作大的改动的前提下,删除或扰乱
隐藏对象中的嵌入信息。