当前位置:文档之家› 密码学基础

密码学基础

密码学基础
密码学基础

密码学常识

□秋雨灰灰

目录

密码常识

字母表顺序-数字

进制转换密码

Mod算法

倒序

间隔

字母频率

凯撒密码(Caesar Shifts, Simple Shift)

凯撒移位(中文版)

栅栏密码(The Rail-Fence Cipher)

维吉尼亚密码(Vigenère Cipher)

Polybius密码(Polybius Cipher)

ADFGX/ADFGVX密码(ADFGX/ADFGVX Cipher)

ADFGX

ADFGVX

乘法密码(Multiplication Cipher)

仿射密码(Affine Shift)

希尔密码(Hill Cipher)

加密

解密

Playfair密码(Playfair Cipher)

莫尔斯电码

置换密码(Transposition Cipher)

替代密码(Monoalphabetic Substitution)

字母表数字

字母表代码

反字母表

随机乱序字母

棋盘密码

键盘密码

键盘移位

软键盘密码

数字小键盘密码

手机键盘密码

数字记忆编码

百度/Google/网页字符

百度字符(GB2312)

Google字符(URI)

网页编码(Unicode)

Alt+数字小键盘

MD5

【密码常识】

字母表顺序-数字

加密的时候,经常要把A至Z这26个字母转换成数字,最常见的一种方法就是取字母表中的数字序号。A代表1,B代表2,C代表3……

字母 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 数字 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

进制转换密码

例如二进制:1110 10101 1101 10 101 10010 1111 1110 101

转为十进制:14 21 13 2 5 18 15 14 5

对应字母表:number

Mod算法

我们可以对字母序号进行数学运算,然后把所得的结果作为密文。当运算结果大于26或小于1的时候,我们希望把这个数值转为1~26的范围,那么取这个数除以26的余数即可。

Mod就是求余数的运算符,有时也用“%”表示。例如 29 Mod 26 = 3,或写成 29 % 26 = 3,意思是29除以26的余数是3。

倒序

加密时为经常要对字符进行倒序处理。如果让你按abcdef...的顺序背出字母表的每个字母会很容易,但是如果是zyxwvu...的顺序那就很难背出来了。一个很熟悉的单词,如果按相反的顺序拼写,可能就会感到很陌生。

例如“love”字母倒过来拼就是“evol”。

具体加密时倒序有很多种方案,需要灵活运用。例如:

每个单词的倒序:siht si a tset - this is a test

整句的倒序:tset a si siht - this is a test

数字的倒序:02 50 91 02 - 20 05 19 20(test)

间隔

单词之间的间隔一般使用空格。在加密时常常要去掉空格,但有时某些字母或数字来替代空格也不失为一种好的加密方案。错误空格位置也会起到很强的误导作用。

例如:t hi sis at est - this is a test

字母频率

频率分析法可以有效的破解单字母替换密码。

关于词频问题的密码,我在这里提供英文字母的出现频率给大家,其中数字全部是出现的百分比:

a 8.2

b 1.5

c 2.8

d 4.3

e 12.7

f 2.2

g 2.0

h 6.1

i 7.0 j 0.2 k 0.8 l 4.0

m 2.4 n 6.7 o 7.5 p 1.9

q 0.1 r 6.0 s 6.3 t 9.1

u 2.8 v 1.0 w 2.4 x 0.2

y 2.0 z 0.1

词频法其实就是计算各个字母在文章中的出现频率,然后大概猜测出明码表,最后验证自己的推算是否正确。这种方法由于要统计字母出现频率,需要花费时间较长。参考《跳舞的小人》和《金甲虫》。

【凯撒密码(Caesar Shifts, Simple Shift)】

也称凯撒移位,是最简单的加密方法之一,相传是古罗马恺撒大帝用来保护重要军情的加密系统,它是一种替代密码。

加密公式:密文 = (明文 + 位移数) Mod 26

解密公式:明文 = (密文 - 位移数) Mod 26

以《数字城堡》中的一组密码为例:

HL FKZC VD LDS

只需把每个字母都按字母表中的顺序依次后移一个字母即可——A变成B,B就成了C,依此类推。因此明文为:

IM GLAD WE MET

英文字母的移位以移25位为一个循环,移26位等于没有移位。所以可以用穷举法列出所有可能的组合。

例如:phhw ph diwhu wkh wrjd sduwb

利用电脑可以方便地列出所有组合,然后从中选出有意义的话:

qiix qi ejxiv xli xske tevxc

rjjy rj fkyjw ymj ytlf ufwyd

skkz sk glzkx znk zumg vgxze

tlla tl hmaly aol avnh whyaf

ummb um inbmz bpm bwoi xizbg

vnnc vn jocna cqn cxpj yjach

wood wo kpdob dro dyqk zkbdi

xppe xp lqepc esp ezrl alcej

yqqf yq mrfqd ftq fasm bmdfk

zrrg zr nsgre gur gbtn cnegl

assh as othsf hvs hcuo dofhm

btti bt puitg iwt idvp epgin

cuuj cu qvjuh jxu jewq fqhjo

dvvk dv rwkvi kyv kfxr grikp

ewwl ew sxlwj lzw lgys hsjlq

fxxm fx tymxk max mhzt itkmr

gyyn gy uznyl nby niau julns

hzzo hz vaozm ocz ojbv kvmot

iaap ia wbpan pda pkcw lwnpu

jbbq jb xcqbo qeb qldx mxoqv

kccr kc ydrcp rfc rmey nyprw

ldds ld zesdq sgd snfz ozqsx

meet me after the toga party <-

nffu nf bgufs uif uphb qbsuz

oggv og chvgt vjg vqic rctva

可知明文为:meet me after the toga party

【凯撒移位(中文版)】

就是按照中文字在Unicode编码表中的顺序进行移位,可以用来加密中文的信息。

例:[中文凯撒移位]

转换成Unicode编码:中文凯撒移位

移1位后成为:丮斈凰撓秼低

转换成中文:[丮斈凰挠秼低]

【栅栏密码(The Rail-Fence Cipher)】

也称栅栏易位(Columnar Transposition),即把将要传递的信息中的字母交替排成上下两行,再将下面一行字母排在上面一行的后边,从而形成一段密码。栅栏密码是一种置换密码。

例如密文:TEOGSDYUTAENNHLNETAMSHVAED

解密过程:先将密文分为两行

T E O G S D Y U T A E N N

H L N E T A M S H V A E D

再按上下上下的顺序组合成一句话

THE LONGEST DAY MUST HAVE AN END.

加密时不一定非用两栏,还是举《数字城堡》中的一个例子,密文为:

PFEE SESN RETM MFHA IRWE OOIG MEEN NRMA ENET SHAS DCNS IIAA IEER BRNK FBLE LODI

去掉空格:PFEESESNRETMMFHAIRWEOOIGMEENNRMAENETSHASDCNSIIAAIEERBRNKFBLELODI 共64个字符,以8个字符为一栏,排列成8*8的方阵(凯撒方阵):

P F E E S E S N

R E T M M F H A

I R W E O O I G

M E E N N R M A

E N E T S H A S

D C N S I I A A

I E E R B R N K

F B L E L O D I

从上向下竖着读:PRIMEDIFFERENCEBETWEENELEMENTSRESMONSIBLEFORHIROSHIMAANDNAGASAKI

插入空格:

PRIME DIFFERENCE BETWEEN ELEMENTS RESMONSIBLE FOR HIROSHIMA AND NAGASAKI

(广岛和长崎的原子弹轰炸的最主要区别)

栅栏密码也可以用于中文,不过比较容易破解。

明文:这是中文的栅栏密码

密文(3*3方阵):这文栏是的密中栅码

由于中文用规则的栅栏比较容易破解,所以产生了一些变体,例如道家心法密籍《天仙金丹心法》中的一段加密方法。密文如下:

○茫天:摹然月终为鼎半是真灭器轮假不但伸净著定分泥万○无○光人经法一从尘色返我权自法中妙大空照生屈来好路形神海○便还未归○茫

天:摹

然月终为

鼎半是真灭

器轮假不但伸

净著定分泥万○

无○光人经法一从

尘色返我权自法中妙

大空照生屈来好路形神

海○便还未归

明文(从上向下竖着读):天然鼎器净无尘,大海茫茫月半轮。著色空摹终是假,定光返照便为真。不分人我生还灭,但泥经权屈未伸。万法自来归一法,好从中路妙形神。

利用电脑进行加密或解密,建议使用“列举加密”或“列举解密”,电脑会自动尝试一些正好匹配的栏位进行列举。

lyiroonevuclesey

4栏:

loveyousincerely

8栏:

lionvceeyroeulsy

【维吉尼亚密码(Vigenère Cipher)】

由于频率分析法可以有效的破解单表替换密码,法国密码学家维吉尼亚于1586年提出一种多表替换密码,即维吉尼亚密码,也称维热纳尔密码。维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。

