计算机安全保密第二讲
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
③自信息的含义
– 自信息度量了一个随机事件xi未出现时所呈现的不确定
性,也度量了该事件xi出现后所给出的信息量。
大。
– 事件的不确定性越大,则一旦出现给出的信息量也就越
④举例 例 计算从英文字母表中任选一个字母时所给出的自 信息量。 因为从26个字母中任取一个字母的概率为,
1 p 26 所以任选一个字母所给出的信息量为 1 I log 2 4.7 26
H(K) > H(M)
卢开澄,计算机密码学,清华大学出版社。 即:一次一密(密钥与消息本身一样长,且密钥不重复使 用)系统。
密码系统的熵:衡量密钥空间K的大小的一个 标准,通常是密钥数以2为底的对数。
H(K) = log2k
2.1.4 确定性距离
对于长度为n的消息,能够将一段密文消息解 密成与原始明文同种语言的可懂文本的密钥 个数为:2H(K)- nD - 1 确定性距离:能够唯一地确定密钥的最短的 密文长度的近似值。
计算机安全保密第二讲
密码学数学基础
唐明 武汉大学计算机学院
本次课的内容
2.1信息论 2.2复杂性理论 2.3初等数论 2.4因数分解 2.5 素数的产生 2.6 有限域内的离散对数 2.7 单向哈希函数
2.1 信息论
2.1.1 熵与疑义度 2.1.2 自然语言率 2.1.3 密码系统的安全性 2.1.4 确定性距离 2.1.5 混乱与扩散
2 < H(x)= log27 <3
b1b2b3可以表示一周的7个状态:
– 000 星期日 – 001 星期一 – …… – 110 星期六 –保留
关于熵的实际例子
甲任意取一个不超过15的整数,由乙来 猜,但允许乙提K个问题,甲只回答 “是”或者“非”,问K多大时可以确 定猜到该数。
解:若令乙猜想作为事件V,V可能有16种结果,假定这16种结果 是等概率的,V的熵为: H(V)= log216 令事件Ak=U1U2U3…Uk 为提问k个问题,但Ui 的熵不超过log22=1, (因为只有“是”或者“非”),故Ak的熵为不超过k比特,则: log216 k· 22 =k, k 4 log 故 k=4
思考?
假设乙的第一个问题是“这个数字大于 11吗?”
如果乙得到“是”的回答,请问该事件提 供的信息量是多少? 如果乙得到“否”的回答,请问乙是否还 能够确保在规定次数之内得到正确结果? 为什么?
关于熵的实际例子
有25个外表完全相同的硬币,其中24个 重量完全一样,有一个较轻的伪币,用 无砝码的天平,试问要做多少次的比较, 可以找到这枚伪币?
继续前面的例子
解:事件V为找出伪币,可能有25个结论,他们是等概 率,故: H(V)= log225, 事件U为天平称的结果,可能有3种情况:1.左右平衡; 2.左边重;3.右边重;故: H(U)= log23 令Ak=U1U2U3…Uk为连续用k次天平的事件, k· 23 log225 log k (log225)/ log23=2.93 故 k最少为3次
– 实现扩散的方法:换位
2.2 复杂性理论
2.2.1 算法复杂性 2.2.2 问题复杂性
2.2.1 算法复杂性
算法的复杂性通常由两个变量来衡量: T(时间复杂性)和S(空间复杂性,或 存储需求)。 T和S都用n的函数来表示,其中n为输入 的大小。 数量级法:当n增大时,复杂性函数中 增加得最快的一项。
2.1.1 熵与疑义度
1949年,Shannon发表“Communication Theory of Secrecy Systems”
一条消息中的信息量,形式上由该消息 的熵来度量。
一、自信息和熵
1、自信息 文字、图象、声音是消息,信息是消息的有价值内容。 ①给定一离散事件集X,它含有N 个事件x1,x2,…,xN,事件xi 出 现的概率记作pi,1≥pi≥0 N 且
p
i 1
i
1
②自信息定义
定义 事件xi的自信息,记作I(xi),定义为 离散随机事件 I ( xi ) log pi 概率对数值的 绝对值。
注意:自信息的定义没有规定对数的底! 对数底为2时,自信息单位为比特(bit); 对数底取为e时,自信息单位为奈特(nat); 对数底为10时,自信息单位为哈特(hart)。
图灵机:一个有限状态机,具有无限的 读写存储磁带,是一个理想化的计算模 型。 问题:
– 易解的问题:可以在多项式时间内求解
– 难解的问题:只能在指数时间内求解
– 不确定的问题:找不出解决的算法,不考 虑算法的时间复杂性
问题复杂性的划分:
– P问题:可以在多项式时间内求解的问题。 – NP问题:只能在一个非确定性的图灵机(能够进
疑义度:消息的熵同时也可衡量其不确定性 (疑义度),即将消息隐藏在密文中时,要 破译它所需的明文比特数(即当消息被加密 成密文时,为了获取明文需要解密的明文的 位数)。
一、自信息和熵 2、熵
举例 1 1 1 例 给出集 X x1 , x2 , x3 , p1 , p 2 , p3 2 4 4
P
2.3 初等数论
2.3.1 模运算 2.3.2 素数 2.3.3 最大公因数 2.3.4 乘法逆元素 2.3.5 Fermat小定理及欧拉函数 2.3wenku.baidu.com6 中国剩余定理 2.3.7 二次剩余 2.3.8 Legendre(勒让得)符号 2.3.9 Jacobi(雅各比)符号 2.3.10 生成元 2.3.11 有限域中的计算
继续前面的例子
i.
• •
一种解决方案:
25=8+8+9(第一次)
天平两端各放8个,如果平衡,则伪币在剩余的9个之 中,跳到ii; 如果不平衡,则伪币在较轻的8个之中,跳到iii。
ii.
•
9=3+3+3(第二次)
天平两端各放3个,如果平衡,则从剩下3个中寻找伪 币。否则,从较轻的3个中寻找伪币。 天平两端各放3个,如果平衡,则从剩下2个中寻找伪 币。否则,从较轻的3个中寻找伪币。
这个数被表示为四位二进制后,第一位是0吗? 这个数被表示为四位二进制后,第二位是0吗? …… 这样,我们可以确保每次都可以得到一位信息。
思考?
假设乙的第一个问题是“这个数字是a 吗?”
– 其中a是0-15之间的任意一个确定的数。
如果乙得到“是”的回答,请问该事件提 供的信息量是多少? 如果乙得到“否”的回答,请问乙是否还 能够确保在规定次数之内得到正确结果? 为什么?
行猜测的一种图灵机)上在多项式时间内求解的 问题。
• NP完全问题:一些特定的NP问题,与其他NP问题同等 困难。
– P空间问题:可以在多项式空间内求解,但不能在
多项式时间内求解的问题。
• P空间完全问题:与其他P空间问题同等困难。
– 指数时间问题
指数时间的 P空间完全的 P空间 NP完全的 NP
– 对称密码系统的确定性距离:定义为密码系统的
熵除以语言的冗余度。 U = H(K)/ D
理想安全的密码系统:确定性距离无限大的 密码系统。
2.1.5 混乱与扩散
混乱:在加密变换中,让密钥与密文的 关系尽可能复杂的做法。
– 实现混乱的方法:代替
扩散:在加密过程中,尽可能将明文的 位置统计特性在密文中消除。
例:X可能在下周某天去钓鱼。
星期一,……,星期日共有七种可能(x1,…,x7), 假设各种可能性出现概率相等,则:P(Xi)=1/7, H(x)=-7· (1/7)· 21/7=-log21/7= log27 log
同时,H(x)也指出了X中的信息量将消息中 所有可能的值进行编码时所需的最少比特数。
iii. 8=3+3+2(第二次)
•
思考?
有25个外表完全相同的硬币,其中24个 重量完全一样,伪币重量不一样,但不 知是轻还是重,用无砝码的天平,试问 要做多少次的比较,可以找到这枚伪币?
2.1.2 自然语言率
自然语言率:对于给定的一种语言,其 自然语言率为 r = H(M)/ N 其中N为消息长度。
2.3.1 模运算
同余:如果a = b + kn,k为整数,则
– a b(mod n)
a mod n :a模n操作,表示a除以n的余 数,为 0到n - 1之间的整数。
– 例如:(7+9) mod 12 = 16 mod 12 = 4
模运算(+、-、 )满足交换律、结 合律和分配律。
一、自信息和熵
2、熵 自信息描述了事件集X中一个事件出现给出 的信息量,整个集X的平均信息量是该集所 有事件自信息的统计平均值(数学期望), 称作集X的熵。
定义2.2 集X的熵,记作H(X),定义为
H ( X ) pi log pi
i 1 N
定义中,规定0log0=0。
H(X)度量了集X中各个事件未出现时所呈 现的平均不确定性(疑义度),也度量了集X 中一个事件出现时所给出的平均信息量。
– 英语的自然语言率:1.0比特/字母~1.5比特 /字母 – 它是一个语言系统的实际表现力,实际上 是一个语言系统的实际熵。
绝对语言率
绝对语言率:每个字符编码的最大比特数, 这里假设每个字符序列出现的机会相等。
– 若语言中有L个字母,则绝对语言率为:
R = log2L 为单个字母的最大熵。 – 英语的绝对语言率:log226 4.7比特/字母 – 它是一个语言系统理论上的最大表现力。当每个 字符出现的概率相同时,其具有最大表现力。实 际上是语言系统的最大熵。
继续前面的例子
0到15之间的数可以由4比特信息来表示。即 —— —— —— —— 而上面的问题实际上可以转化为如何获得这4个 比特信息。因为每个问题的答案只有两种, 故每个问题的答案最多只能提供1比特的信息。
因而如果要确保得到正确结果,则至少需要4次。
那如何保证每次可以获得1位的信息呢?
最直接的四个问题:
冗余度:语言的冗余度记为D,定义为: D=R-r 其中,R为绝对语言率,r为自然语言率。
– 英语:r = 1.3比特/字母,则D = 3.4比特/字 母。
2.1.3 密码系统的安全性
绝对安全的密码系统:
– M:明文空间;K:密钥空间;C:密文空间;
c= E(m, k)。E: M →C。
– H(M), H(K) – 绝对保密的密码系统的必要条件:
– (a+b) mod n=((a mod n)+(b mod n))mod n
– (a-b) mod n=((a mod n)-(b mod n))mod n – (a*b) mod n=((a mod n)*(b mod n)) mod n
– (a*(b+c)) mod n=((a*b mod n)+(a*c mod n)) mod n
多项式时间算法:
– – – – –
O(1):常数的 O(n):线性的 O(n2):平方的 … O(nm):m为常数
指数时间算法:O(tf(n)),其中t为大于1的常数, f(n)为n的多项式函数。
– 超多项式时间算法:O(cf(n)),其中c为大于1的常数,
f(n)大于常数,小于线性。
2.2.2 问题复杂性
。
按定义有: I(x1) =-log2 1/2=log2 2 =1比特, I(x2)=I(x3)=-log2 1/4=log2 4=2比特。 于是 1 1 1 H ( X ) 1 2 2 1.5 比特。 2 4 4 一个事件集的熵越大,其不确定性越高。
关于熵的实际例子
按模计算原理:对中间结果作模运算与 做完了全部运算后再做模运算结果相同。 求:1711mod 26=?
按模指数运算:am mod n
– 将指数运算作为一系列乘法运算,每次做一次模
运算。 – 例:a8 mod n = ((a2 mod n)2 mod n)2 mod n – 当m不是2的乘方时,将m表示成2的乘方和的形式。 – 例如:25=(11001)2,即25=24+23+20 a25 mod n = (a16 a8 a) mod n = ((((a2)2)2)2 ((a2)2)2 a) mod n = ((((a2 a)2)2)2 a) mod n – 适当存储中间结果,则只需6次乘法: (((((((a2mod n) a)mod n)2mod n)2mod n)2mod n) a)mod n