现代密码学总结汇总

现代密码学总结

第一讲绪论

?密码学是保障信息安全的核心

?安全服务包括:机密性、完整性、认证性、不可否认性、可用性

?一个密码体制或密码系统是指由明文(m或p)、密文(c)、密钥(k)、加密算法(E)和解密算法(D)组成的五元组。

?现代密码学分类:

?对称密码体制:(又称为秘密密钥密码体制,单钥密码体制或传统密码体制)密钥完全保密;加解密密钥相同;典型算法:DES、3DES、AES、IDEA、RC4、A5 ?非对称密码体制:(又称为双钥密码体制或公开密钥密码体制)

典型算法:RSA、ECC

第二讲古典密码学

?代换密码:古典密码中用到的最基本的处理技巧。将明文中的一个字母由其它字母、数字或符号替代的一种方法。

(1)凯撒密码:c = E(p) = (p + k) mod (26) p = D(c) = (c –k) mod (26)

(2)仿射密码:明文p ∈Z26,密文c ∈Z26 ,密钥k=(a,b) ap+b = c mod (26)

(3)单表代换、多表代换

Hill密码:(多表代换的一种)

——明文p ∈(Z26)m,密文c ∈(Z26)m,密钥K ∈{定义在Z26上m*m的可逆矩阵}

——加密c = p * K mod 26 解密p = c * K-1 mod 26

Vigenere密码:查表解答

(4)转轮密码机:

?置换密码

?

?

?:将明文字符按照某种规律重新排列而形成密文的过程

列置换,周期置换

?密码分析:

?统计分析法:

移位密码、仿射密码和单表代换密码都没有破坏明文的频率统计规律,可以直接用

统计分析法

?重合指数法

? 完全随机的文本CI=0.0385,一个有意义的英文文本CI=0.065

? 实际使用CI 的估计值CI ’:L :密文长。 fi :密文符号i 发生的数目。

第三讲 密码学基础

第一部分 密码学的信息论基础

? Shannon 的保密通信系统模型

发送者

接收者

信源

分析者

加密

解密安全信道

无噪信道

安全信道

M

M M

C

K K

密钥源

发送者

接收者

信源

分析者

加密

解密无噪信道

安全信道

M

M M

C K

K ’密钥源

无噪信道

?

一个密码体制是一个六元组:(P, C, K 1, K 2, E, D )

P--明文空间 C--密文空间 K 1 --加密密钥空间

K2 --解密密钥空间E --加密变换D --解密变换对任一k∈K1,都能找到k’∈K2,使得D k’ (E k (m))=m,m M. ?熵和无条件保密

?

)

(

1

log

)

(

)

(≥

=∑

i i

a

i

x

p

x

p

X

H

设随机变量X={xi | i=1,2,…,n}, xi出现的概率

为Pr(xi) ≧0, 且, 则X的不确定性或熵定义为

熵H(X)表示集X中出现一个事件平均所需的信息量(观察前);或集X中每出现一个事件平均所给出的信息量(观测后).

?设X={x i|i=1,2,…,n}, x i出现的概率为p(x i)≥0,且∑i=1,…,n p(x i)=1;

Y={y i|i=1,2,…,m}, y i出现的概率为p(y i)≥0,且∑i=1,…,m p(y i)=1;

则集X 相对于集Y的条件熵定义为

?X视为一个系统的输入空间,Y视为系统的输出空间,通常将条件熵H(X|Y)称作含糊度,X和Y之间的平均互信息定义为:I(X,Y)=H(X)-H(X|Y)

表示X熵减少量。

?完善保密的(无条件保密的)密码系统(P,C,K,E,D)系统满足

第二部分复杂性理论

?算法计算复杂性常常用两个变量来度量:时间复杂度(计算复杂度)T和空间复杂度S

?假设一个算法的计算复杂度为O(n t),其中t为常数,n为输入问题的长度,则称这算法的复杂度是多项式的。具有多项式时间复杂度的算法为多项式时间算法。

?如果一个算法的复杂度为O(t f(n)),t为大于1的常数,f(n)是以n为自变量的多项式函数,则称该算法的复杂度是指数的。当f(n)是大于常数而小于线性函数时,称为亚指数时间算法。

?如果一个判定问题存在解它的多项式时间的算法,则称该问题属于P类.

如果一个判定问题不存在解它的多项式时间的算法,且对于一个解答可以在多项式时间验证其是否正确,则称该问题属于NP类.

第四讲分组密码

?DES算法

?整体结构:Feistel结构

? 给定明文,通过一个固定初始置换IP 来重排输入明文块P 中的比特,得到比特串

P0=IP(P)=L0R0,这里L0和R0分别是P0的前32比特和后32比特 ? 16轮迭代,密钥生成

),(L R 1-R L 1i i i i i i K R f -⊕==按下述规则进行16次迭代,即1≤i ≤16

⊕这里 是对应比特的模2加,f 是一个函数(称为轮函数);

16个长度为48比特的子密钥K i (1≤i ≤16)是由密钥k 经密钥编排函数计算出来的.

? 对比特串R 16L 16使用逆置换IP -1得到密文C ,即C=IP -1 (R 16L 16) ? 注意:第十六轮迭代左右两块不交换

? 分组密码的轮函数(f)

? 长度为32比特串R i-1作为第一输入,以长度为48比特串K i 作为第二个输入,产生长度

为32比特的输出 ? 扩展置换(E 盒):

32位输入扩展为48位输出:按照8行6列次序排列,从32,1,2……排列,上一行的后两位一次在下一行的起始位置得到重用。

?

1()i i E R K

-⊕密钥加:按位异或加,计算 ? S 盒代换:DES 中唯一的非线性部分

8个S 盒。每个S 盒输入均为6位,输出为4位。Bj=b 1b 2b 3b 4b 5b 6, b1b6确定行r 的二进制表示, b2b3b4b5确定列c 的二进制表示,行列确定唯一长度为4的二进制数字

? P 置换:根据固定置换P(*)进行置换

?DES算法的密钥编排算法

?64比特密钥K,根据固定置换PC-1来处理K得到PC-1(K)=C0D0,C0和D0分别由最前和最后28比特组成(去除8,16,24,32,40,48,56,64这8位奇偶校验位)

?对1≤i≤16,DES的每一轮中使用K的56比特中的48个比特(压缩方法:删除C中的9,18,22,25位和D中的7,9,15,26位)

?计算C i=LS i(C i-1)和D i=LS i(D i-1),且K i=PC-2(C i D i),LS i表示循环左移两个或一个位置, 具体地, 如果i=1,2,9,16就移一个位置,否则就移两个位置, PC-2是另一个固定的置换。

?DES的解密与加密使用一样的算法,以密文y作为输入,以相反顺序使用密钥编排K16,K15,…,K1,输出的是明文X

?DES算法的扩散

?两轮扩散:

?三轮扩散:从LO的一块数据影响开始

?AES算法

?⊕128位(16个字)输入明文,128位密钥长度,第一次迭代前明文密钥

?AES算法整体结构:

?AES算法的轮函数——Rijndael轮函数

1)字节代换(SubByte)2)行移位(ShiftRow)

3)列混合(MixColumn)4)密钥加(AddRoundKey)

①字节代换:字节代换是非线形变换,独立地对状态的每个字节进行,代换表(即

S-盒)是可逆的

S盒可以由以下两步运算得到:

?求输入元素在m(x)=x8+x4+x3+x+1 上的逆元;

?对上步中所求得的逆元进行如下运算

②行移位:行移位是将状态阵列的各行进行循环移位,不同状态行的位移量不同;

第0行不移动;第1行左移1字节;第2行左移2字节;第3行左移3字节?列混合:

其中:(00000010)*(a7a6a5a4a3a2a1a0)=( a6a5a4a3a2a1a00) ,a7为0;

⊕ =( a

a5a4a3a2a1a00) (00011011),a7为1

6

(00000001)*(a7a6a5a4a3a2a1a0)= (a7a6a5a4a3a2a1a0)

⊕(00000011)*(a

a6a5a4a3a2a1a0)= (00000010)*(a7a6a5a4a3a2a1a0) (a7a6a5a4a3a2a1a0)

7

?密钥加:密钥加是将轮密钥简单地与状态进行逐比特异或;

轮密钥由种子密钥通过密钥编排算法得到

注:结尾轮函数将列混合这一步骤去掉

?AES算法的密钥编排算法

?密钥编排指从种子密钥得到轮密钥的过程,AES的密钥编排由密钥扩展和轮密钥选取两部分组成,基本原则如下:

——轮密钥的总比特数等于轮数加1再乘以分组长度;((10+1)*128=1408)

——种子密钥被扩展成为扩展密钥

——轮密钥从扩展密钥中取,第1轮轮密钥取扩展密钥的前N b个字,第2轮轮密钥取接下来的N b个字

?密钥扩展:

——每一列的4个字节组成一个字——>

对w数组扩充40个新列,构成总共44列扩展密钥数组,如下产生

⊕(1)如果i不是4的倍数,那么w[i]=w[i-4] w[i-1]

⊕(2)若果i是4的倍数,那么w[i]=w[i-4] T(w[i-1]) T为一个复杂的函数