加密算法:例如密钥的字母为[d],明文对应的字母[b]。根据字母表的顺序[d]=4,[b]=2,那么密文就是[d]+[b]-1=4+2-1=5=[e],因此加密的结果为[e]。解密即做此逆运算。

加密公式:密文 = (明文 + 密钥) Mod 26 - 1

解密公式:明文 = [26 + (密文 - 密钥)] Mod 26 + 1

也可以用查表法来进行加密:例如密钥的字母为[d],明文对应的字母[b],在下图的表格第一行找到字母"d"(深蓝色),再在左边第一列找到字母"b"(绿色),两个字母的交叉点(b 行d列)就是字母"E",所以对应的密文字母为[e]。

[-图]

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 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

b 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

c 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 B

d D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

e E F G H I J K L M N O P Q R S T U V W X Y Z A B C D

f F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

g G H I J K L M N O P Q R S T U V W X Y Z A B C D E F

h H I J K L M N O P Q R S T U V W X Y Z A B C D E F G

i I J K L M N O P Q R S T U V W X Y Z A B C D E F G H

j J K L M N O P Q R S T U V W X Y Z A B C D E F G H I

k K L M N O P Q R S T U V W X Y Z A B C D E F G H I J

l L M N O P Q R S T U V W X Y Z A B C D E F G H I J K

m M N O P Q R S T U V W X Y Z A B C D E F G H I J K L

n N O P Q R S T U V W X Y Z A B C D E F G H I J K L M

o O P Q R S T U V W X Y Z A B C D E F G H I J K L M N

p P Q R S T U V W X Y Z A B C D E F G H I J K L M N O

q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P

r R S T U V W X Y Z A B C D E F G H I J K L M N O P Q

s S T U V W X Y Z A B C D E F G H I J K L M N O P Q R

t T U V W X Y Z A B C D E F G H I J K L M N O P Q R S

u U V W X Y Z A B C D E F G H I J K L M N O P Q R S T

v V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

w W X Y Z A B C D E F G H I J K L M N O P Q R S T U V

x X Y Z A B C D E F G H I J K L M N O P Q R S T U V W

y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X

z Z 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

假如对如下明文加密:

to be or not to be that is the question

当选定“have”作为密钥时,加密过程是:密钥第一个字母为[h],明文第一个为[t],因此可以找到在h行t列中的字母[a],依此类推,得出对应关系如下:

密钥:ha ve ha veh av eh aveh av eha vehaveha

明文:to be or not to be that is the question

密文:ao wi vr isa tj fl tcea in xoe lylsomvn

【Polybius密码(Polybius Cipher)】

也称棋盘密码,是利用波利比奥斯方阵(Polybius Square)进行加密的密码方式,产生于公元前两世纪的希腊,相传是世界上最早的一种密码。

假设我们需要发送明文讯息“Attack at once”,用一套秘密混杂的字母表填满波利比奥斯方阵,像是这样:

A D F G X

A b t a l p

D d h o z k

F q f v s n

G g j c u x

X m r e w y

i和j视为同一个字,使字母数量符合 5 × 5 格。之所以选择这五个字母,是因为它们译成摩斯密码时不容易混淆,可以降低传输错误的机率。使用这个方格,找出明文字母在这个方格的位置,再以那个字母所在的栏名称和列名称代替这个字母。可将该讯息转换成处理过的分解形式。

明文:A T T A C K A T O N C E

密文:AF AD AD AF GF DX AF AD DF FX GF XF

A,D,F,G,X也可以用数字1,2,3,4,5来代替,这样密文就成了:

13 12 12 13 43 25 13 12 23 35 43 53

【ADFGX/ADFGVX密码(ADFGX/ADFGVX Cipher)】

ADFGX

1918年,第一次世界大战将要结束时,法军截获了一份德军电报,电文中的所有单词都由A、D、F、G、X五个字母拼成,因此被称为ADFGX密码。ADFGX密码是1918年3月由德军上校Fritz Nebel发明的,是结合了Polybius密码和置换密码的双重加密方案。A、D、F、G、X即Polybius方阵中的前5个字母。

明文:A T T A C K A T O N C E

经过Polybius变换:AF AD AD AF GF DX AF AD DF FX GF XF

下一步,利用一个移位密钥加密。假设密钥是“CARGO”,将之写在新格子的第一列。再将上一阶段的密码文一列一列写进新方格里。

C A R G O

_________

A F A D A

D A F G F

D X A F A

D D F F X

G F X F X

最后,密钥按照字母表顺序“ACGOR”排序,再按照此顺序依次抄下每个字母下面的整列讯息,形成新密文。如下:

FAXDF ADDDG DGFFF AFAXX AFAFX

在实际应用中,移位密钥通常有两打字符那么长,且分解密钥和移位密钥都是每天更换的。

ADFGVX

在1918年6月,再加入一个字V扩充。变成以6×6格共36个字符加密。这使得所有英文字母(不再将I和J视为同一个字)以及数字0到9都可混合使用。这次增改是因为以原来的加密法发送含有大量数字的简短信息有问题。

【乘法密码(Multiplication Cipher)】

乘法密码也是一种简单的替代密码,与凯撒密码相似,凯撒密码用的是加法,而乘法密码用的自然是乘法。这种方法形成的加密信息保密性比较低。

加密公式:密文 = (明文 * 乘数) Mod 26

对于乘数密码,只有当乘数与26互质时,加密之后才会有唯一的解,因此乘数只可能有如下11种的选择:

乘数 = 3,5,7,9,11,15,17,19,21,23,25

仿射密码和希尔密码因为都用到了乘法,所以乘数也受到相同的局限。

【仿射密码(Affine Shift)】

仿射密码就是凯撒密码和乘法密码的结合。

加密公式:密文 = (明文 * 乘数 + 位移数) Mod 26

【希尔密码(Hill Cipher)】

希尔密码就是矩阵乘法密码,运用基本矩阵论原理的替换密码。每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的密钥矩阵相乘,再将得出的结果模26。希尔密码的优点是完全隐藏了字符的频率信息,弱点是容易被已知明文攻击击破。

加密

例如:密钥矩阵

1 3

0 2

明文:HI THERE

去空格,2个字母一组,根据字母表顺序换成矩阵数值如下,末尾的E为填充字元:HI TH ER EE

8 20 5 5

9 8 18 5

HI 经过矩阵运算转换为 IS,具体算法参考下面的说明:

|1 3| 8 e1*8+3*9=35 MOD26=9 =I

|0 2| 9 e0*8+2*9=18 MOD26=18=S

用同样的方法把“HI THERE”转换为密文“IS RPGJTJ”,注意明文中的两个E分别变为密文中的G和T。

解密

解密时,必须先算出密钥的逆矩阵,然后再根据加密的过程做逆运算。

逆矩阵算法公式:

|A B| = 1/(AD-BC) * | D -B|

|C D| |-C A|

例如密钥矩阵=

|1 7|

|0 3|

AD-BC=1*3-0*7=3 3*X=1 mod26 所以 X=9

因此

|1 7| 的逆矩阵为: 9 * |3 -7|

|0 3| |0 1|

假设密文为“FOAOESWO”

FO AO ES WO

6 1 5 23

15 15 19 15

9* |3 -7| | 6| = 9*(3*6-7*15)=-783 mod26 = 23=W

|0 1| |15| = 9*(0*6+1*15)= 135 mod26 = 5 =E

所以密文“FOAOESWO”的明文为“WEREDONE”

【Playfair密码(Playfair Cipher)】

Playfair将明文中的双字母组合作为一个单元对待,并将这些单元转换为双字母组合。加密后的字符出现的频率在一定程度上被均匀化。

5*5变换矩阵(I或J视为同一字符):

C I P H E

R A B D F

G K L M N

O Q S T U

V W X Y Z

加密规则:按成对字母加密

相同对中的字母加分隔符(如x)

ballon -> ba lx lo on

同行取右边:he->ec

同列取下边:dm->mt

其他取交叉:kt->mq od->tr

例如:ballon -> ba lx lo on -> db sp gs ug

【莫尔斯电码】

莫尔斯电码是一种发报用的信号代码,是一种替代密码,用点(Dot)和划(Dash)的组合来表示各个英文字母或标点。

国际标准摩斯电码表

1 *---- A *- N -* [.] *-*-*-

2 **--- B -*** O --- [,] --**--

3 ***-- C -*-* P *--* [:] ---***

4 ****- D -** Q --*- ['] *----*

5 ***** E * R *-* [?] **--**

6 -**** F **-* S *** [-] -****-

7 --*** G --* T - [()] -*--*-

8 ---** H **** U **- [@] *--*-*

9 ----* I ** V ***- [—] -***-

0 ----- J *--- W *-- 分数线 -**-*

K -*- X -**-

L *-** Y -*-- 终了[\r] ***-*-

M -- Z --** 始信[\n] -*-*-

例:Hello (斜线代表字母之间的间隔)

****/*/*-**/*-**/---/

【替代密码(Monoalphabetic Substitution)】

也称单表替换密码。

字母表数字

用1-26这些数字分别表示A-Z的字母。

字母 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

数字 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

字母表代码

同字母表数字,只是把10以下的数字添0补位。

字母 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

数字 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

反字母表

就是丹·布朗在《达·芬奇密码》一书中提到的埃特巴什码(Atbash Cipher)。它的原理是取一个字母,指出它位于字母表正数第几位,再把它替换为从字母表倒数同样的位数后得到的字母。如:E被替换为V,N被替换为M等。

明码表 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

密码表 Z Y X W V U T S R Q P O N M L K J I H G F E D C B A

明文:sophia

密文:hlksrz

随机乱序字母

即单字母替换密码。重排密码表二十六个字母的顺序,密码表会增加到四千亿亿亿多种,能有效的防止用筛选的方法检验所有的密码表。这种密码持续使用几个世纪,直到阿拉伯人发明了频率分析法。

明码表 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

密码表 Q W E R T Y U I O P A S D F G H J K L Z X C V B N M

明文:forest

密文:gbmrst

棋盘密码

即Polybius密码。

键盘密码

加密的原理同棋盘密码,只是利用了键盘作为方阵。

键盘的字母分布:

~!@#$%^&*()_+|

`1234567890-=\

QWERTYUIOP{}

qwertyuiop[]

ASDFGHJKL:"

asdfghjkl;'

ZXCVBNM<>?

zxcvbnm,./

密文:72 81 12 63 01 12 63

明文:jianpan

低下头看看键盘就知道了,密文就是键盘上的26个字母的坐标,72即第7列第2行,第7列正好是数字键[7]的位置,往下2个就是字母[J]。

键盘移位

密文:kosm[sm

明文:jianpan

就是键盘上的字母往右一个。例如[j]键的右面是[k],[i]键的右面是[o],依此类推。

软键盘密码

密文1:まはすにはつへつたっゃのせちなゃひつなゃてなゃひつなゅつぬす

密文2:ㄈㄘㄍㄋㄘㄛㄠㄛㄗㄟㄙㄕㄐㄧㄇㄙㄨㄛㄇㄙㄣㄇㄙㄨㄛㄇㄩㄛㄎㄍ

密文3:црвмржужезыпгёлысжлыилысжльжнв

密文4:#←☆△←◇〒◇●◆_→★◎■_↑◇■_□■_↑◇■ ̄◇▲☆

明文:zhe shi li yong ruan jian pan jia mi de(这是利用软键盘加密的)

用智能ABC或微软拼音输入法,把小键盘打开,选择日本平假名字符,输入“zhe shi”就会出现“まはすにはつ”,如果切换到俄文字符就会出现“црвмрж”……

数字小键盘密码

数字小键盘的字母分布:

7 8 9

4 5 6

1 2 3

密文:852 74123 741236987 74269 78974123456 7412369

明文:I L O V E U

对照小键盘,依次打这些字母,看组成的形状就行了。

关于Alt+小键盘数字的加密方法,参看:百度/Google/网页字符。

手机键盘密码

根据手机键盘上的数字和对应的字母进行加密。

密文:42 21 71 71 93

明文:HAPPY

“42”:4键对应的是GHI,GHI第2个就是H;“21”:2键对应的是ABC,ABC第1个就是A。

加密时往往只出现数字键,而不给出具体的字母位置,这时解密时就要列举所有可能的组合,从中选出有意义的单词来。

例如密文:42779,这时就要从 GHI ABC PQRS PQRS WXYZ 中提出有意义的字符:HAPPY 另一种方法是根据形状加密的,和数字小键盘密码相同,按照密码里的数字比划一下就划出来了。

比如密文173946,对应的明文是H,17是左边一竖,39是右边一竖,46是中间一横。

【百度/Google/网页字符】

下面解释一下在百度、Google搜索中文的关键词时,地址栏上出现的奇怪字符。

百度字符(GB2312)

例如在百度搜索“你好”两个字,会转到一个地址为https://www.doczj.com/doc/4811896977.html,/s?wd=%C4%E3%BA%C3的网页。

密文(GB码16进制):%C4%E3%BA%C3

密文(GB码十进制):50403 47811

明文:你好

百度用的是GB2312的中文编码,是16进制的。GB2312是标准的简体中文编码。“你”字的GB码为C4E3,“好”字的GB码为BAC3。“你好”转换成十进制为50403和47811。

Google字符(URI)

例如在Google搜索“你好”两个字,会转到一个地址为https://www.doczj.com/doc/4811896977.html,/search?q=%E4%BD%A0%E5%A5%BD的网页。

密文(URI):%E4%BD%A0%E5%A5%BD

明文:你好

URI全称Uniform Resource Identifier(通用资源标识符)。Internet可用的每种资源 - HTML 文档、图像、视频片段、程序等 - 由一个通过URI进行定位。

网页编码(Unicode)

论坛里常玩的一个把戏,就是让你回帖时写一堆像天书一样的奇怪字符,而回帖之后就能看到相应的文字。

密文(Unicode16进制):楼主是个天才

密文(Unicode10进制):楼主是个天才

明文:楼主是个天才

这里使用的是Unicode编码(十进制),Unicode是一种全世界范围的文字编码,网页都支持这种编码。

Alt+数字小键盘

按住Alt键,在任意文本框中,用键盘右边的数字小键盘输入55021,然后松开Alt键,这时你看到了什么?

用同样的方法分别输入“你好”两个字的GB代码(十进制)50403、47811,这时你将在文本框中看到这两个字。

注意在qq的对话框中,要使用Unicode代码(十进制)20320、22909。

【MD5】

简介

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。

MD5是一种散列(Hash)算法,散列算法的用途不是对明文加密,让别人看不懂,而是通过对信息摘要的比对,防止对原文的篡改。通常对散列算法而言,所谓的“破解”,就是找碰撞。

MD5是把一个任意长度的字节串加密成一个固定长度的大整数(通常是16位或32位),加密的过程中要筛选过滤掉一些原文的数据信息,因此想通过对加密的结果进行逆运算来得出原文是不可能的。

关于MD5的应用,举个具体的例子吧。例如你在一个论坛注册一个账号,密码设为“qiuyu21”。此密码经过MD5运算后,变成“287F1E255D930496EE01037339CD978D”,当你点“提交”按钮提交时,服务器的数据库中不记录你的真正密码“qiuyu21”,而是记录那个MD5的运算结果。然后,你在此论坛登录,登录时你用的密码是“qiuyu21”,电脑再次进行MD5运算,把“qiuyu21”转为“287F1E255D930496EE01037339CD978D”,然后传送到服务器那边。这时服务器就把你传过来的MD5 运算结果与数据库中你注册时的MD5运算结果比较,如果相同则登录成功。

也就是说,服务器只是把MD5运算结果作比较。你也许会问,服务器为什么不用直接对你的密码“qiuyu21”进行校验呢?因为如果服务器的数据库里存的是你的真实密码,那么黑客只要破解了服务器的数据库,那么他也就得到了所有人的密码,他可以用里面的任意密码进行登录。但是如果数据库里面的密码都是MD5格式的,那么即使黑客得到了“287F1E255D930496EE01037339CD978D”这一串数字,他也不能以此作为密码来登录。

现在再来谈谈MD5的破解。假设你是攻击者,已经得到了“287F1E255D930496EE01037339CD978D”这一串数字,那么你怎么能得出我的密码是“qiuyu21”呢?因为MD5算法是不可逆的,你只能用暴力法(穷举法)来破解,就是列举所有可能的字母和数字的排列组合,然后一一进行MD5运算来验证运算结果是否为“287F1E255D930496EE01037339CD978D”,“qiuyu21”这个密码是7位英文字符和数字混合,这样的排列组合的数量是个天文数字,如果一一列举,那么在你有生之年是看不到了。所以只有使用黑客字典才是一种有效可行的方法,黑客字典可以根据一些规则自动生成。例如“qiuyu21”这个密码,就是一种常见的组合,规则是:拼音+拼音+数字,拼音总共大约400个,数字以2位数100个来算,这种规则总共约400*400*100=16,000,000种可能,使用优化的算法,估计用1秒就能破解吧。就算考虑到字母开头大写或全部大写的习惯,也只会花大约10几秒时间。如果是破解你熟悉的某个人的密码,那么你可以根据你对他的了解来缩小词典的范围,以便更快速的破解。这种破解方法在很大程度上依赖于你的运气。

最后谈谈MD5的碰撞。根据密码学的定义,如果内容不同的明文,通过散列算法得出的结果(密码学称为信息摘要)相同,就称为发生了“碰撞”。因为MD5值可以由任意长度的字符计算出来,所以可以把一篇文章或者一个软件的所有字节进行MD5运算得出一个数

值,如果这篇文章或软件的数据改动了,那么再计算出的MD5值也会产生变化,这种方法常常用作数字签名校验。因为明文的长度可以大于MD5值的长度,所以可能会有多个明文具有相同的MD5值,如果你找到了两个相同MD5值的明文,那么你就是找到了MD5的“碰撞”。

散列算法的碰撞分为两种,强无碰撞和弱无碰撞。还是以前面那个密码为例:假如你已知“287F1E255D930496EE01037339CD978D”这个MD5值,然后找出了一个单词碰巧也能计算出和“qiuyu21”相同的MD5值,那么你就找到了MD5的“弱无碰撞”,其实这就意味着你已经破解了MD5。如果不给你指定的MD5值,让你随便去找任意两个相同MD5值的明文,即找“强无碰撞”,显然要相对容易些了,但对于好的散列算法来说,做到这一点也很不容易了。

值得一提的是,强无碰撞已经被中国的王小云老师给搞定了,她提出的算法可以在短时间内找到碰撞,在世界上引起了轰动,现在的电脑大约一两个小时就可以找到一对碰撞。遗憾的是,找到强无碰撞在实际破解中没有什么真正的用途,所以现在MD5仍然是很安全的。MD5算法描述

对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。因此,信息的字节长度(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。

MD5中有四个32位被称作链接变量(Chaining Variable)的整数参数,他们分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。

当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。

将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。

主循环有四轮(MD4只有三轮),每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a、b、c或d 中之一。最后用该结果取代a、b、c 或d中之一。以一下是每次操作中用到的四个非线性函数(每轮一个)。

F(X,Y,Z) =(X&Y)|((~X)&Z)

G(X,Y,Z) =(X&Z)|(Y&(~Z))

H(X,Y,Z) =X^Y^Z

I(X,Y,Z)=Y^(X|(~Z))

(&是与,|是或,~是非,^是异或)

这四个函数的说明:如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。F是一个逐位运算的函数。即,如果X,那么Y,否则Z。函数H是逐位奇偶操作符。

假设Mj表示消息的第j个子分组(从0到15):

<< FF(a,b,c,d,Mj,s,ti) 表示 a=b+((a+(F(b,c,d)+Mj+ti)

<< GG(a,b,c,d,Mj,s,ti) 表示 a=b+((a+(G(b,c,d)+Mj+ti)

<< HH(a,b,c,d,Mj,s,ti) 表示 a=b+((a+(H(b,c,d)+Mj+ti) << II(a,b,c,d,Mj,s,ti) 表示 a=b+((a+(I(b,c,d)+Mj+ti)

这四轮(64步)是:

第一轮

FF(a,b,c,d,M0,7,0xd76aa478)

FF(d,a,b,c,M1,12,0xe8c7b756)

FF(c,d,a,b,M2,17,0x242070db)

FF(b,c,d,a,M3,22,0xc1bdceee)

FF(a,b,c,d,M4,7,0xf57c0faf)

FF(d,a,b,c,M5,12,0x4787c62a)

FF(c,d,a,b,M6,17,0xa8304613)

FF(b,c,d,a,M7,22,0xfd469501)

FF(a,b,c,d,M8,7,0x698098d8)

FF(d,a,b,c,M9,12,0x8b44f7af)

FF(c,d,a,b,M10,17,0xffff5bb1)

FF(b,c,d,a,M11,22,0x895cd7be)

FF(a,b,c,d,M12,7,0x6b901122)

FF(d,a,b,c,M13,12,0xfd987193)

FF(c,d,a,b,M14,17,0xa679438e)

FF(b,c,d,a,M15,22,0x49b40821)

第二轮

GG(a,b,c,d,M1,5,0xf61e2562)

GG(d,a,b,c,M6,9,0xc040b340)

GG(c,d,a,b,M11,14,0x265e5a51)

GG(b,c,d,a,M0,20,0xe9b6c7aa)

GG(a,b,c,d,M5,5,0xd62f105d)

GG(d,a,b,c,M10,9,0x02441453)

GG(c,d,a,b,M15,14,0xd8a1e681)

GG(b,c,d,a,M4,20,0xe7d3fbc8)

GG(a,b,c,d,M9,5,0x21e1cde6)

GG(d,a,b,c,M14,9,0xc33707d6)

GG(c,d,a,b,M3,14,0xf4d50d87)

GG(b,c,d,a,M8,20,0x455a14ed)

GG(a,b,c,d,M13,5,0xa9e3e905)

GG(d,a,b,c,M2,9,0xfcefa3f8)

GG(c,d,a,b,M7,14,0x676f02d9)

GG(b,c,d,a,M12,20,0x8d2a4c8a)

第三轮

HH(a,b,c,d,M5,4,0xfffa3942)

HH(d,a,b,c,M8,11,0x8771f681)

HH(c,d,a,b,M11,16,0x6d9d6122)

HH(b,c,d,a,M14,23,0xfde5380c)

HH(a,b,c,d,M1,4,0xa4beea44)

HH(d,a,b,c,M4,11,0x4bdecfa9)

HH(c,d,a,b,M7,16,0xf6bb4b60)

HH(b,c,d,a,M10,23,0xbebfbc70)

HH(a,b,c,d,M13,4,0x289b7ec6)

HH(d,a,b,c,M0,11,0xeaa127fa)

HH(c,d,a,b,M3,16,0xd4ef3085)

HH(b,c,d,a,M6,23,0x04881d05)

HH(a,b,c,d,M9,4,0xd9d4d039)

HH(d,a,b,c,M12,11,0xe6db99e5)

HH(c,d,a,b,M15,16,0x1fa27cf8)

HH(b,c,d,a,M2,23,0xc4ac5665)

第四轮

II(a,b,c,d,M0,6,0xf4292244)

II(d,a,b,c,M7,10,0x432aff97)

II(c,d,a,b,M14,15,0xab9423a7)

II(b,c,d,a,M5,21,0xfc93a039)

II(a,b,c,d,M12,6,0x655b59c3)

II(d,a,b,c,M3,10,0x8f0ccc92)

II(c,d,a,b,M10,15,0xffeff47d)

II(b,c,d,a,M1,21,0x85845dd1)

II(a,b,c,d,M8,6,0x6fa87e4f)

II(d,a,b,c,M15,10,0xfe2ce6e0)

II(c,d,a,b,M6,15,0xa3014314)

II(b,c,d,a,M13,21,0x4e0811a1)

II(a,b,c,d,M4,6,0xf7537e82)

II(d,a,b,c,M11,10,0xbd3af235)

II(c,d,a,b,M2,15,0x2ad7d2bb)

II(b,c,d,a,M9,21,0xeb86d391)

常数ti可以如下选择:

在第i步中,ti是4294967296*abs(sin(i))的整数部分,i的单位是弧度。(4294967296等于2的32次方)所有这些完成之后,将A、B、C、D分别加上a、b、c、d。然后用下一分组数据继续运行算法,最后的输出是A、B、C和D的级联。

当你按照我上面所说的方法实现MD5算法以后,你可以用以下几个信息对你做出来的程序作一个简单的测试,看看程序有没有错误。

MD5 ("") = d41d8cd98f00b204e9800998ecf8427e

MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661

MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72

MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0

MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b

MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = d174ab9 8d277d9f5a5611c2c9f419d9f

MD5 ("123456789012345678901234567890123456789012345678901234567890123456789012 34567890") = 57edf4a22be3c955ac49da2e2107b67a

MD5的安全性

MD5相对MD4所作的改进:

1. 增加了第四轮;

2. 每一步均有唯一的加法常数;

3. 为减弱第二轮中函数G的对称性从(X&Y)|(X&Z)|(Y&Z)变为(X&Z)|(Y&(~Z));

4. 第一步加上了上一步的结果,这将引起更快的雪崩效应;

5. 改变了第二轮和第三轮中访问消息子分组的次序,使其更不相似;

6. 近似优化了每一轮中的循环左移位移量以实现更快的雪崩效应。各轮的位移量互不相同。

《密码学基础复习提要》

第一部分内容提要 1 引论 OSI:开发系统互联中的安全结构,提供了定义安全攻击、安全机制和安全服务的框架; 安全攻击:主动和被动攻击。被动攻击包括非授权阅读消息、文件以及流量分析;主动攻击包括对消息或文件的修改以及拒绝服务。 安全机制:一种处理过程,用来检测、阻止攻击或从被攻击的状态中恢复的机制。包括:加密算法、签名算法和认证协议。 安全服务:包括认证、访问控制、数据保密性、数据完整性、不可否认新以及可用性。 分析一个信息系统的安全问题: 注脚:对任何一个信息系统,系统安全方面的分析思路是:设定系统的安全需求,分析可能的攻击,配置相应的安全服务以满足需求,根据安全机制开发设计或者集成构建安全服务。 2 传统密码 对称密码是一种加密和解密使用相同密钥的体制,也称为传统密码。 对称密码利用密钥和加密算法将明文变为密文。运用相同的密钥将密文恢复成明文。 对密码的两种攻击方法:对密钥的穷举攻击(要求明文有结构和意义);对加密算法的密码分析,发现其缺陷降低i密钥攻击和难度。 传统对称密码:采用代换和置换技术。代换将明文元素映射为密文元素。置换将明文元素的位置进行系统的置换。转轮机是计算机出现前使用代换技术的复杂密码设备。 注脚:置换和代换是两种最基本的数据变换方法,保证其可逆就可以设计相应的密码算法。加密其实很简单:改掉原来的值,改掉原来值放的位置,但是记住你还要能改回来才行。 3 分组密码和DES 分组密码是一种将输入的明文以分组的方式处理的加密技术。 Feistel结构是一种常用的分组密码结构,它由许多轮构成,每轮中将分组的一半进行代换,然后和另外一半交换位置进行置换。 DES是最广泛应用的加密算法,它采用了Feistel 结构,简单高效,而且能进一步扩展到2DES和3DES。 注脚:Feistel是一种美妙的置换和代换网络,其美妙之处是他是那么简单而且遵从对称的原则,可以让加密和解密共用同一段代码。 4 数学基础——有限域 域是定义了加和乘算术运算的元素的集合。 模算术是一种整数算术,它将所有的整数约减为固定的集合,以保证计算的封闭性。 有限域在密码的若干领域有重要的应用。一个有限域就是有有限个元素构成的域。可以证明有限域的阶可以写成素数的幂形式。 阶为p的域可由模p的算术定义 阶为p n的域可由多项式算术来定义 注脚:基础代数的很多概念很颠覆我们习以为常了的小学算术,接触过这段内容,你起码留下这样的印象:原来四则运算是这样来的。 5 AES AES是一种分组密码,以取代DES,分组长度为128位,密钥长度为128,192,256 AES没有使用Feistel结构,每轮由四个单独的运算组成:字节代换,置换,有限于上的算术运算,以及密钥的异或。

密码学基础教学大纲完整版

《密码学基础》课程教学大纲 (课程代码:07310620) 课程简介 密码学基础是信息安全专业的一门技术基础课程,该课程的学习将为后续的信息安全课程打下基础,同时也为将来从事信息安全研究和安全系统的设计提供 必要的基础。该课程主要讲授流密码(古典密码学)分组密码学、公钥密码学、 密钥分配与管理、信息认证和杂凑算法、数字签名以及网络加密与认证等几个部分,在其中将学习各种加解密、散列函数、单向函数、签名模式及伪随机发生器 等多种密码学工具,以及如何应用这些工具设计一个实现基本信息安全目标的系 统(目前学时不够,没有安排)。基本密码学工具的掌握和应用这些工具构造安 全服务就是本课程的基本目标。 本课程具有如下特点: (一)依赖很强的数学基础 本课程需要数论、近世代数、概率论、信息论、计算复杂性等数学知识作为 学习的基础。这些数学基础的讲解既要体现本身的体系性,同时还要兼顾密码学背景。 (二)可扩展性强 各种具体方法的学习不是本课程的最终目标,背后的基本原理以及应用这些原理设计新工具的能力才是本课程的最终目标。 (三)课程内容复杂且涉及面广 由于密码学内容丰富,且包含许多复杂的知识点,所以本课程的讲授以线为主,即在基本主线的勾勒基础上对授课内容及复杂程度做出取舍。 本课程先修课程有:数据结构、近世代数、概率论、高等数学、高级语言程 序设计等。后续课程有信息安全扫描技术、PKI技术、病毒学等专业课程。 课程教材选用国内信息安全优秀教材杨波编著的《现代密码学》(清华大学出版社),同时参考国外优秀教材:《经典密码学与现代密码学》,Richard Spillman,清华大学出版社、Douglas R. Stinson著,冯登国译的《密码学原理和实践》,电子工业出版社,2003年2月第二版。另外还向学生推荐国内的一些具有特色的操作系统教材如胡向东编写的《应用密码学教程》(电子工业出版社)等。 实验教材选用自编的实验指导书,同时参考上海交大的“信息安全综合实验系统实验指导书”,除了这些教材之外,学校的图书馆为师生提供了相关的学术 期刊和图书。 课程教学体系:理论课程(34学时)课程实验(16学时)。达到从算法 验证、综合设计、到创新应用知识的逐步提高、全面培养的目的。相应的教学 材料由教学大纲、实验大纲、实验指导书等。实践环节的实验条件有:计算机 科学技术系的实验中心(实施课程实验)。 课程教学安排 序号内容课时数备注 一密码学概述 2 二古典密码学算法(一) 2

武汉大学应用密码学RSA加密解密大作业

1 对RSA算法的理解 RSA加密算法是一种非对称加密算法,它基于一个非常简单的数论思想:“将两个素数乘起来是很容易的,但是分解该乘积是非常困难的”。 1.1加解密步骤 (1)生成公钥和私钥 a)随机生成两个不相等的大素数p和q,计算N=p*q; b)根据欧拉函数,求出φ=(p-1)*(q-1); c)选择一个小于r的整数e,求e关于r的模反元素d使得e*d mod φ =1 得到公钥,私钥 (2)加密 给定明文m,公钥,计算密文c = m e(N)。 (3)解密 给定密文c,私钥,计算明文m’ = c d(N)。 1.2素性检验 RSA算法的实现难点之一是生成大素数,这就需要生成一个大数并对其进行素性检验。素性检验有很多种方法。其中包括确定性方法和随机方法。确定性方法有试除法(埃拉托斯特尼筛法),卢卡斯-莱默检验法和AKS素数测试。常见的随机方法有费马素性检验,米勒-拉宾检验和欧拉-雅科比测试。本次作业采用就是米勒-拉宾检验方法。 米勒-拉宾(Miller Rabin) 算法原理: 要测试N 是否为素数,首先将N-1 分解为2s d。在每次测试开始时,先随机选一个介于[1, N-1]的整数a,之后如果对所有的r∈[0, s-1],若a d mod N ≠ 1 且a2^rd mod N ≠1,则N 是合数。否则,N 有3/4 的概率为素数。 1.3安全问题 (1)公共模数攻击。每个人具有相同的r,但有不同的指数e和d,这是不安全的。 (2)低加密指数攻击。如果选择了较低的e值,虽然可以加快计算速度,但存在不安全性。 (3)低解密指数攻击。如果选择了较低的d值,也是不安全的。 (4)选择密文攻击。如A想让T对一个T不愿意签名的消息m’签名,A首先选择一个任意值x,计算y=x e(mod r),然后要求T对m=ym’签名,A最后计算(m d mod r)x-1 mod r =( ym’) d x-1mod r= m’d mod r。 还有一些不是直接对RSA的算法本身进行的攻击,如中间人攻击、时间攻击、边信道攻击等。 2.具体实现 2.1函数说明 void ProducePrime(JTextField prime):使用JA V A的Biginteger生成512位的

密码学基础1

信息安全理论与技术第四讲密码学基础(三)

?讨论议题 ? 密钥分配 ? 公钥密码算法 – Diffie-Hellman密钥交换算法 –背包算法 – RSA算法 – EIGamal算法 –椭圆曲线密码算法ECC ?密钥分配(Key Distribution) 建立密钥分本协议必须考虑两个因素: 1)传输量和存储量就尽可能的小; 2)每一对用户U和V都能独立计算一个秘密密钥。 对于通信方A和B来说密钥分配方式由以下几种方式: 1)A选择密钥并手工传递给B; 2)第三方C选择密钥分别手工传递给A,B; 3)用A、B原有共享密钥传送新密钥(采用旧密作用于+新密钥方式); 4)与A、B分别有共享密钥的第三方C的加密连接,C就可以用加密连接传送新密钥给A和/或B。 ? N个用户集需要N(N-1)/2个共享密钥。 简单的密钥分配:

1)A产生公/私钥对{ PU a,PR a}并将PU a和其标识ID a的消息发送给B; 2)B产生秘密钥K S,并用A的公钥对K S,加密后发送给A; 3)A计算D(PU a E(PU a,K S)得出秘密钥K S。因为只有A能解密该消息,只有A和B知道K S; 4)A丢掉PU a,PR a,B丢掉PU a。 A和B 可以用传统的密码和会话密钥K S安全通信。 ●Key Distribution Center密钥分发中心 ●问题的提出 1)密钥管理量的困难 传统密钥管理:两两分别用一对密钥时,则n个用户需要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密钥空间急剧增大。如: n=100 时, C(100,2)=4,995 n=5000时, C(5000,2)=12,497,500 (2)数字签名的问题 传统加密算法无法实现抗抵赖的需求。 密钥分发 1)每个用户与KDC有共享主密钥(Master Key); 2)N个用户,KDC只需分发N个Master Key; 3)两个用户间通信用会话密钥(Session Key); (会话密钥:端系统之间的通信使用一个临时的密钥进行加密,这个密钥叫会话密钥) 4)用户必须信任KDC;

密码学基础

密码学常识

□秋雨灰灰 目录 密码常识 字母表顺序-数字 进制转换密码 Mod算法 倒序 间隔 字母频率 凯撒密码(Caesar Shifts, Simple Shift) 凯撒移位(中文版) 栅栏密码(The Rail-Fence Cipher) 维吉尼亚密码(Vigenère Cipher) Polybius密码(Polybius Cipher) ADFGX/ADFGVX密码(ADFGX/ADFGVX Cipher) ADFGX ADFGVX 乘法密码(Multiplication Cipher) 仿射密码(Affine Shift) 希尔密码(Hill Cipher) 加密 解密 Playfair密码(Playfair Cipher) 莫尔斯电码 置换密码(Transposition Cipher) 替代密码(Monoalphabetic Substitution) 字母表数字 字母表代码 反字母表 随机乱序字母 棋盘密码 键盘密码 键盘移位 软键盘密码 数字小键盘密码 手机键盘密码 数字记忆编码

百度/Google/网页字符 百度字符(GB2312) Google字符(URI) 网页编码(Unicode) Alt+数字小键盘 MD5 【密码常识】 字母表顺序-数字 加密的时候,经常要把A至Z这26个字母转换成数字,最常见的一种方法就是取字母表中的数字序号。A代表1,B代表2,C代表3…… 字母 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 数字 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 进制转换密码 例如二进制:1110 10101 1101 10 101 10010 1111 1110 101 转为十进制:14 21 13 2 5 18 15 14 5 对应字母表:number Mod算法 我们可以对字母序号进行数学运算,然后把所得的结果作为密文。当运算结果大于26或小于1的时候,我们希望把这个数值转为1~26的范围,那么取这个数除以26的余数即可。 Mod就是求余数的运算符,有时也用“%”表示。例如 29 Mod 26 = 3,或写成 29 % 26 = 3,意思是29除以26的余数是3。 倒序 加密时为经常要对字符进行倒序处理。如果让你按abcdef...的顺序背出字母表的每个字母会很容易,但是如果是zyxwvu...的顺序那就很难背出来了。一个很熟悉的单词,如果按相反的顺序拼写,可能就会感到很陌生。 例如“love”字母倒过来拼就是“evol”。 具体加密时倒序有很多种方案,需要灵活运用。例如: 每个单词的倒序:siht si a tset - this is a test 整句的倒序:tset a si siht - this is a test 数字的倒序:02 50 91 02 - 20 05 19 20(test) 间隔 单词之间的间隔一般使用空格。在加密时常常要去掉空格,但有时某些字母或数字来替代空格也不失为一种好的加密方案。错误空格位置也会起到很强的误导作用。 例如:t hi sis at est - this is a test 字母频率

密码学基础复习资料

1、 Kerchkoffs 原则 密码系统的安全性不应取决于不易改变的事物(算法),而应取决于改变的密钥。 2、 SP 网络 SP 网络就是由多重S 变换和P 变换组合成的变换网络,即迭代密码,它是乘积密码的一种,其基本操作是S 变换(代替)和P 变换(换位),前者称为S 盒,后者被称为P 盒,S 盒的作用是起到混乱作用,P 盒的作用是起到扩散的作用。 4安全机制 指用来保护系统免受侦听、阻止安全攻击及恢复系统的机制。 5加密算法 将明文变换为密文的变换函数,相应的变换过程称为加密,即编码的过程,通常用E 表示,即c=E k (p)。 6、数字签名的基本原理什么? 答:一个数字签名方案由两部分组成:带有陷门的公开签名算法和验证算法。公开签名算法是一个由密钥控制的函数。对任意一个消息x ,一个密钥k ,签名算法产生一个签名)(x sig y k =签名很难伪造。验证算法),(y x ver 也是公开的,它通过true y x ver =),(或false 来验证签名。 7、密码学的五元组是什么?它们分别有什么含义? 答:密码学的五元组是指:{明文、密文、密钥、加密算法、解密算法}。 明文:是作为加密输入的原始信息,即消息的原始形式,通常用m 或表示。 密文:是明文经加密变换后的结果,即消息被加密处理后的形式,通常用c 表示。 密钥:是参与密码变换的参数,通常用k 表示。 加密算法:是将明文变换为密文的变换函数,相应的变换过程称为加密,即编码的过程,通常用表示,即()k c E p =。 解密算法:是将密文恢复为明文的变换函数,相应的变换过程称为解密,即解码的过程,通常用D 表示,即()k p D c =。 8、为什么在密钥管理中要引入层次式结构? 答:层次化的密钥结构意味着以少量上层密钥来保护大量下层密钥或明文数据,这样,可保证除了主密钥可以以明文的形式 基于严格的管理受到严密保护外(不排除受到某种变换的保护),其他密钥则以加密后的密文形式存储,改善了密钥的安全性。层次化的密钥结构具有安全性强、可实现密钥管理的自动化的优点。 4、对数字签名的要求是什么? (1)签名必须是依赖于被签名信息的一个位串模板,即签名必须以被签名的消息为输入,与其绑定; (2)签名必须使用某些对发送者是唯一的信息。对发送者唯一就可以防止发送方以外的人伪造签名,也防止发送方事后否认; (3)必须相对容易地生成该数字签名,即签名容易生成; (4)必须相对容易地识别和验证该数字签名; (5)伪造数字签名在计算复杂性意义上具有不可行性,既包括对一个已有的数字签名构造新的消息,也包括对一个给定消息伪造一个数字签名; (6)在存储器中保存一个数字签名副本是现实可行的。 9、为什么序列密码的密钥不能重复使用? 答:序列密码是模仿的“一次一密”加密算法,其安全强度取决于密钥流生成器生成的密钥流的周期、复杂度、随机(伪随机)特性等,密钥的重复使用将导致其安全性降低。 10、设实数域上的椭圆曲线为x x y 363 2 -=,令)5.8,5.2(),5.9,5.3(-=-Q P =。 计算Q P +。 解:将 x 1 = –3.5, y 1= 9.5, x 2= –2.5, y 2 = 8.5 代入椭圆曲 线加方程易得: X 3 = 7、 y 3 = 1。 因此:P + Q = (7, 1)。 11、设通信双方使用RSA 加密体制,接收方的公开密钥是(5,35),接收到的密文是10,求明文。 解:据题意知:e =5,n =35,C =10。 因此有:()()()()35574624n ????===?= ()1 1mod 5mod 245d e n ?--=== 所以有:5 mod 10mod 355d M C n ===。 12、画出分组密码算法的原理框图,并解释其基本工作原理。

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

第一章 基本概念 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 mod )()(+== ②密钥量:q (2)乘法密码 ①加密算法: κκ∈∈===k X m Z Z Y X q q ;,;* 对任意,密文为:q km m E c k mod )(== ②解密算法: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】古典密码 1、置换密码 置换密码将明文中的字母顺序重新排列,但字母本身不变,由此形成密文。换句话说,明文与密文所使用的字母相同,只是它们的排列顺序不同。 我们可以将明文按矩阵的方式逐行写出,然后再按列读出,并将它们排成一排作为密文,列的阶就是该算法的密钥。在实际应用中,人们常常用某一单词作为密钥,按照单词中各字母在字母表中的出现顺序排序,用这个数字序列作为列的阶。 【例1】我们以coat作为密钥,则它们的出现顺序为2、3、1、4,对明文“attack postoffice”的加密过程见图1: 图1 对明文“attack postoffice”的加密过程 按照阶数由小到大,逐列读出各字母,所得密文为: t p o c a c s f t k t i a o f e. 对于这种列变换类型的置换密码,密码分析很容易进行:将密文逐行排列在矩阵中,并依次改变行的位置,然后按列读出,就可得到有意义的明文。为了提高它的安全性,可以按同样的方法执行多次置换。例如对上述密文再执行一次置换,就可得到原明文的二次置换密文: o s t f t a t a p c k o c f i e 还有一种置换密码采用周期性换位。对于周期为r的置换密码,首先将明文分成若干组,每组含有r个元素,然后对每一组都按前述算法执行一次置换,最后得到密文。 【例2】一周期为4的换位密码,密钥及密文同上例,加密过程如图2: 图2 周期性换位密码

2、 替代密码 单表替代密码对明文中的所有字母都用一个固定的明文字母表到密文字母表的映射 。换句话说,对于明文 ,相应的密文为 = 。 下面介绍几种简单的替代密码。 1. 加法密码

密码学大作业NMAP

Nmap的学习与使用 赵彦喆3110102884 信通1106 一:Nmap扫描原理: 1网络扫描软件Nmap (1)简介 Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪 服务运行在那些连接端,并且推断哪个操作系统计算机运行(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统保安。 正如大多数工具被用于网络安全的工具,nmap也是不少黑客及骇客(又称脚本小孩)爱用的工具。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但 是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。 Nmap常被跟 评估系统漏洞软件Nessus 混为一谈。Nmap以隐秘的手法,避开闯入检测系统的监视, 并尽可能不影响目标系统的日常操作。 (2)描述 nmap运行通常会得到被扫描主机端口的列表。nmap总会给出well known端口的服务名(如果可能)、端口号、状态和协议等信息。每个端口的状态有:open、filtered、unfiltered。open状态意味着目标主机能够在这个端口使用accept()系统调用接受连接。filtered状态表示:防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止nmap探测其是否打开。unfiltered表示:这个端口关闭,并且没有防火墙/包过滤软件来隔离nmap的探测企图。通常情况下,端口的状态基本都是unfiltered状态,只有在大多数被扫描的端口处于filtered 状态下,才会显示处于unfiltered状态的端口。根据使用的功能选项,nmap也可以报告远程主机的下列特征:使用的操作系统、TCP序列、运行绑定到每个端口上的应用程序的用户名、DNS名、主机地址是否是欺骗地址、以及其它一些东西。 (3)Nmap所识别的6个端口状态。 1.open(开放的) 应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描的主要目标。安全意识强的人们知道每个开放的端口都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。 2.closed(关闭的) 关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应),但没有应用程序在其上监听。它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up 也对部分操作系统探测有所帮助。 3.filtered(被过滤的) 由于包过滤阻止探测报文到达端口,Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则或者主机上的软件防火墙。 4.unfiltered(未被过滤的) 未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。用其它类型的扫描如窗口扫描,SYN 扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定端口是否开放。 5.open|filtered(开放或者被过滤的)

密码学基础课程设计指导书

《现代密码学基础》 课程设计指导书 杨柳编 湖南科技大学计算机科学与工程学院 2014年12月 一、概述 本课程在简要复习数学基础知识之后,探讨了密码学研究的基本问题:通过不安全的通信媒介如何进行安全通信。也可以理解为关心任何希望限制不诚实者达到目的的问题,把度量和评价一个密码体制(协议)的安全性作为一个重点。就目前来说,密码学的研究领域已从消息加密扩大到了数字签名、消息认证、身份识别、抗欺骗协议等。无疑,在整个教学过程中非常重视密码学的基础,当然包括数学基础。并针对实际的密码体制(协议)强调设计与分析(攻击),对现代密码学的主要研究问题都进行了介绍。 对于密码学这样的课程,同学们一定要从理论、技术、应用三个方面进行学习与思考。密码体制(协议)无疑是我们的学习重点,密码体制(协议)也可以单纯地理解为计算机算法,从而有设计、分析、证明、实现的问题。实现密码体制(协议)就是我们经常讲的八个字:模型、算法、程序、测试。 二、课程设计步骤 课程设计步骤要求如下: 模型 从数学的角度看,解决任何问题都要建立一个数学模型,对于密码学来说更是如此。我们还可以认为,数据结构中的存储结构也是模型。于是这一部分的任务就是建立起问题的逻辑结构和存储结构,为算法设计和编码实现打下基础。 算法 这一部分对同学们的要求是能看懂书上的常用算法,并对其中的参数可以进行调整和设置,能实现和应用它们。 程序 编码实现得到程序。 4. 测试 5. 提交课程设计报告 三、课程设计报告编写要求 课程设计报告开头标明课程设计题目、设计者的班级、姓名、学号和完成日期,内容包括:模型、算法、程序、测试四个部分。 四、设计要求 可以只做第7题,不做第7题的要做第1题-第6题。 五、课程设计题目 题目1 大整数运算包的设计与实现 1.问题描述 大整数运算是现代密码学算法实现的基础,重要性不言而喻。大整数我们指的是二进制位512、1024和2048的数,一般的语言不支持。 2.基本要求 以类库头文件的形式实现。 3.实现提示

第二讲(密码学基础)

2010-9-261 第二章:密码学基础 一、密码学的基本概念 二、密码体制分类 三、密码分析 四、几种古典加密算法 五、流密码

2010-9-262 一、密码学的基本概念 密码学(Cryptology):研究信息系统安全保密的科学。它包含两个分支, h 密码编码学(Cryptography),对信息进行编码实现隐蔽信息的一门学问 h 密码分析学(Cryptanalysis),研究分析破译密码的学问。 两者的矛盾是密码学发展的内在动力 外在动力:现实生活对信息安全的需求

2010-9-263几个概念(一) 。明文(消息)(Plaintext) :被隐蔽消息。密文(Ciphertext):明文经密码变换成的一种隐蔽形式。加密(Encryption):将明文变换为密文的过程。解密(Decryption):加密的逆过程,即由密文恢复出原明文的过程。 加密员或密码员(Cryptographer):对明文进行加密操作的人员。

2010-9-264 几个概念(二)。加密算法(Encryption algorithm):密码员对明文进行加密时所采用的一组规则。 接收者(Receiver):传送消息的预定对象。解密算法:接收者对密文进行解密时所采用的一组规则。 密钥(Key):控制加密和解密算法操作的数据处理,分别称作加密密钥和解密密钥。 截收者(Eavesdropper):在信息传输和处理系统中的非受权者,通过搭线窃听、电磁窃听、声音窃听等来窃取机密信息。

2010-9-265几个概念(三)密码分析(Cryptanalysis):截收者试图通过分析从截获的密文推断出原来的明文或密钥。密码分析员(Cryptanalyst):从事密码分析的人。被动攻击(Passive attack):对一个保密系统采取截获密文进行分析的攻击。 主动攻击(Active attack):非法入侵者(Tamper)、攻击者(Attcker)或黑客(Hacker)主动向系统窜扰,采用删除、增添、重放、伪造等窜改手段向系统注入假消息,达到利已害人的目的。

王梦园---密码学基础课程总结

现代密码学理论与技术课程学习总结 摘要:在老师的带领下,通过一学期的现代密码学理论与技术课程学习,我们对现代密码学理论与技术有了一个大致的了解。21世纪是信息时代,信息的传递在人们日常生活中变得非常重要。信息安全技术作为一门综合学科,它涉及信息论、计算机科学和密码学等多方面知识,密码学基础的研究对象及相关领域的作用范畴。密码技术渗透到政治、经济、军事等方面。本课程介绍了信息安全和密码学相关知识,涉及密码学基础,分组密码,公钥密码,消息认证、身份认证、数字签名,密码技术的应用及其信息安全系统,加密与解密的具体算法及简单应用。最后会阐述笔者对通信工程专业的学习优势与疑惑,以及本人的学习规划与职业规划。 关键词:密码学基础、分组密码、公钥密码、消息认证、身份认证、数字签名,密码技术本课程介绍了信息安全和密码学相关知识,涉及密码学基础,分组密码,公钥密码,消息认证、身份认证、数字签名,密码技术的应用及其信息安全系统,加密与解密的具体算法及简单应用。 一、密码学基础的研究对象和重要性 经过一学期的学习,我理解了学习密码学基础的学习目的,掌握了基本的密码学基础知识,了解了密码算法的多种分类和密码学研究的对象。 1、密码学是保障信息安全的核心,包括两个分支:密码编码学和密码分析学。 2、安全服务包括:机密性、完整性、认证性、不可否认性、可用性。 3、一个密码体制或密码系统是指由明文(m或p)、密文(c)、密钥(k)、加密算法(E)和解密算法(D)组成的五元组。 4、密码技术分为两个部分:信息保密、信息认证。 5、现代密码学分类: (1)对称密码体制:(又称为秘密密钥密码体制,单钥密码体制或传统密码体制)密钥完全保密;加解密密钥相同;典型算法:DES、3DES、AES、IDEA、RC4、 A5 (2)非对称密码体制:(又称为双钥密码体制或公开密钥密码体制)典型算法:RSA、ECC 6、密码体制的分类:单钥密码体制(又称为对称密码体制)、双钥密码体制(又称为非对称密码体制,也称为公钥密码体制) 7、密码分析 8、古典密码:单表代换密码(移位代换密码、乘法密码、仿射密码、多项式代换密码、密钥短语密码),多表代换密码(维吉尼亚密码、多字母代换密码)。 二、流密码 1、流密码基本概念:随机性、伪随机性。 2、线性反馈移位寄存器序列(linear feedback shift register)(LFSR):Games-Chan算法 3、非线性组合序列:域GF(2)上的n维函数(n维布尔函数)、非线性前馈序列。 4、钟控序列:缩减序列(互缩序列、广义自缩序列)。 三、分组密码 1、分组密码:密文的每一比特与明文每一比特和密钥每一比特相关。 2、设计准则:安全性、简洁性、有效性、透明性和灵活性、加解密相似性。 3、工作模式:电码本模式(Electric Code Book或ECB) 码分组链接模式(Code Block Chaining或CBC) 码反馈模式(Code Feed Back或CFB)

密码学大作业!

密码学大作业!

《应用密码学》课程论文题目密码学的发展史 学生姓名 学号 院系 专业 二O一三年四月十一日

摘要:密码学从古至今的发展历史,发展过程成中各个阶段的发展情况。以及各个阶段密码学的经典密码 以及代表人物,与其在历史上的标志性成果。 关键词:古典密码;密码学发展;加密技术 随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,而在信息安全中起着举足轻重作用的密码学也就成为信息安全课程中不可或缺的重要部分,密码学是以研究秘密通信为目的,即对所要传送的信息采取一种秘密保护,以防止第三者对信息的窃取的一门学科。密码学早在公元前400多年就已经产生,人类使用密码的历史几乎与使用文字的时间一样长。密码学的发展过程可以分为四个阶段:1、古代加密方法。2、古典密码。3、近代密码。 4、现代密码。 一、古代加密方法 源于应用的无穷需求总是推动技术发明和 进步的直接动力。存于石刻或史书中的记载表明,许多古代文明,包括埃及人、希伯来人、亚述人都在实践中逐步发明了密码系统。从某种意义上说,战争是科学技术进步的催化剂。人类自从有了战争,就面临着通信安全的需求,密码技术源远流长。 古代加密方法大约起源于公元前400年,斯巴达人发明了“塞塔式密码”,即把长条纸螺旋形地斜绕在一个多棱棒上,将文字沿棒的水平方向从左到右书写,写一个字旋转一下,写完一行再另起一行从左到右写,直到写完。解下来后,纸条上的文字消息杂乱无章、无法理解,这就是

密文,但将它绕在另一个同等尺寸的棒子上后,就能看到原始的消息。这是最早的密码技术。 我国古代也早有以藏头诗、藏尾诗、漏格诗及绘画等形式,将要表达的真正意思或“密语”隐藏在诗文或画卷中特定位置的记载,一般人只注意诗或画的表面意境,而不会去注意或很难发现隐藏其中的“话外之音”。 如《水浒传》中梁山为了拉卢俊义入伙,“智多星”吴用和宋江便生出一段“吴用智赚玉麒麟”的故事来,利用卢俊义正为躲避“血光之灾”的惶恐心理,口占四句卦歌: 芦花丛中一扁舟, 俊杰俄从此地游。 义士若能知此理, 反躬难逃可无忧。 暗藏“卢俊义反”四字。结果,成了官府治罪的证据,终于把卢俊义“逼”上了梁山。 更广为人知的是唐伯虎写的“我爱秋香”: 我画蓝江水悠悠, 爱晚亭上枫叶愁。 秋月溶溶照佛寺, 香烟袅袅绕经楼。 二、古典密码 古典密码的加密方法一般是文字置换,使用手工或机械变换的方式实现。古典密码系统已经初步体现出近代密码系统的雏形,它比古代加密方法复杂,其变化较小。下面我们举例说一些比较经典的古典密码。 1.滚桶密码

密码学基础大作业

《密码学基础》大作业 班级: 学号: 姓名: 完成时间:

参考题目:(可选择其中一个完成) 1.DES解密算法的程序实现(将上机实验1的密文解为明文) 2.AES加密算法的程序实现(将上机实验1的明文加密) 3.RSA加密算法的程序实现(将上机实验1的明文加密) 4.MD5压缩函数的程序实现(将文件test.txt的信息压缩为128比特) 5.SHA-1压缩函数的程序实现(将文件test.txt的信息压缩为160比特) 6.数字签名技术的原理探讨 7.最新密码学理论研究动态 8.密码学发展简史 9.密码学在实体认证和身份识别中的应用 10.现代密码学中对称密码体制和非对称密码体制的比较与分析 要求:条理清楚,表达准确,将查找的各类资料整理清楚,形成自己的语言表达清楚;同时在最后部分注明参考资料的来源。 大作业上交时间为1月8日24:00前,电子版资料发送至ap08123@https://www.doczj.com/doc/4811896977.html,,邮件名格式为:学号+姓名+大作业。如选做非程序实现题目,大作业字数不少于6000字,如大作业中能合理引用图片和表格会酌情加分。

?《Handbook of Applied Cryptography》: Chapter 10 ?《Applied Cryptography: Protocols, algorithms, and source code in C》:Section 3.2-3.3,5.1-5.2;Chapter 21 密码学在实体认证和身份识别中的应用 随着时代的进步,科技的逐渐发达,网络上的虚拟世界也发展的越来越广泛,可是与此同时,产生的问题也越来越多,身份识别便是其中之一,如何辨识网络另一端的身份已经成为一个很迫切的问题。能够正确认证用户的身份在许多情况下都有对身份识别认证的要求,在实体认证和身份识别中,密码学便充当了一个至关重要的角色,例如使用6位密码在自动取款机(ATM)上取钱;通过计算机网络登录远程计算机,给出用户名和密码,保密通信双方交换密钥时需要确保对方的身份等。 现代密码学 首先介绍一下密码学这一门学科。现代密码学研究信息从发端到收端的安全传输和安全存储,是研究“知己知彼”的一门科学。其核心是密码编码学和密码分析学。前者致力于建立难以被敌方或对手攻破的安全密码体制,即“知己”;后者则力图破译敌方或对手已有的密码体制,即“知彼”。《现代密码学》系统地讲述了密码学的基础理论与应用技术。主要内容包括密码学的信息论基础、密码学的复杂性理论、流密码、分组密码、公钥密码、Hash函数、数字签名、密码协议和密钥管理。《现代密码学》内容丰富,取材经典、新颖,概念清楚,各章后面配有大量习题。《现代密码学》可作为高等院校信息安全、通信工程等相关专业本科生的教材,也可供研究生与相关技术人员学习参考。 实体认证 实体认证:又称为鉴别、身份识别。它是这样一个过程,即其中一方确信参与协议的第二方的身份,并确信第二方真正参与了该过程。用户的身份识别是许多应用系统的第一道防线,其目的在于识别用户的合法性,从而阻止非法用户访问系统。身份识别(认证)对确保系统和数据的安全保密是极其重要的。 身份识别的基础:已知事物:口令、个人识别码(PIN)、挑战-响应协议中已被证实的秘密或私钥。已拥有的事物:通常是物理配件。如,磁卡、智能卡(或IC卡)、口令生成器。固有事物(对某个人):利用人类物理特征和无意行为。如,手写签名、指纹、声音、视网膜模式、手的几何形状等。(非密码学的) 身份识别协议的目的:1、在诚实的情况下,声称者A能向验证者B证明他确实是A;2、在声称者A向验证者B声称他的身份后,验证者B不能获得任何有用的信息,B也不能模仿A向其他第三方证明他就是A。3、任何不同于A的实体C以A的身份,让B相信C是A的概率可忽略不计 身份识别协议的性质:

密码基础知识试题库完整

三、判断题(共20题,每题1分) 1、衡量一个密码系统的安全性中的无条件安全又称为可证明安全( ) 正确错误 2、伪造、冒用、盗用她人的电子签名,构成犯罪的,依法追究刑事责任;给她人造成损失的,依法承担民事责任( )。 正确错误 3、字母频率分析法对多表代替密码算法最有效果。( ) 正确错误 4、盲签名比普通的数字签名的安全性要高。 正确错误 5、不属于国家秘密的,也可以做出国家秘密标志( )。 正确错误 6、机关、单位委托企业事业单位从事前款规定的业务,应当与其签订保密协议,提出保密要求,采取保密措施( )。 正确错误 7、国家秘密的保密期限,除另有规定外,绝密级不超过三十年,机密级不超过十五年,秘密级不超过五年( )。 正确错误 8、群签名中,要求群中的所有成员对被签名文件进行签名。 正确错误 9、任何单位或者个人都可以使用商用密码产品( )。 正确错误 10、电子认证服务提供者应当制定、公布符合国家有关规定的电子认证业务规则,并向密码管理相关部门备案( )。 正确错误 11、简单的说,密码学中的“明文”就是指没有经过加密的信息;而“密文”就是指已经加了密的信息( )。 正确错误 12、二战时期著名的“隐谜”密码打字机就是英国军队使用的( )。 正确错误

13、重合指数法对单表代换密码算法的破解最有效。( ) 正确错误 14、分别征服分析方法就是一种选择明文攻击的攻击方法( ) 正确错误 15、维吉利亚密码就是古典密码体制比较有代表性的一种密码,其密码体制采用的就是多表代换密码。( ) 正确错误 16、Vigenere密码就是由法国密码学家提出来的。( ) 正确错误 17、为了保证安全性,密码算法应该进行保密。 正确错误 18、成熟的公钥密码算法出现以后,对称密码算法在实际中已无太大利用价值了。 正确错误 19、电子签名需要第三方认证的,由依法设立的电子认证服务提供者提供认证服务( )。 正确错误 20、RSA公钥加密体制中,相同的明文会有许多可能的密文。 正确错误 1、RSA算法的安全理论基础就是大整数因子分解难题。 正确错误 2、Vernam体制就是美国电话电报公司的Gilber Vernam在1917年设计的一种很方便的密码。( ) 正确错误 3、生日攻击方法需要消息摘要必须足够的长( ) 正确错误 4、Playfair密码就是1854年提出来的。( ) 正确错误 5、根据不同的应用要求,提出多种代理签名,但无论哪种代理签名的验证,必须要用到代理签名人的公钥。 正确错误 6、如果采用相同长度的密钥,则椭圆曲线密码的安全性比RSA密码的安全性要高。 正确错误

相关主题
文本预览
相关文档 最新文档