T函数由三个部分组成:字循环,字节代换和轮常量异或

?字循环:将1个字中的4个字节循环左移1个字节。即[b0 ,b1,b2,b3]变换成[b1,b2,b3,b4]

?字节代换:对自循环的结果使用S盒(书上P112表4-15)

?将前两步的结果同轮常量Rcon[j]进行异或,其中j表示轮数

?轮密钥的选取

。。。

。。。

?ByteSub的逆变换由代换表的逆表做字节代换

?行移位运算的逆变换是循环右移,位移量与左移时相同

?列混合运算的逆运算是类似的,即每列都用一个特定的多项式d(x)相乘d(x)=‘0B’x3+‘0D’x2+‘09’x+‘0E’.

?密钥加运算的逆运算是其自身

?AES算法的扩散

第一轮

第二轮

总体

?

? ?

128比特明文分为4个32比特字,分别赋值给四个寄存器A 、B ,C ,D (D 为最高). (,,,,)()i i F D C B A rk A T B C D rk =⊕⊕⊕⊕()

4

32(D,C,B,)2Z A ∈32

i 2

rk Z ∈进行32轮F 运算,设

每轮输入为寄存器当前状态值 和轮密钥为 ,则轮函数F 为:

3534333232333435()()R X X X X X X X X =35343332()X X X X 将寄存器最右边字A 的值

移出,高三个字顺次右移32位,F 函数的输出赋值给最左边的寄存器字D.32轮的输出 进行反序变换R ,

然后输出密文.

?

4123321(,,,;)()i i i i i i i i i i i F X X X X T rk rk X X X X X +++++++==⊕⊕⊕⊕轮函数F

字为单位进行运算,输入寄存器值

和轮密

合成置换T :是一个可逆变换,由非线性变换τ和线性变换L 复合而成, 即T(.)=L(τ(.))

32103210(,,,)()((),(),(),())Y Sbox Sbox Sbox Sbox y y y y z z z z τ∈=非线性变换τ由4个并行的S 盒构成

()(2)(10)(18)(24)W L Y Y Y Y Y Y ==⊕<<<⊕<<<⊕<<<⊕<<<线性变换L :

?

密钥编排算法

? 0131()rk rk rk ,

,......,加密密钥长度为128比特MK ? 轮密钥表示为 ,

?

0131CK=(......)CK CK CK ,,,0123FK=()FK FK FK FK ,,, 为系

统参数, 为固定参数,用于密钥扩展算法 ? 密钥扩展算法:

012301230123(,,,)=(,,,)

FK FK FK FK K K K K MK MK MK MK ⊕⊕⊕⊕

123(A3B1BAC6),(56AA3350),=(677D9197), (B27022DC) .

FK

FK FK FK ===

T’变换与加密算法轮函数中的T 基本相同,只将其中的线性变换L 修改为

()(13)(23)L Y Y Y Y '=⊕<<<⊕<<<

固定参数CKi 的取值方法为:设

为 的第j 字节(i=0,1,…,31;j=0,1,2,3,

即则

? 分组密码的运行模式 ? 为了能在各种场合使用DES ,定义了4中DES 运行模式:ECB,CBC ,CFB,OFB

AES 的另外一种运行模式:CTR

? ECB 模式

最简单的一种分组密码工作方式。一次处理一个明文分组。

密文块可以分别独立解密,无顺序要求;

密钥相同时,明文中相同的64比特分组产生相同的64比特密文块;

不存在错误传播,一块密文传送错误只导致对应明文解密错误;

主要用于发送少数量的分组数据;

?CBC模式

先对明文分组,一次对一个明文分组加密,加密算法的输入是当前明文分组和前一次密文分组的异或.

在产生第1个密文分组时,需要有一个初始向量IV与第1个明文分组异或;

解密时,IV和解密算法对第1个密文分组的输出进行异或以恢复第1个明文分组;

密钥相同时,明文中相同的64比特分组产生不相同的64比特密文块;

存在错误传播,一块密文传输错误会导致下一块密文解密失败;

?CFB模式

加密:设加密算法的输入是64比特移位寄存器,其初值为某个初始向量IV. 加密算法输出的最左(最高有效位)j比特与明文的第一个单元P1进行异或,产生出密文的第1个单元C1. 传送该单元并将输入寄存器的内容左移j位,用C1补齐最右边(最低有效位)j位. 这一过程继续到明文的所有单元都被加密为止.

解密,将加密算法输出的最左(最高有效位)j比特与密文的相应单元异或,产生明文. 反馈到输入寄存器的值为密文单元

——消息被看作bit流,无须分组填充;适合数据以比特或字节为单位出现标准允许反馈任意比特;

——需要额外的初始向量 ——密文块需按顺序逐一解密

——密钥相同时,明文中相同的64比特分组产生不相同的64比特密文块. ——存在错误传播(只传播后面的几块) ?

OFB 模式

类似于CFB, 不同之处在于OFB 模式是将加密算法的输出反馈到移位寄存器,而CFB 模式中是将密文单元反馈到移位寄存器

——消息被看作比特流,无须分组填充

——密钥流可以在已知消息之前计算,不需要按顺序解密 ——不存在比特错误传播

——发送者和接收者必须保持同步 ?

CTR 模式

消息被看作bit 流,无须分组填充;

只使用加密算法,且所有加密都使用同一密钥; 需要额外的初始向量;

密钥相同时,明文中相同的分组产生不相同的密文块; 不存在比特错误传播;

效率,密钥流可以在已知消息之前计算,不需要按顺序解密; 优点:(1)硬件效率高,吞吐量仅受可使用并行数量的限制; (2)软件效率高,能够并行计算

(3)预处理 (4)随机访问 (5)可证明安全性 (6)简单性

?

21P P P ⊕=?查分分析思想

2i 1i R R R i ⊕=?设F 为轮函数,共m 轮迭代。△P :表明明文P 1和P 2

的差分;设

△R 1:表示明文和密钥输入后第i 轮输出R 1和R 2的差分;

12(|M)1;,r i P R C P C C ?=?==是密文

?

T K R F a i i i =⊕+-

+-+-

+-),()K ,R (F .12,11

11

,1i 1

果 ,那么,对2t

个密钥计算,

为正确的密钥比特则,如果.1i +?=i K R T b 且不可忽略;1)M |(<=?=?P C R P i r

? 如果

1+-

i K C R P i =?=?且M 首先选取多个明文对,使得至少有一对为正确明文对,

满足

其次重复猜测搜索密钥 的过程

第五讲 流密码

? 序列密码:又称流密码。指明文消息按字符逐位地加密的一类密码算法。 ? 流密码分类:

? 同步序列密码

密钥序列的产生独立于明文消息和密文消息的一类流密码。

OFB 模式是同步序列密码的一个例子; 特性:发送方和接收方必须同步;

无错误传播;

优点:容易检测插入、删除、重播等主动攻击; ?

自同步序列密码

密钥序列的产生是密钥及固定大小的以往密文位的函数。

特性:自同步特性; 有限的错误传播;

优点:接收端和发送端不同步,只要接收端能连续地正确地接受到n 个密文符号,就能重新建立同步;

? 流密码原理

密钥系列产生器分为驱动部分和组合部分。驱动部分产生控制生成器的状态序列;组合部分对驱动部分的各个输出序列进行非线性组合。驱动器一般利用线性反馈移位寄存器LFSR ,特别是利用最长周期或m 序列产生器实现;非线性反馈移位寄存器也可作为驱动器。 ? 线性反馈移位寄存器

? 反馈移位寄存器(FSR)是由n 位的寄存器和反馈函数组成,如下图所示,n 位

的寄存器中的初始值称为移位寄存器的初态.

工作原理:反馈函数f 是n 个变元(b1,b2,…,bn)的布尔函数. ?

线性反馈移位寄存器的反馈函数为线性函数

n n 11n 21(1).k n k n k k a c a c a c a k ++--+-=⊕⊕

⊕≥设n 级LFSR 的输出序列{a i

}

满足递推关系

111()1n n n n f x c x c x c x --=++

++这种递推关系可用一个一元高次多项

表示,称这个多项式为LFSR 的特征多项式

? 设 是上的多项式,使的最小的p 称为的周期或者阶

? n 级LFSR 输出的序列的最大周期是2n

-1

? 当LFSR 的寄存器状态遍历2n 1个非零状态时,序列的周期达到最大2n 1,这种序列被称为m 序列

? 若n 次不可约多项式p(x)的阶为2n -1,则称p(x)为n 次本原多项式

? {a i }是周期为2n 1的m-序列的充要条件是其特征多项式f(x)为n 阶本原多项式 ?

非线性组合部分

? 滤波生成器又叫前馈生成器,一般由LFSR 和滤波(前馈)函数两部分组

成. LFSR 可以是一个,也可以是几个,它们输出的序列共同作为滤波函数的输入。滤波函数要求具有很好的非线性性质,以增强生成器的抗攻击能力。

Geffe 序列发生器: 两个LFSR 作为复合器的输人,第三个LFSR 控制复合器的输出如果a1, a2, 和a3是三个LFSR 的输出,则Geffe 发生器的输出表示为:b = (a1 ∧ a2) ⊕( a1 ∧a3) ⊕a3

如果3个LFSR 长度分别为n1,n2和n3,线性复杂度为(n2+n3)n1+n3

周期为3个LFSR 周期的最小公倍数;如果3个本院反馈多项式的阶数互素,那么发生器的周期是3个LFSR 周期之积,即(2n1-1)(2n2-1)(2n3-1)

?钟控生成器。最简单的钟控生成器是用一个LFSR控制另一个LFSR的时钟脉冲

当LFSR1输出1时,时钟脉冲通过与门使LFSR2进行一次移位,从而生成

下一位;当LFSR1输出0时,时钟脉冲无法通过与门使LFSR2移位(走),

从而LFSR2重复输出前一位(停)。也称之为走停生成器

?典型流密码算法

?A5算法

GSM系统主要使用的序列密码加密算法,保护从基站到移动设备传输信息

x、y、z(位置分别为A、B、C 的第9、11

、11位)进行钟控,若三个位中间

至少有两个为“1”,则为“1”的寄

存器进行一次进动,而为“0”的不

移。反过来,若三个位中至少有两个

为“0”,则为“0”的寄存器进行一次

移位,而为“1”的不移。这种机制保

证了每次至少有两个LFSR被驱动移位

?RC4算法

典型的基于非线性数组变换的序列密码。使用了一个256字节大小的非线性

数据表(简称S表),依据表进行非线性变换,得到密钥流。

包括密钥调度算法(KSA)和伪随机生成算法(PRGA)

第六讲HASH函数和MAC

?Hash函数的定义:

消息是任意有限长度,哈希值是固定长度。

性质:

?单向性(抗原像):对干任意给定的消息,计算其哈希值容易。但是,对于给定的哈希值h,要找到M使得H(M)=h在计算上是不可行的?弱抗碰撞(抗二次原像):对于给定的消息M1,要发现另一个消息M2,满足H( M1 )=H(M2)在计算上是不可行的

?强抗碰撞:找任意一对不同的消息M1,M2 ,使H(M1)=H(M2 )在计算上是不可行的.

分类:

?改动检测码MDC——不带密钥的哈希函数,主要用于消息完整性

?消息认证码MAC——带密钥的哈希函数,主要用于消息源认证和消息完整性

?MD5算法

?算法过程描述:

?消息填充

填充一个1和若干个0使其长度模512与448同余;再将消息的真实长度以

64比特表示附在填充结果后面,使总长度为512比特的整数倍。

?初始向量

MD5中有A,B,C和D4个32位的寄存器,最开始存放4个固定的32位的整数

参数,即初始链接变量,用于第一轮运算:

A=0x01234567 B=0x89ABCDEF C=0Xfedcba98 D=0x76543210 ?分组处理(迭代压缩)

压缩分为4轮,每轮16步函数运算,共64步;

512bitMi被均分为16个子分组(32bit/组)参与每轮16步函数运算。每

步的输入是4个32bit的链接变量和一个32bit的消息子分组,输出为

32bit;经过4轮候,得到的4个寄存器值分别于输入链接变量进行模加,

即是当前中间散列值。

?输出散列值128bit

?步函数

每一轮的16个步函数相同,使用同一个非线性函数;

不同轮的步函数使用的非线性函数不相同;

四个非线性函数:

M[j]:消息分组Mi的第j(0<=j<=15)个32bit子分组。

<<

常数T[i]为

?MD5与MD4

从三轮改为四轮;

增加了一种逻辑运算,第二轮函数从F(x,y,z)=(xΛy) v(xΛz) v(yΛz)改为(xΛz)

v(yΛ ┐z),以消弱对称性;

改变第二轮和第三轮访问消息子分组的顺序,使其形式更不相似;

改变每轮移位量以实现更快的雪崩效应;

每步有唯一的加法常数t i,消除任何输入数据的规律;

每一步与上一步的结果相加,这将引起更快的雪崩效应;

?SHA256算法

?算法过程描述

?消息填充

填充一个1和若干个0使其长度模512与448同余;再将消息的真实长度以

64比特表示附在填充结果后面,使总长度为512比特的整数倍。

?初始变量

由前8个素数的平方根的小数部分的前32位(二进制)生成

用8个32bit寄存器ABCDEFGH表示。初始链接变量存入其中

?压缩函数

64轮运算;512bit分组为单位处理消息

对于64轮中的每一轮的t,使用一个32bit的Wt,其值由当前被处理

的512bit消息分组Mi导出;每轮中使用一个附加常数Kt(取前64个素

数的立方根的小数部分的二进制表示的前32bit)

?最后一轮的输出和第一轮的输入模232相加产生Hi

?输出散列值长度为256比特

?SHA256的轮函数

?第(i-1)块的输出链接变量a、b、c、d、e、f、g和h分别赋值:

a=H0(i-1)b=H1(i-1) c=H2(i-1) d=H3(i-1)

e=H4(i-1) f=H5(i-1) g=H6(i-1) h=H7(i-1)

?for t=0 to 63:(借助临时寄存器T1和T2)

a=T1+T2,b=a,c=b,d=c,e=(d+T1),f=e,g=f,h=g

其中:Ch(e,f,g)=(eΛf)⊕(非eΛg); Maj(a,b,c)=(a Λb) ⊕(a Λc )⊕(b Λc

)

=ROTR 2(a)⊕ROTR 13(a)⊕ROTR 22

(a)

=ROTR 6(e) ⊕ROTR 11(e)⊕ROTR 25(e)

且ROTR n (x)/ SHR n (x)表示对32bit 变量x 循环右移/左移n bit

? 计算第i 个Hash 值H (i)

H 0(i)=a+ H 0(i-1) H 1(i)=b+ H 1(i-1) H 2(i)=b+ H 2(i-1) H 3(i)=c+ H 3(i-1) H 4(i)=d+ H 4(i-1) H 5(i)=e+ H 5(i-1) H 6(i)=f+ H 6(i-1) H 7(i)=g+ H 7(i-1)

?

()

256

256

127015160151663()()i t t t t t t t M W t W W W W σσ----?≤≤=?≤≤+++? 32bit 的Wt 是从512bit 消息中导出的,方法如下: 其中

(x )= ROTR 7(x)⊕ROTR 18(x)⊕SHR 3(x)

(x)= ROTR 17(x) ⊕ROTR 19(x) ⊕SHR 10(x)

? SHA512和SHA284

? ①SHA512

填充消息M, 将消息填充到1024的整数倍;

将填充消息分割为N 个1024比特长的消息块M(1),M(2),…,M(N); 设置初始Hash 值H(0); 迭代压缩,80步;

()()()()()()()()01234567

N N N N N N N N H H H H H H H H N 次迭代后的

输出512比特链接变量作为消息散列值输出;

②SHA284

与SHA512仅有两点不同:

()()()()()()012345

||||||||||N N N N N N H H H H H H 初始Hash 值H(0)的设置不同;

输出384比特长的消息摘要; ?

算法过程描述 ? 消息填充

填充一个1和若干个0使其长度模1024与896同余;再将消息的真实长度以128比特表示附在填充结果后面,使总长度为1024比特的整数倍。

? 初始变量:

? SHA384初始链接变量

第九个至第十六个素数的平方根小数部分前64位(二进制)生成

?SHA512初始链接变量

前八个素数的平方根的小数部分的前64位(二进制)生成

?SHA384和SHA512的轮函数

?(i-1)次迭代的输出赋值给工作变量a、b、c、d、e、f、g和h;

a=H0(i-1)b=H1(i-1) c=H2(i-1) d=H3(i-1)

e=H4(i-1) f=H5(i-1) g=H6(i-1) h=H7(i-1)

?for t=0 to 79:

a=T1+T2,b=a,c=b,d=c,e=(d+T1),f=e,g=f,h =g

?计算第i个Hash值H(i)

H0(i)=a+ H0(i-1) H1(i)=b+ H1(i-1) H2(i)=b+ H2(i-1) H3(i)=c+ H3(i-1)

H4(i)=d+ H4(i-1) H5(i)=e+ H5(i-1) H6(i)=f+ H6(i-1) H7(i)=g+ H7(i-1)

?消息认证

?消息认证码(MAC)是一种消息认证技术

?发送方A和接收方B共享密钥K,若A向B发送消息M,则A计算利用C=F (K, M)计算MAC值;然后将原始消息M和C一起发送给接收方。

接收方B对收到的消息M用相同的密钥K进行相同的计算得出新的MAC

值C’。并将接收到的C与其计算出的C’进行比较,若相等,则:

(1) 接收方可以相信消息未被修改。

(2) 接收方可以确信消息来自真正的发送方。

F是MAC函数,它利用密钥K和任意长度的消息M来生成一个固定长度的

短数据块C。

?攻击目的:

①伪造攻击:攻击者在没有密钥K的情况下,伪造一个未经过认证(M,Mac)对.

存在性伪造: 如果攻击者只能够对一个不由他控制的消息进行伪造,那

么这种伪造攻击称为存在性伪造攻击.

选择性伪造: 如果攻击者能够对由他选择的消息进行伪造,那么这种伪

造攻击称为选择性伪造攻击.

②密钥恢复攻击:攻击者通过分析一系列(M,Mac)对,找到控制这些(M,Mac)

对的密钥.

非自适应选择明文攻击: 敌手在使用Mac设备之前,必须已经选定要测

试的消息;

自适应选择明文攻击:敌手可以根据Mac设备的输出,自行选择下一次

要测试的消息.

?CBC-MAC

?填充数据,形成一串n比特组;其次,使用CBC模式加密这些数据;对最后的输出分组进行选择处理和截断(如果m<n)形成MAC

填充方法:(不知道数据的长度,则应选用填充方法2或3)

方法1:对需要计算MAC的数据的右边填充若干个或零个“0”比特,以便

得到一个比特长度是n的整数倍的数据串。

方法2:对需要计算MAC的数据的右边先填充一个“1”比特,然后填充若

干个或零个“0”比特,以便得到一个比特长度是n的整数倍的数据串。

方法3:首先对需要计算MAC的数据的右边填充若干个或零个“0”比特,

以便得到一个比特长度是n的整数倍的数据串;其次,在所得到的数据

串的左边填充一个n比特组,该组包含了未进行填充的数据的比特长度

的二元表示,其左边用“0”补齐。

?n比特数据组D1,D2,……,D q,计算过程如下:(e k为加密函数)

?置I1=D1,计算O1=e k(I1)

?对i=2,3,……,q,完成下列计算:Ii=Di⊕Oi-1 Oi=ek(Ii)

?对O q进行选择处理和截断,获得m比特MAC

?攻击:

?假定MAC1=e k(D1),则MAC2是两个分组的消息(D1||D2)的一个合法MAC值,其中,D2=D1 ^MAC1。这种攻击方法称为”cut and paste”

攻击。

?攻击者想伪造消息D的合法MAC。

首先,选择消息D1发送给认证者,认证者返回MAC1=ek(D1)

然后计算D2=MAC1^D,把消息(D1||D2)发送给认证者,认证者

返回MAC2=ek(ek(D1)^D2)

则MAC2是消息D的合法MAC值:MAC2=ek(D)

?HAMC

?使用Hash函数H,K1和K2(K1≠K2)计算MAC=H(K1 ||H (K2||m)),其中K1和K2由同一个密钥K导出

?工作流程:

?H是hash函数(嵌入的散列函数),K是密钥,K+是K左连填充若干0之后的结果,B表示计算消息摘要时消息分块的字节长度,L表

示消息摘要按字节计算的长度,M是消息输入

?ipad表示0x36重复b/8次,opad表示0x5c重复b/8次

?n表示嵌入散列函数产生的散列码长度

?一般来说K的长度不小于n;如果K大于b,则将其作为散列函数的输入而产生一个n位的密钥

?HMAC(K,M)=H[(K+⊕opad) || H[(K+⊕ipad) ||‖M]]

?在K的左边加上足够的0以得到B字节的K+;

?将(1)得到的K+与ipad异或,产生分组S1;

?将M接在(2)得到的S1后面;

?将H应用于(3)的结果计算消息摘要;

?K+与opad异或产生b位分组S0;

(6)将(4)消息摘要接在(5)的S0后面;

(7)应用H于(6)的结果,输出该函数值HMAC(K,M)

?CCT认证加密标准

?消息认证方式

?SSL:认证加密

?IPSec:加密认证

?SSH:加密、认证

?

?先认证后加密:接受方解密和验证程序都完成后才能确定消息是否有效。——具有密文隐藏功能

?先加密后认证:传送信道不安全,传送信息被篡改(或出现传送错误),接受方在解密运算之前就可以发现,从而减少不必

要的解密浪费;——不具有密文隐藏功能

密码学与信息安全的关系

密码学与网络信息安全 【论文摘要】本文以优化中小企业信息化管理为思想,以系统开发为宗旨从系统企业的需求到信息化需要系统的支撑,然后设计出进销存管理系统,最后实现进销存管理系统的整个过程。关键词:信息化进销存优化管理。 【论文关键词】密码学信息安全网络 密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。 密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。 密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。它的现实研究成果,特别是各国政府现用的密码编制及破译手段都具有高度的机密性。 网络安全,这是个百说不厌的话题。因为在互联网上,每台计算机都存在或多或少的安全间题。安全问题不被重视,必然会导致严重后果。诸如系统被破坏、数据丢失、机密被盗和直接、间接的经济损失等。这都是不容忽视的问题。既然说到网络安全,我们经常提到要使用防火墙、杀毒软件等等。这些的确很重要,但是人们往往忽视了最重要的,那就是思想意识。 人类的主观能动性是很厉害的,可以认识世界、改造世界,正确发挥人的主观能动性可以提高认知能力。但是人类本身固有的惰性也是十分严重的,喜欢墨守成规、图省事。就是这点惰性给我的网络带来了安全隐患。据不完全统计,每年因网络安全问题而造成的损失超过300亿美元,其中绝大多数是因为内部人员的疏忽所至。所以,思想意识问题应放在网络安全的首要位置。 一、密码 看到这里也许会有读者以为我大放网词,那就先以我自己的一个例子来说起吧。本人也很懒,但是也比较注意安全性,所以能设置密码的地方都设置了密码,但是密码全是一样的。从E-mail信箱到用户Administrator,统一都使用了一个8位密码。我当初想:8位密码,怎么可能说破就破,固若金汤。所以从来不改。用了几年,没有任何问题,洋洋自得,自以为安全性一流。恰恰在你最得意的时候,该抽你嘴巴的人就出现了。我的一个同事竟然用最低级也是最有效的穷举法吧我的8位密码给破了。还好都比较熟,否则公司数据丢失,我就要卷着被子回家了。事后我问他,怎么破解的我的密码,答曰:只因为每次看我敲密码时手的动作完全相同,于是便知道我的密码都是一样的,而且从不改变。这件事情被我引以为戒,以后密码分开设置,采用10位密码,并且半年一更换。现在还心存余悸呢。我从中得出的教训是,密码安全要放在网络安全的第一位。因为密码就是钥匙,如果别人有了你家的钥匙,就可以堂而皇之的进你家偷东西,并且左邻右舍不会怀疑什么。我的建议,对于重要用户,诸如:Root,Administratoi的密码要求最少要8位,并且应该有英文字母大小写以及数字和其他符号。千万不要嫌麻烦,密码被破后更麻烦。为什么要使用8位密码呢,Unix一共是0x00

1密码学-DES实验报告

南京信息工程大学实验(实习)报告实验(实习)名称对称密码实验(实习)日期得分指导教师 系计软院专业网络工程年2011 班次 1 姓名学号20111346026 一.实验目的 1.理解对称加密算法的原理和特点 2.理解DES算法的加密原理 二.实验内容 第一阶段:初始置换IP。在第一轮迭代之前,需要加密的64位明文首先通过初始置换IP 的作用,对输入分组实施置换。最后,按照置换顺序,DES将64位的置换结果分为左右两部分,第1位到第32位记为L0,第33位到第64位记为R0。 第二阶段:16次迭代变换。DES采用了典型的Feistel结构,是一个乘积结构的迭代密码算法。其算法的核心是算法所规定的16次迭代变换。DES算法的16才迭代变换具有相同的结构,每一次迭代变换都以前一次迭代变换的结果和用户密钥扩展得到的子密钥Ki作为输入;每一次迭代变换只变换了一半数据,它们将输入数据的右半部分经过函数f后将其输出,与输入数据的左半部分进行异或运算,并将得到的结果作为新的有半部分,原来的有半部分变成了新的左半部分。用下面的规则来表示这一过程(假设第i次迭代所得到的结果为LiRi): Li = Ri-1; Ri = Li-1⊕f(Ri-1,Ki);在最后一轮左与右半部分并未变换,而是直接将R16 L16并在一起作为未置换的输入。 第三阶段:逆(初始)置换。他是初始置换IP的逆置换,记为IP-1。在对16次迭代的结果(R16 L16)再使用逆置换IP-1后,得到的结果即可作为DES加密的密文Y输出,即Y = IP-1 (R16 L16) 三.流程图&原理图

流程图

DES原理图

现代密码学考试重点总结 (1)

古典密码 1.密码的基本概念 ○1作为数学的一个分支,是密码编码学和密码分析学的统称 ○2密码编码学:使消息保密的技术和科学 研究内容:1、序列密码算法的编码技术 2、分组密码算法的编码技术 3、公钥密码体制的编码技术 ○3密码分析学:破译密文的科学和技术 研究内容:1、密码算法的安全性分析和破译的理论、方法、技术和实践 2、密码协议的安全性分析的理论与方法 3、安全保密系统的安全性分析和攻击的理论、方法、技术和实践2.密码体制的5构成要素: ○1M:明文消息空间,表示所有可能的明文组成的有限集。 ○2C:密文消息空间,表示所有可能的密文组成的有限集。 ○3K:密钥空间,表示所有可能的密钥组成的有限集。 ○4E:加密算法集合。 ○5D:解密算法集合 3.密码体制的分类: ○1对称密匙密码系统加密密钥=解密密钥钥匙是保密的依赖密钥选择 ○2非对称密匙密码系统加密密钥≠解密密钥 加密密钥为公钥(Public Key)解密密钥为私钥(Private Key) 4.古典密码体制的算法 ○1棋盘密码希腊作家Polybius提出密钥空间:25 ○2移位密码 ○3代换密码 ○4维吉尼亚密码 ○5仿射密码:仿射密码是移位密码的一个推广,其加密过程中不仅包含移位操作,而且使用了乘法运算 例题: 1-1mod26=1 3-1mod26=9 5- 1mod26=21 7-1mod26=15 11-1mod26=19 17-1mod26=23 25- 1mod26=25 ○6置换密码 ○7Hill密码 例题: 5.密码分析的Kerckhoffs原 则:攻击者知道所用的加密算法的内部机理,不知道的仅仅是加密算法所采用的加密密钥 6.常用的密码分析攻击分为以下四类:

密码学实验报告

密码学实验报告 学院:计算机科学与技术 班级: 学号: 姓名: 指导老师:

密码学 实验日志 实验题目: DES (或AES )分组密码 实验目的: 熟悉分组密码加解密算法的基本原理,加深对所提供的部分源程序的理解; 分组密码将明文分成一组一组,在密钥的控制下,经过加密变换生成一组一组的密文。具体而言,分组密码就是将明文消息序列 ,,,,21i m m m 划分成等长的消息组 ),,,,(),,,,(22121n n n n m m m m m m ++在密钥t k k k k ,,,21 =的控制下按固定的加密算法一组一 组进行加密,输出一组一组密文 ),,,,(),,,,(22121l l l l c c c c c c ++。 下面的实验以DES 算法为例,DES 算法明文分组长为64bit ,加密后得到64bit 的密文,输入初始种子密钥为64bit ,第8、16、24、32、40、48、56、64为奇偶校验位,实际的密钥长为56bit 。DES 加密过程由三个阶段来完成: (1) 初始置换IP ,用于重排明文分组的64bit 数据; (2) 相同结构的16轮迭代,每轮中都有置换和代换运算,第16轮变换的输出分为左右两半,并交换次序。 (3) 逆初始置换IP -1 (为IP 的逆)后,产生64bit 的密文。 实验要求: (1) Windows 系列操作系统; (2) VC6.0编程环境。 (3) 提交完整的程序代码清单和详细的注释; (4) 要求有程序运行结果显示。当加密成功时,得到密文;输入相同的密钥,能将密文恢复成明文。 实验主要步骤: (1) 熟悉分组密码加解密算法的基本原理,加深对所提供的部分源程序的理解; (2) 分析源程序中密码算法的加解密和子密钥生成等典型模块的主要功能,并对源程序加上注释; (3) 在已提供的部分源程序的基础上,添加源程序省缺的部分; (4) 对给定的消息分组进行加解密运算和验证。 源代码: #include #include #include typedef bool (*PSubKey)[16][48]; enum {ENCRYPT,DECRYPT}; //选择:加密;解密 static bool SubKey[2][16][48]; // 16圈子密钥 static bool Is3DES; // 3次DES 标志 static char Tmp[256], deskey[16]; //暂存字符串,密钥串

现代密码学考试总结

密码主要功能: 1.机密性:指保证信息不泄露给非授权的用户或实体,确保存储的信息和传输的信息仅能 被授权的各方得到,而非授权用户即使得到信息也无法知晓信息容,不能使用。 2.完整性:是指信息未经授权不能进行改变的特征,维护信息的一致性,即信息在生成、 传输、存储和使用过程中不应发生人为或非人为的非授权篡改(插入、替换、删除、重排序等),如果发生,能够及时发现。 3.认证性:是指确保一个信息的来源或源本身被正确地标识,同时确保该标识的真实性, 分为实体认证和消息认证。 消息认证:向接收方保证消息确实来自于它所宣称的源; 实体认证:参与信息处理的实体是可信的,即每个实体的确是它所宣称的那个实体,使得任何其它实体不能假冒这个实体。 4.不可否认性:是防止发送方或接收方抵赖所传输的信息,要求无论发送方还是接收方都 不能抵赖所进行的行为。因此,当发送一个信息时,接收方能证实该信息的确是由所宣称的发送方发来的;当接收方收到一个信息时,发送方能够证实该信息的确送到了指定的接收方。 信息安全:指信息网络的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露、否认等,系统连续可靠正常地运行,信息服务不中断。 信息安全的理论基础是密码学,根本解决,密码学理论 对称密码技术——分组密码和序列密码——机密性; 消息认证码——完整性,认证性; 数字签名技术——完整性,认证性,不可否认性; 1949年Shannon发表题为《保密系统的通信理论》 1976年后,美国数据加密标准(DES)的公布使密码学的研究公开,密码学得到了迅速发展。1976年,Diffe和Hellman发表了《密码学的新方向》,提出了一种新的密码设计思想,从而开创了公钥密码学的新纪元。 置换密码 置换密码的特点是保持明文的所有字符不变,只是利用置换打乱了明文字符的位置和次序。列置换密码和周期置换密码 使用密码设备必备四要素:安全、性能、成本、方便。 密码体制的基本要求: 1.密码体制既易于实现又便于使用,主要是指加密函数和解密函数都可以高效地计算。 2.密码体制的安全性是依赖密钥的安全性,密码算法是公开的。 3.密码算法安全强度高,也就是说,密码分析者除了穷举搜索攻击外再找不到更好的攻击 方法。 4.密钥空间应足够大,使得试图通过穷举密钥空间进行搜索的方式在计算上不可行。 密码算法公开的意义: 有利于增强密码算法的安全性;

实验报告_密码学

信息安全实验报告 学号: 学生姓名: 班级:

实验三密码学实验 一、古典密码算法实验 一、实验目的 通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。 二、编译环境 运行windows 或linux 操作系统的PC 机,具有gcc(linux)、VC (windows)等C语言编译环境。 三、实验原理 古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密码算法建立一个初步的印象。 1.替代密码 替代密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文。例如:明文字母a、b、c、d ,用D、E、F、G做对应替换后形成密文。 替代密码包括多种类型,如单表替代密码、多明码替代密码、多字母替代密码、多表替代密码等。下面我们介绍一种典型的单表替代密码,恺撒(caesar)密码,又叫循环移位密码。它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代。它的加密过程可以表示为下面的函数:E(m)=(m+k) mod n 其中:m 为明文字母在字母表中的位置数;n 为字母表中的字母个数;k 为密钥;E(m)为密文字母在字母表中对应的位置数。例如,对于明文字母H,其在字母表中的位置数为8,设k=4,则按照上式计算出来的密文为L:E(8) = (m+k) mod n = (8+4) mod 26 = 12 = L

2.置换密码 置换密码算法的原理是不改变明文字符,只将字符在明文中的排列顺序改 变,从而实现明文信息的加密。置换密码有时又称为换位密码。 矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给的 顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中字母,从而 形成密文。例如,明文为attack begins at five,密钥为cipher,将明文按照每行 6 列的形式排在矩阵中,形成如下形式: a t t a c k b e g i n s a t f i v e 根据密钥cipher中各字母在字母表中出现的先后顺序,给定一个置换: 1 2 3 4 5 6 f = 1 4 5 3 2 6 根据上面的置换,将原有矩阵中的字母按照第 1 列,第 4 列,第 5 列,第 3 列, 第2列,第 6 列的顺序排列,则有下面形式: a a c t t k b i n g e s a I v f t e 从而得到密文:abatgftetcnvaiikse 其解密的过程是根据密钥的字母数作为列数,将密文按照列、行的顺序写出,再根据由密钥给出的矩阵置换产生新的矩阵,从而恢复明文。 四、实验内容和步骤 1、根据实验原理部分对替代密码算法的介绍,自己创建明文信息,并选择 一个密钥k,编写替代密码算法的实现程序,实现加密和解密操作。 2、根据实验原理部分对置换密码算法的介绍,自己创建明文信息,并选择一个密钥,编写置换密码算法的实现程序,实现加密和解密操作。 五、总结与思考 记录程序调试过程中出现的问题,分析其原因并找出解决方法。记录最终实现的程序执行结果。

密码学复习要点

密码学复习要点 第一章引言 密码学的基本概念: 1.什么是密码体制?(五大部分) 2.根据密码分析者所拥有的资源来看,对密码体制的攻击通常有哪 几种方式?其攻击强弱程度排序。(四种方式)。 3.密码体制的安全性的几个不同概念? 4.什么是公钥(非对称)密码体制?什么是(对称)私钥密码体制?第二章古典密码 1.欧几里得算法求公因子及求逆的过程。 2.单表代替密码(仿射密码)的加解密流程。 第三章Shannon 理论 1.熵的定义。(熵,条件熵,联合熵) 2.贝叶斯公式。 3.密码体制中各部分熵的计算。例3.1 第四章分组密码 1.Shannon提出的分组密码设计的两种基本方法。(扩散和混乱) 2.分组密码的两种基本结构:Feistel网络和SP网络.

3.DES和AES分组密码算法的基本结构。(主要参数,圈变换主要组 成部件) 4.分组密码的工作模式。 第五章公钥密码 1.欧拉定理,费马定理,利用欧拉定理或费马定理进行快速模幂运 算。例5.4 例5.7 2.RSA公钥密码体制的详细加解密流程及解密正确性证明。 3.ElGamal公钥加密体制的详细加解密流程。 4.椭圆曲线上点的计算(P+Q和2P)注意是有限域上的点。 第六章序列密码与移位寄存器 1.线性反馈移位寄存器的反馈函数、递推关系、联系多项式的定义。 2.给定联系多项式和初态,求输出序列及其周期。 3.求线性反馈移位寄存器序列的线性综合解。(B-M算法) 第七章数字签名 1.RSA数字签名算法及其签名有效性证明。(参考加密体制的证明) 2.ElGamal数字签名算法。 第八章Hash函数 1.Hash函数的抗强碰撞性(弱无碰撞性)和抗强碰撞性(强无碰撞 性) 2.MD5和SHA-1的一些基本结构和重要参数:消息摘要长度,消息 填充格式。

信息安全与密码学上机报告

《信息安全与密码学》实验报告 姓名: 学号: 学院: 班级: 成绩: 2014年12月31日 目录

1移位密码 (44) 1.1算法原理 (44) 1.2实现过程 (44) 1.2.1 程序代码 (44) 1.2.2运行界面 (77) 2置换密码 (88) 2.1算法原理 (88) 2.2实现过程 (99) 2.2.1 程序代码 (99) 2.2.2运行界面 (1111) 3 维吉尼亚密码 (1212) 3.1算法原理 (1212) 3.2实现过程 (1212) 3.2.1程序代码 (1212) 3.2.1运行界面................. 错误!未定义书签。错误!未定义书签。 4 Eulid算法....................... 错误!未定义书签。错误!未定义书签。 4.1算法原理................... 错误!未定义书签。错误!未定义书签。 4.2实现过程................... 错误!未定义书签。错误!未定义书签。 4.2.1程序代码................. 错误!未定义书签。错误!未定义书签。 4.2.2运行界面................. 错误!未定义书签。错误!未定义书签。 5 Eulid扩展算法................... 错误!未定义书签。错误!未定义书签。 5.1算法原理................... 错误!未定义书签。错误!未定义书签。 5.2实现过程................... 错误!未定义书签。错误!未定义书签。 5.2.1程序代码................. 错误!未定义书签。错误!未定义书签。 5.2.2运行界面................. 错误!未定义书签。错误!未定义书签。 6 素性检验 ........................ 错误!未定义书签。错误!未定义书签。 6.1算法原理................... 错误!未定义书签。错误!未定义书签。

密码学知识点总结----考试复习专用

1 密码学分类 2 攻击分类 3 安全业务 4 算法输入输出位数 5 密钥分配管理 6 密钥分配 7 公钥分配 8 三重DES 9 杂凑的要求 10 欧几里得 11 本原根 12勒让德符号 13数字签名的执行方式 14强单向杂凑 15模运算性质 16 同余式 17 DES 18 AES 19 RSA 20 MD5 21费尔马定理 22 欧拉定理 23 中国剩余定理 24 四种工作模式 1 密码学分类 单钥体制双钥体制 2 攻击分类 唯密文攻击已知明文攻击选择明文攻击选择密文攻击 3 安全业务 认证业务保密业务完整性业务不可否认业务访问控制 4 算法输入输出位数 DES 64比特明文56比特密钥输出64比特密文 AES 128 192 256 比特 RSA 输入664比特 MD5 输入512比特分组128比特输出 5 密钥分配管理 两个用户A和B获得共享密钥的方法包括: ①密钥由A选取并通过物理手段发送给B。 ②密钥由第三方选取并通过物理手段发送给A和B。

③如果A、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方。 ④如果A和B与第三方C分别有一保密信道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B 6 密钥分配 ①A向KDC发出会话密钥请求 ②KDC为A的请求发出应答。 ②A存储会话密钥,并向B转发EKB[KS‖IDA]。 ④B用会话密钥KS加密另一个一次性随机数N2,并将加密结果发送给A。 ⑤A以f(N2)作为对B的应答,其中f是对N2进行某种变换(例如加1)的函数,并将应答用会话密钥加密后发送给B。 7 公钥分配 ①用户A向公钥管理机构发送一个带时戳的消息,消息中有获取用户B的当前公钥的请求。 ②管理机构对A的请求作出应答,应答由一个消息表示,该消息由管理机构用自己的秘密钥SKAU加密,因此A能用管理机构的公开钥解密,并使A相信这个消息的确是来源于管理机构。 ③A用B的公开钥对一个消息加密后发往B,这个消息有两个数据项: 一是A的身份IDA,二是一个一次性随机数N1,用于惟一地标识这次业务。 ④B以相同方式从管理机构获取A的公开钥(与步骤①、②类似)。这时,A和B都已安全地得到了对方的公钥,所以可进行保密通信。然而,他们也许还希望有以下两步,以认证对方。 ⑤B用PKA对一个消息加密后发往A,该消息的数据项有A的一次性随机数N1和B产生的一个一次性随机数N2。因为只有B能解密③的消息,所以A收到的消息中的N1可使其相信通信的另一方的确是B。 ⑥A用B的公开钥对N2加密后返回给B,可使B相信通信的另一方的确是A。

密码学实验第三组实验报告

云南大学数学与统计学实验教学中心实验报告 课程名称:密码学实验学期:2013-2014学年第一学期成绩: 指导教师:陆正福学生姓名:卢富毓学生学号:20101910072 实验名称:零知识证明实验要求:必做实验学时:4学时 实验编号: No.3 实验日期:2013/9/28完成日期:2012/10/18 学院:数学与统计学院专业:信息与计算科学年级: 2010级 一、实验目的: 了解零知识证明,同时掌握FFS识别方案。 二、实验内容: 1. 理解零知识证明 2. 基于GMP实现FFS零知识证明方案 三、实验环境 Linux平台 Code::Block IDE https://www.360docs.net/doc/5518768814.html, 网络在线编程平台(本实验是在此平台中完成的,效果一样) 四、实验过程(请学生认真填写): 1. 预备知识: “零知识证明”它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。 2. 实验过程 A、原理分析: Feige-Fait-Shamir是一种并行的认证形式。具体做法如下 首先:选择大素数q 和p, 计算n=pq ,Peggy 拥有密钥s1, s2, ...,sk 接着做如下UML图中的内容:

//缺点有:首先在编写好程序后才发现,无法模拟伪造者来进行。这个由结果就能看出来。 //同时,此程序仅仅模拟,做不到并行认证。 五、实验总结 1.遇到的问题、分析并的出方案(列出遇到的问题和解决办法,列出没有解决的问题):遇到问题: 主要是对于算法的不熟悉,不能清晰的认识整个算法运作。 分析并解决: 仔细揣摩,并且动手写了一下算法的UML图。得到了加深。 2.体会和收获。 收获: 加深了GMP中函数的运用。 在学习零知识证明的知识后,了解了什么是零知识证明,同时会了一点零知识证明的方法。这是比较大的收获——毕竟以前从没有想过这方面的东西,接触之后才恍然。 当然这个FFS算法也并不是一定的安全。也存在着一定的缺陷和漏洞,例如验证次数、对于vi的猜测等等。 六、参考文献 GMP_Document 《应用密码学》林岱岳 《密码学概论》wade trape 七、教师评语:

网络信息安全_密码学基本概念

密码学基本概念 一.学科分类 密码术(Cryptology) (1)密码学(Cryptography) 研究如何构建强大、有效的加密/解密方法体系的学科 (2)密码分析学(Cryptanalysis) 研究加密/解密方法体系所存在的弱点,找出破译密码方法的学科 二. 基本加密通信模型 Alice Bob & Eve 的加密通信: Alice和Bob 要进行通信,而Eve将会截获他们的消息,所以他们使用加密的方法通信 1. 基本概念 明文(Plaintext)是一组Alice和Bob都能够理解其含义的消息或者数据 密文(Cipher text )是一组变换后的数据或消息,它使得非法用户不能理解其中的信息 密钥(Key)能控制变化结果的参数信息 加密 (Encryption)使用一套变换方法,使其输出的密文依赖于输入的明文和加密密钥(eKey)

解密 (Decryption)使用一套变换方法,使其输出的明文依赖于输入的密文和解密密钥(dKey) 用符号表示 加密:Cipher text = Encryption (Plaintext, eKey) 解密:Plaintext = Decryption (Cipher text, dKey) 2. 体系划分 以加密密钥和解密密钥的关系来划分为体系: 1。如果加密密钥(eKey)和解密密钥(dKey)相同,或者实质上相同,这样的加密体系称为单钥或对称密钥体系 2。如果加密密钥(eKey)和解密密钥(dKey)不相同,或者很难从其中一个密钥推导出另一个密钥,这样的加密体系称为双钥或非对称密钥体系 三. 实例 1 对称密钥 在经典加密方法中使用两种类型进行变换: (1)换位法(Permutation cipher / Transposition cipher):明文中 的每个字母或符号没有改变,但它们在密文中的位置进行了重新 排列。 经典换位加密法 (2)替换法(Substitution cipher):将明文中每个字母、数字、符号按 一定规则替换成另外一个符号。 又可分为单码替换、多码替换、多图替换 单码替换:明文被映射到一个固定的替换表中 多码替换:明文被映射到多于一个替换表中 多图替换:

现代密码学考试总结

现代密码学考试总结 https://www.360docs.net/doc/5518768814.html,work Information Technology Company.2020YEAR

密码主要功能: 1.机密性:指保证信息不泄露给非授权的用户或实体,确保存储的信息和传输的信息仅 能被授权的各方得到,而非授权用户即使得到信息也无法知晓信息内容,不能使用。 2.完整性:是指信息未经授权不能进行改变的特征,维护信息的一致性,即信息在生 成、传输、存储和使用过程中不应发生人为或非人为的非授权篡改(插入、替换、删除、重排序等),如果发生,能够及时发现。 3.认证性:是指确保一个信息的来源或源本身被正确地标识,同时确保该标识的真实 性,分为实体认证和消息认证。 消息认证:向接收方保证消息确实来自于它所宣称的源; 实体认证:参与信息处理的实体是可信的,即每个实体的确是它所宣称的那个实体,使得任何其它实体不能假冒这个实体。 4.不可否认性:是防止发送方或接收方抵赖所传输的信息,要求无论发送方还是接收方 都不能抵赖所进行的行为。因此,当发送一个信息时,接收方能证实该信息的确是由所宣称的发送方发来的;当接收方收到一个信息时,发送方能够证实该信息的确送到了指定的接收方。 信息安全:指信息网络的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露、否认等,系统连续可靠正常地运行,信息服务不中断。 信息安全的理论基础是密码学,根本解决,密码学理论 对称密码技术——分组密码和序列密码——机密性; 消息认证码——完整性,认证性; 数字签名技术——完整性,认证性,不可否认性; 1949年Shannon发表题为《保密系统的通信理论》 1976年后,美国数据加密标准(DES)的公布使密码学的研究公开,密码学得到了迅速发展。 1976年,Diffe和Hellman发表了《密码学的新方向》,提出了一种新的密码设计思想,从而开创了公钥密码学的新纪元。 置换密码 置换密码的特点是保持明文的所有字符不变,只是利用置换打乱了明文字符的位置和次序。 列置换密码和周期置换密码 使用密码设备必备四要素:安全、性能、成本、方便。 密码体制的基本要求: 1.密码体制既易于实现又便于使用,主要是指加密函数和解密函数都可以高效地计算。 2.密码体制的安全性是依赖密钥的安全性,密码算法是公开的。 3.密码算法安全强度高,也就是说,密码分析者除了穷举搜索攻击外再找不到更好的攻 击方法。 4.密钥空间应足够大,使得试图通过穷举密钥空间进行搜索的方式在计算上不可行。

密码学实验报告模板总结模板计划模板.doc

密码学应用与实践课程实验报告 实验 1:实现 DES密码体制 一、实验目的 1.编写程序实现 DES的加、解 密:1)编程构造 DES的密钥; 2)应用上述获得的密钥将一段英文或文件进行加、解密。 2.用 DES算法实现口令的安全 二、实验内容 1.DES原理 DES综合运用了置换,代换,移位多种密码技术,是一种乘积密码。在算法结构上采用迭代 结构,从而使其结构清晰,调理清楚,算法为对合运算,便于实现,运行速度快。DES使用了初始置换IP 和 IP-1 各一次(相应的置换看算法描述图表)置换P16 次,安排使用这 3 个置换的目的是把数据彻底打乱重排。选择置换 E 一方面把数据打乱重排,另一方面把32 位输入扩展为48 位,算法中除了S- 盒是非线性变换外,其余变换均为显示变换,所以保密 的关键是选择S- 盒。符合以下 3 条准则: (1)对任何一个 S- 盒而言,没有任何线性方程式等价于此S-盒的输出输入关系,即是S- 盒是非线性函数。 (2)改变 s- 盒的任何一位输入,都会导致两位以上的输出改变,即满足" 雪崩效应 " 。(3)当固定某一个位的输入时,S- 盒的 4 个出位之间,其中0 和 1 的个数之差小。这个准 则的本质是数据压缩,把四位输入压缩为 4 位输出。选择 S-盒函数的输入中任意改变数位, 其输出至少变化两位。因为算法中使用了16 次迭代,大大提高了保密性。 2.DES算法由加密、解密和子密钥的生成三部分组成 1)加密 DES算法处理的数据对象是一组64 比特的明文串。设该明文串为m=m1m2m64 (mi=0 或 1) 。明文串经过64 比特的密钥K 来加密,最后生成长度为64 比特的密文E。其加密过程图示如下:

现代密码学知识点整理:.

第一章 基本概念 1. 密钥体制组成部分: 明文空间,密文空间,密钥空间,加密算法,解密算法 2、一个好密钥体制至少应满足的两个条件: (1)已知明文和加密密钥计算密文容易;在已知密文和解密密钥计算明文容易; (2)在不知解密密钥的情况下,不可能由密文c 推知明文 3、密码分析者攻击密码体制的主要方法: (1)穷举攻击 (解决方法:增大密钥量) (2)统计分析攻击(解决方法:使明文的统计特性与密文的统计特性不一样) (3)解密变换攻击(解决方法:选用足够复杂的加密算法) 4、四种常见攻击 (1)唯密文攻击:仅知道一些密文 (2)已知明文攻击:知道一些密文和相应的明文 (3)选择明文攻击:密码分析者可以选择一些明文并得到相应的密文 (4)选择密文攻击:密码分析者可以选择一些密文,并得到相应的明文 【注:①以上攻击都建立在已知算法的基础之上;②以上攻击器攻击强度依次增加;③密码体制的安全性取决于选用的密钥的安全性】 第二章 古典密码 (一)单表古典密码 1、定义:明文字母对应的密文字母在密文中保持不变 2、基本加密运算 设q 是一个正整数,}1),gcd(|{};1,...,2,1,0{* =∈=-=q k Z k Z q Z q q q (1)加法密码 ①加密算法: κκ∈∈===k X m Z Z Y X q q ;,;对任意,密文为:q k m m E c k m od )()(+== ②密钥量:q (2)乘法密码 ①加密算法: κκ∈∈===k X m Z Z Y X q q ;,;* 对任意,密文为:q km m E c k m od )(== ②解密算法:q c k c D m k mod )(1 -== ③密钥量:)(q ? (3)仿射密码 ①加密算法: κκ∈=∈∈∈===),(;},,|),{(;21* 2121k k k X m Z k Z k k k Z Y X q q q 对任意;密文

密码学与网络信息安全

密码学与网络信息安全 摘要伴随着网络的普及,计算机网络安全成为影响网络效能的重要问题,这就对网络的安全提出了更高的要求。一个安全的网络信息系统应当确保所传输信息的完整性、保密性、不可否认性等。目前保障通信和网络安全技术的种类很多,其中数据加密技术是保障信息安全的最核心的技术措施,信息加密也是现代密码学的主要组成部分。本文分析了密码学的发展趋势及一些常用的数据加密算法。 关键词网络信息安全;密码学;数据加密技术 1.网络安全技术研究的目的和意义 近年来,互联网络以其简捷、方便以及费用低廉等优点,己经越来越深入地渗透到互联网络不仅能够给人们提供信息资料,还使得网上电子商务的开展如网上购物、网上书店等成为可能,大大地影响了人们的生活。原来传统的信息媒体诸如纸张、胶片、磁带等纷纷让位于电子媒体。人了门可以在网络上通过网络门户如Yahoo。O、Sohu查询资料,或者通过电子邮件以及BBS等在网上交流信息,这一切都大大的提高了人们的工作效率。同时电子商务的出现标志着互联网从一个主要提供信息服务的网络向商业领域的拓展,这样就可以吸引更多的资金投入到互联网络的建设之中,从而更大的促进网络的发展。 网络的发展给人们带来了前所未有的便利,同时也给人们提出了新的挑战。每天互联网络上都有大量数据在传输,这其中既有对安全性要求相对较低的网页内容,也有安全要求相对较高的电子邮件以及ICQ信息,还有要求高度保密的电子商务交易数据。所有这一切,都对互联网上的数据安全提出了更高的要求。由于Internet网络本身的开放性,使每一个上网的用户既成为网络的受益者也可能成为网络的破坏者。同样由于目前Internet网络的无序化使得网络秩序基本上处于无法可依的状态。因此就要求对网上用户传来的数据进行加密/解密、签名/校验等工作,以保证自己的网上安全。 目前所有在互联网网络上的通信都使用TCP/IP协议,由于互联网络本身特点以及TCP/IP协议的弱点,TCP八P协议在信息到达终点之前可能要通过许多中间计算机和单独的网络,这使得它的传输信息容易受到第三方的干扰,因此使得在网络上传输的数据面临着各种安全问题。在网络上传输的数据对于数据的安全性也有不同的要求,例如,传输的网页数据仅仅要求不被篡改即可,而电子邮件则要求不能被窃听或者篡改,而电子商务中传输的敏感数据,如订货单等则要求相当高的安全性,其数据不能被窃听、篡改,同时接收方和发送方必须不能被假冒。同时网上还有一些数据,如个人信用卡密码、个人档案、政府公文等都对数据传输的安全性提出了更高的要求。针对网上数据传输的安全性提出了以下的要求: 1.机密性:数据不会被未授权的窃听者所窃取。 2.可认证性:能够确认文件的来源,确实是传送者本人,而不是由别人伪造的。 3.完整性:文件是真正的原文,并未被无意或者恶意的篡改。 4.不可否认性:发送方在发送文件之后,不可否认他曾送出这份文件。 密码学是信息安全的核心技术之一,解决这些问题的唯一有效的手段就是使用现代密码技术。信息加密技术是保障信息安全的最基本、最核心的技术措施。信息加密也是现代密码

(完整版)密码学学习心得

密码学认识与总结 专业班级信息112 学号201112030223 姓名李延召报告日期. 在我们的生活中有许多的秘密和隐私,我们不想让其他人知道,更不想让他们去广泛传播或者使用。对于我们来说,这些私密是至关重要的,它记载了我们个人的重要信息,其他人不需要知道,也没有必要知道。为了防止秘密泄露,我们当然就会设置密码,保护我们的信息安全。更有甚者去设置密保,以防密码丢失后能够及时找回。密码”一词对人们来说并不陌生,人们可以举出许多有关使用密码的例子。现代的密码已经比古代有了长远的发展,并逐渐形成一门科学,吸引着越来越多的人们为之奋斗。 一、密码学的定义 密码学是研究信息加密、解密和破密的科学,含密码编码学和密码分析学。 密码技术是信息安全的核心技术。随着现代计算机技术的飞速发展,密码技术正在不断向更多其他领域渗透。它是集数学、计算机科学、电子与通信等诸多学科于一身的交叉学科。使用密码技术不仅可以保证信息的机密性,而且可以保证信息的完整性和确证性,防止信息被篡改、伪造和假冒。目前密码的核心课题主要是在结合具体的网络环境、提高运算效率的基础上,针对各种主动攻击行为,研究各种可证安全体制。 密码学的加密技术使得即使敏感信息被窃取,窃取者也无法获取信息的内容;认证性可以实体身份的验证。以上思想是密码技术在信息安全方面所起作用的具体表现。密码学是保障信息安全的核心;密码技术是保护信息安全的主要手段。 本文主要讲述了密码的基本原理,设计思路,分析方法以及密码学的最新研究进展等内容 密码学主要包括两个分支,即密码编码学和密码分析学。密码编码学对信息进行编码以实现信息隐藏,其主要目的是寻求保护信息保密性和认证性的方法;密码分析学是研究分析破译密码的学科,其主要目的是研究加密消息的破译和消息的伪造。密码技术的基本思想是对消息做秘密变换,变换的算法即称为密码算法。密码编码学主要研究对信息进行变换,以保护信息在传递过程中不被敌方窃取、解读和利用的方法,而密码分析学则于密码编码学相反,它主要研究如何分析和破译密码。这两者之间既相互对立又相互促进。密码的基本思想是对机密信

密码学实验讲义及实验报告2014

密码学基础 实验指导书 黑龙江大学计算机科学技术学院 2013年3月

目录 前言........................................................................................................................... - 2 -要求与评分标准....................................................................................................... - 3 -1要求. (3) 2评分标准 (3) 实验1 古典密码的实现(3学时) .................................................................... - 4 -实验2 对称密钥密码体制的实现(6学时) .................................................... - 4 -实验3 公开密钥密码算法的实现(6学时) .................................................... - 5 -实验4 数字签名算法的实现(3学时) ............................................................ - 5 -附录1:实验报告格式 ........................................................................................... - 7 -

信息安全学习总结10-密码学基础

(十)密码学基础 作者:山石1.密码学的起源 1949年之前:密码学是一门艺术 1949-1975年:密码学成为科学 1976年以后:密码学的新方向——公钥密码学 2.通信系统典型攻击 窃听:信息从被监视的通信过程中泄露出去。 完整性破坏:数据的一致性通过对数据进行未授权的创建、修改或破坏受到损坏。 业务流分析:通过对通信业务流模式进行观察而造成信息被泄露给未授权的实体。 消息篡改:当所传送的内容被改变而未发觉,并导致一种非授权后果时出现消息篡改。包括:内容修改,消息内容被插 入、删除、修改;顺序修改,插入、删除或重组消息序列; 时间修改,消息延迟或重放 旁路:攻击者发掘系统的缺陷或安全脆弱性 服务拒绝:当一个实体不能执行它的正当功能,或它的动作妨碍了别的实体执行它们的正当功能的时候便发生服务拒 绝。 冒充:就是一个实体(人或系统)假装成另一个不同的实体,从一个假冒信息源向网络中插入消息。冒充经常和某些别的

攻击形式一起使用,特别是消息的重演与篡改。 重演:当一个消息或部分消息为了产生非授权效果而被重复时出现重演。 抵赖:在一次通信中涉及到的那些实体之一不承认参加了该通信的全部或一部分。接受者否认收到消息;发送者否认发 送过消息。 陷阱门:当系统的实体受到改变致使一个攻击者能对命令,或对预订的事件或事件序列产生非授权的影响时,其结果就 称为陷阱门。 特洛伊木马:对系统而言的特洛伊木马,是指它不但具有自己的授权功能,而且还具有非授权的功能。 3.基本概念和术语 (1)密码学概念 密码学(Cryptology):研究信息系统安全保密的科学。 密码编码学(Cryptography):研究对信息进行编码,实现对信息的隐蔽。 密码分析学(Cryptanalytics):研究加密消息的破译或消息的伪造。 (2)密码学术语 明文(Plaintext):消息被称为明文。 密文(Ciphertext):被加密的消息称为密文。 加密(Encryption):用某种方法伪装消息以隐蔽它的内容的

现代密码学 学习心得

混合离散对数及安全认证 摘要:近二十年来,电子认证成为一个重要的研究领域。其第一个应用就是对数字文档进行数字签名,其后Chaum希望利用银行认证和用户的匿名性这一性质产生电子货币,于是他提出盲签名的概念。 对于所有的这些问题以及其他的在线认证,零知识证明理论成为一个非常强有力的工具。虽然其具有很高的安全性,却导致高负荷运算。最近发现信息不可分辨性是一个可以兼顾安全和效率的性质。 本文研究混合系数的离散对数问题,也即信息不可识别性。我们提供一种新的认证,这种认证比因式分解有更好的安全性,而且从证明者角度看来有更高的效率。我们也降低了对Schnorr方案变形的实际安全参数的Girault的证明的花销。最后,基于信息不可识别性,我们得到一个安全性与因式分解相同的盲签名。 1.概述 在密码学中,可证明为安全的方案是一直以来都在追求的一个重要目标。然而,效率一直就是一个难以实现的属性。即使在现在对于认证已经进行了广泛的研究,还是很少有方案能兼顾效率和安全性。其原因就是零知识协议的广泛应用。 身份识别:关于识别方案的第一篇理论性的论文就是关于零知识的,零知识理论使得不用泄漏关于消息的任何信息,就可以证明自己知道这个消息。然而这样一种能够抵抗主动攻击的属性,通常需要许多次迭代来得到较高的安全性,从而使得协议或者在计算方面,或者在通信量方面或者在两个方面效率都十分低下。最近,poupard和stern提出了一个比较高效的方案,其安全性等价于离散对数问题。然而,其约减的代价太高,使得其不适用于现实中的问题。 几年以前,fiege和shamir就定义了比零知识更弱的属性,即“信息隐藏”和“信息不可分辨”属性,它们对于安全的识别协议来说已经够用了。说它们比零知识更弱是指它们可能会泄漏秘密消息的某些信息,但是还不足以找到消息。具体一点来说,对于“信息隐藏”属性,如果一个攻击者能够通过一个一次主动攻击发现秘密消息,她不是通过与证明者的交互来发现它的。而对于“信息不可分辨”属性,则意味着在攻击者方面看来,证据所用的私钥是不受约束的。也就是说有许多的私钥对应于一个公钥,证据仅仅传递了有这样一个私钥被使用了这样一个信息,但是用的是哪个私钥,并没有在证据传递的信息中出现。下面,我们集中考虑后一种属性,它能够提供一种三次传递识别方案并且对抗主动攻击。Okamoto 描述了一些schnorr和guillou-quisquater识别方案的变种,是基于RSA假设和离散对数子群中的素数阶的。 随机oracle模型:最近几年,随机oracle模型极大的推动了研究的发展,它能够用来证明高效方案的安全性,为设计者提供了一个有价值的工具。这个模型中理想化了一些具体的密码学模型,例如哈希函数被假设为真正的随机函数,有助于给某些加密方案和数字签名等提供安全性的证据。尽管在最近的报告中对于随机oracle模型采取了谨慎的态度,但是它仍然被普遍认为非常的有效被广泛的应用着。例如,在这个模型中被证明安全的OAPE加密

相关文档
最新文档