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

密码学基础知识

密码学基础知识
密码学基础知识

【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. 加法密码

在加法密码中,映射规则可表示为,其中k

为密钥,加密算法就是。

例如,我们可以将英文的26个字母分别对应于整数0~25,则n=26,对应关系如表

加法密码也称为移位密码,凯撒密码就是k=3的加法密码。

【例1】取密钥k=9,明文为“attackpostoffice”,则转换为密文的过程如下:

首先将其转化为数字序列:

0 19 19 0 2 10 15 14 18 19 14 5 5 8 2 4

然后每个数值加9,并做模26运算,得到以下序列:

9 2 2 9 11 19 24 23 1 2 23 14 14 17 11 13

再将其转化为英文字母,可得密文:jccjltyxbcxoorln.

2.乘法密码

乘法密码的映射规则可表示为,其中k为密钥,加密算法就是。

【例2】密钥及明文同上例,采用乘法密码后的密文为:

appasmfwgpwttusk.

乘法密码有时也叫做采样密码。

3.仿射密码

同时运用加法密码和乘法密码,就构成了仿射密码。可以表示为:

其中(k0, k1)为密钥,加密算法可表示为。解密算法是加密算

法的逆变换,为

例子从略。

4.多项式密码

仿照仿射密码,我们可以构造出更复杂的多项式密码:

其中,。

上述三种密码都可以看作是多项式密码的特例。

5.密钥短语密码

密钥短语密码是对上述各密码算法的改造,基本思想是任意选一短语作为密钥,去掉该密钥中的重复字母,并将它们依次写在明文字母表下,然后将明文字母表中从未在密钥短语中出现的字母依次写在该短语的后面,从而构造出一对明文、密文对应表。

【例3】取密钥短语为good worker,去掉重复字母,得godwrke,构造明/密文对照表如下:

明文表: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;

密文表:g o d w r k e a b c f h i j l m n p q s t u v x y z;

那么对于上例明文,其密文为:gssgdfmlqslkkbdr。

由上例可以发现,采用以上方法,若密钥短语选择不合适,会造成大部分的密文字母与明文字母一致的现象,使得保密程度下降。我们可以结合置换密码的思想予以改进。

【例4】密钥短语同上,我们可以构造矩阵:

g o d w r k e

a b c f h i j

l m n p q s t

u v 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 x y z;

密文表:

g a l u o b m v d c n x w f p y r h q z k i s e j t。

在单表替代密码中,对于多项式密码及其特例,由于它们的密钥量比较小,可以利用穷举攻击进行破译,尤其在计算机的帮助下,破译起来可以说是轻而易举。而对于密钥短语替代密码,密文字母表本质上是明文字母表的一种排列,若字母表中有n个字母,可能的密文字母表是n!种。若n较大,即使有计算机的帮助,穷举攻击也是不大现实的。即便如此,密码分析者利用统计分析方法,仍能迅速地攻破。下面我们简单地介绍一下统计分析攻击的基本思路。

任何自然语言都有其固有的统计规律性,如果明文语言的统计规律在密文中有所反应,则密码分析者就可以通过分析明文和密文的统计规律而破译密码。

比如,人们分析了英语的单字母、双字母及三字母的统计特性:

1、英文字母频度分类:

极高频度字母:e

次高频度字母:t a o i n s h r

中等频度字母:d l u c m

低频度字母:p f y w g b v

次低频度字母:j k q x z

2、频度高的双字母组:th he in er an re ed on es st en at to nt ha nd ou ea ng as or ti is et it ar te se hi of

3、频度高的三字母组:the ing and her ere ent tha nth was eth for dth hat she ion int his sth ers ver

4、……

当密码分析者要对截获的密文进行分析时,首先统计密文中的字母出现频率,并与明文字母统计表比较。例如在英文中,字母e的出现频率远远高于其它的字母,所以若一密文字母出现频率极高,我们就可以断定该密文的对应明文是e。进一步比较密文和明文的其它统计数据及分布模式,就可以确定出密钥,进而攻破单表替代密码。举例从略。

【2】对称密码

1、DES 算法原理

1977年,DES 成为一个标准,以后每五年进行一次再验证,这通常在12月份进行。所有的美国联邦机构和其他处理信息的组织为了各自的利益都必须使用DES (用于非机密文档)。在非政府公司中,DES 也得到了广泛的使用。这个算法基于IBM 的LUCIFER 系统,该系统使用128位的密钥。通常,密钥越长,系统越安全。DES 使用64位密钥;但是其中8位用于错误检测,因此实际上从安全性角度看DES 是个56位的密钥系统。由于该加密系统以64位的二进制数据为一组进行加密,因此它也被称为分组密码。DES 的安全性取决于密钥的保密,而不是算法的保密。通过密钥的长度可以进一步增强安全性,因为存在着7亿亿

(70,000,000,000,000,000)种可能的密钥;因此推断密钥的可能性很小,足以保护大部分分布式环境。当然,随着普通PC 的能力持续提高,连续搜索密钥和破译代码的能力也成比

例的提高。该加密算法有三个阶段,在图1中进行了描述。解密是通过逆序执行这三个阶段来实现的,包括逆序使用阶段2中所提到的密钥分组(从K16到K1)。

图1 DES的三个阶段

DES 阶段1:初始置换

DES的第一阶段包括64位分组的置换,改变每个分组中位的顺序。术语置换使用其严格的数学意义;只改变了顺序。在下面的表格中具体给出了这个置换(参见Detail Box 1.1)。这64位数据现在被分成两半:L0(左半部分)和R0(右半部分)。下标0说明是原始的数据。在DES算法第二阶段的每次循环后,这些下标加1。

Detail Box 1.1 DES置换

表1中描述了这个表格,DES标准使用这个表格来进行初始置换[NIST77]。因此,在置换后的第1位是置换前的第58位。在置换后的第2位是置换前的第50位。置换后数据的最后一位在最初是明文中的第7个数据位。

表1 DES初始置换 [NIST77]

DES 阶段2: 移位(重复16次)

第二阶段包括一种根据密钥,并且依赖于表格的算法。这种操作通常被称为数据移位。这个算法要重复16次,但由于每次移位都使用密钥的不同子分组,因此每次移位的操作各不相同。密钥的子分组由另一组表格和表格的移位算法来确定。在每次循环以后,L(左半部分)和R(右半部分)的下标依次加一,用来表示每个阶段,如图1所示。第16次循环的结果被称为预输出,并传送到第3阶段。[NIST77]中列有这些表格和各种算法。

DES阶段 3: 逆序置换

DES的最后一个阶段包括64位分组的置换,改变每个分组中位的顺序,这与第1阶段的操作类似,只是前后者使用不同的表格。在下面的表格中具体给出了这个置换(参见Detail Box 1.2)。这次置换的输出结果就是密文。

Detail Box 1.2 DES 逆序置换

表2中描述了这个表格,DES标准使用这个表格来进行最后的逆序置换[NIST77]。因此,在置换后的第1位是预输出的第40位。在置换后的第2位是预输出的第8位。而密文的最后一位是预输出的第25个数据位。

表2 DES 逆序置换[NIST77]

DES算法流程

DES的算法是对称的,既可用于加密又可用于解密。图2是它的算法粗框图。其具体运算过程有如下七步。

2、AES算法原理

2000年10月,NIST(美国国家标准和技术协会)宣布通过从15种侯选算法中选出的一项新的密钥加密标准。新的标准将会代替密钥长度变的太短的旧的DES算法。Rijndael 被选中成为将来的AES。Rijndael这个名字是从它的两个发明者Rijmen和Daemen的名字得来的。

这个加密体系是一种分组加密方法,因为信息的内容是以128位长度的分组为加密单元的。加密密钥长度有128,192或256位多种选择。DES加密的分组长度是64比特,而

密钥长度只有64比特。三重DES加密的分组长度通常是64比特,而密钥长度是112比特。

图1: AES 迭代

图1描述了AES的操作模式。首先密钥K0和待加密信息按位相与。然后所有要加密

的分组都用一个函数F进行迭代计算,计算用的子密钥是由一个密钥扩展函数产生的,初始

的密钥是主密钥。

对于AES 函数F要迭代10次。

图2描述的是加密过程中函数F是如何被迭代的。一个128位的分组转换成16个字节,作为下面处理的输入。首先,每一个字节分别经过替换函数S的处理,然后,用第二个置换函数P对16个字节进行处理。然后这个结果就和密钥扩展函数产生的子密钥进行位与。

密钥Ki是用密钥扩展函数从第K(i-1)轮的子密钥和第K0的密钥得到的。

图3描述了密钥扩展函数。16个字节的被分成4组,每组4个字节,来进行处理。最后的一组的4个字节由替换函数S(这个S和用F函数进行迭代处理时的S是一样的)来进行替换处理。最初的4个字节的结果和α系数相加,这个系数是与轮数相关的,它是预先定义的。最后,为了得到Ki,把得到的4个字节的结果和K(i-1)子密钥的最初4个字节按位相加,然后得到的结果又和K(i-1)子密钥的下面的4个字节按位相加,如此类推。

图2: 函数 F

好了,现在我们简单地看看替换函数是怎么得到的,然后看看ai 常数有什么作用。为了简单的理由,一个字节应该是256个元素集(称为有限域)的一个元素,对于这些元素只包含一些简单的操作(例如加法,乘法,反转)。事实上,前面提到的替换函数S在那个有限域里的反转。置换函数S被定义为一个很简单的操作,以便能简单的实现。ai 系数是和指数I(有限域的元素)成正比的。这些考虑,使得AES实现起来非常有效。

因为AES仅仅在基于简单的位操作运算,这有两个主要的优点:

1.即使是纯粹的软件实现,AES也是很快的。例如,用C++在奔腾200的电脑上实现的AES的加密速度可达到70M位/秒;

2.AES并不依赖于S-Box的选择(根据NSA, DES里的S-Boxes可能包含后门),对分析算法抗击差分密码分析及线性密码分析具有抵抗能力。

图 3: 密钥扩展例程

【3】单项散列函数

单向函数

一个函数称为严格单向函数, 如果存在一个有效的算法(如多项式算法),使得对X中的任意元素x, 都可计算f(x), 但不存在有效的算法使得对f(X)中的任意元素y, 都可计算出x 满足 f(x)=y.单向散列函数 H(M) 作用于一个任意长度的消息 M , 返回一个固定长度的散列值 h: h= H(M) .

单向散列函数应具有的特性:

1. 给定M, 很容易计算 h;

2. 给定 h, 计算M 使得 H(M) = h 非常困难;

3. 给定 M, 要找到另一个消息 M' 使得 H(M') = H(M) 非常困难;

在其它的一些应用中, 仅有单向性是不够的, 还需要称之为抗碰撞

(collision-resistance) 的条件:

要找出两个随机的消息 M 和 M' , 使得 H(M) = H(M') 非常困难.

要设计一个接收任意长度输入的函数不是一件容易的事, 更不用说是单向的. 在实际中, 单向散列函数建立在压缩函数的想法上.给定长度为 m 的输入, 单向函数输出长度为 n 的散列值.

将信息 m 分组为相应的散列值为,

1、MD5

MD5算法原理

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是MD2、MD4还是MD5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但MD2的设计与MD4和MD5完全不同,那是因为MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的电脑。这三个算法的描述和C语言源代码在Internet RFCs 1321中有详细的描述

https://www.doczj.com/doc/4013888897.html,/rfc/rfc1321.txt),这是一份最权威的文档,由Ronald L. Rivest 在1992年8月向IEFT提交。

Rivest在1989年开发出MD2算法。在这个算法中,首先对信息进行数据补位,使信息的字节长度是16的倍数。然后,以一个16位的检验和追加到信息末尾。并且根据这个新产生的信息计算出散列值。后来,Rogier和Chauvaud发现如果忽略了检验和将产生MD2冲突。MD2算法的加密后结果是唯一的--既没有重复。

为了加强算法的安全性,Rivest在1990年又开发出MD4算法。MD4算法同样需要填补信息以确保信息的字节长度加上448后能被512整除(信息字节长度mod 512 = 448)。然后,一个以64位二进制表示的信息的最初长度被添加进来。信息被处理成512位

Damg?rd/Merkle迭代结构的区块,而且每个区块要通过三个不同步骤的处理。Den Boer和Bosselaers以及其他人很快的发现了攻击MD4版本中第一步和第三步的漏洞。Dobbertin

向大家演示了如何利用一部普通的个人电脑在几分钟内找到MD4完整版本中的冲突(这个冲突实际上是一种漏洞,它将导致对不同的内容进行加密却可能得到相同的加密后结果)。毫无疑问,MD4就此被淘汰掉了。

尽管MD4算法在安全上有个这么大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用。除了MD5以外,其中比较有名的还有SHA-1、RIPE-MD以及HAVAL等。

一年以后,即1991年,Rivest开发出技术上更为趋近成熟的MD5算法。它在MD4的基础上增加了"安全-带子"(Safety-Belts)的概念。虽然MD5比MD4稍微慢一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息-摘要的大小和填充的必要条件与MD4完全相同。Den Boer和Bosselaers曾发现MD5算法中的假冲突(Pseudo-Collisions),但除此之外就没有其他被发现的加密后结果了。

Van Oorschot和Wiener曾经考虑过一个在散列中暴力搜寻冲突的函数(Brute-Force Hash Function),而且他们猜测一个被设计专门用来搜索MD5冲突的机器(这台机器在1994年的制造成本大约是一百万美元)可以平均每24天就找到一个冲突。但单从1991年到2001年这10年间,竟没有出现替代MD5算法的MD6或被叫做其他什么名字的新算法这一点,我们就可以看出这个瑕疵并没有太多的影响MD5的安全性。上面所有这些都不足以成为MD5

的在实际应用中的问题。并且,由于MD5算法的使用不需要支付任何版权费用的,所以在一般的情况下(非绝密应用领域。但即便是应用在绝密领域内,MD5也不失为一种非常优秀的中间技术),MD5怎么都应该算得上是非常安全的了。

算法的应用

MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:

MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461

这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。如果在以后传播这个文件的过程中,无论文件的内容发生了任何形式的改变(包括人为修改或者下载过程中线路不稳定引起的传输错误等),只要你对这个文件重新计算MD5时就会发现信息摘要不相同,由此可以确定你得到的只是一个不正确的文件。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的"抵赖",这就是所谓的数字签名应用。

MD5还广泛用于加密和解密技术上。比如在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。

正是因为这个原因,现在被黑客使用最多的一种破译密码的方法就是一种被称为"跑字典"的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节(8 Bytes),同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数则是P(62,1)+P(62,2)….+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘阵列,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。这种加密技术被广泛的应用于UNIX系统中,这也是为什么UNIX系统比一般操作系统更为坚固一个重要原因。

2、SHA-1

SHA (Secure Hash Algorithm,译作安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院 (NIST) 发布的一系列密码散列函数。正式名称为 SHA 的家族第一个成员发布于 1993年。然而现在的人们给它取了一个非正式的名称 SHA-0 以避免与它的后继者混淆。两年之后, SHA-1,第一个 SHA 的后继者发布了。另外还有四种变体,曾经发布以提升输出的范围和变更一些细微设计: SHA-224, SHA-256, SHA-384 和 SHA-512 (这些有时候也被称做 SHA-2)。

最初载明的算法于 1993年发布,称做安全散列标准 (Secure Hash Standard),FIPS PUB 180。这个版本现在常被称为 "SHA-0"。它在发布之后很快就被 NSA 撤回,并且以 1995年发布的修订版本 FIPS PUB 180-1 (通常称为 "SHA-1") 取代。根据 NSA 的说法,它修正了一个在原始算法中会降低密码安全性的错误。然而 NSA 并没有提供任何进一步的解释或证明该错误已被修正。1998年,在一次对 SHA-0 的攻击中发现这次攻击并不能适用于SHA-1 —我们不知道这是否就是 NSA 所发现的错误,但这或许暗示我们这次修正已经提升了安全性。SHA-1 已经被公众密码社群做了非常严密的检验而还没发现到有不安全的地方,它现在被认为是安全的。

SHA-0 和 SHA-1 会从一个最大 264 位元的讯息中产生一串 160 位元的摘要然后以设计 MD4 及 MD5 讯息摘要算法的 MIT 教授 Ronald L. Rivest 类似的原理为基础来加密。

在 CRYPTO 98 上,两位法国研究者展示了一次对 SHA-0 的攻击 (Chabaud and Joux, 1998): 散列碰撞可以复杂到 261 时被发现;小于 280 是理想的相同大小散列函数。2004年时,Biham 和 Chen 发现了 SHA-0 的近似碰撞—两个讯息可以散列出相同的数值;在这种情况之下,142 和 160 位元是一样的。他们也发现了 SHA-0 在 80 次之后减少到 62 位元的完整碰撞。2004年8月12日,Joux, Carribault, Lemuet 和 Jalby 宣布了完整SHA-0 算法的散列碰撞。这是归纳 Chabaud 和 Joux 的攻击所完成的结果。发现这个碰撞要复杂到 251 并且用一台有 256 颗 Itanium2 处理器的超级电脑耗时大约 80,000 CPU 工作时。2004年8月17日,在 CRYPTO 2004 的 Rump 会议上,Wang, Feng, Lai, 和 Yu 宣布了攻击 MD5、SHA-0 和其他散列函数的初步结果。他们对 SHA-0 攻击复杂到 240 位元,这意谓的他们攻击的成果比 Joux 还有其他人所做的更好。请参见 MD5 安全性。该次 Rump 会议的简短摘要可以在这里找到,而他们在 sci.crypt 的讨论,例如:这些结果建议计划使用 SHA-1 作为新的密码系统的人需要重新考虑。

NIST 发布了三个额外的 SHA 变体,每个都有更长的讯息摘要。以它们的摘要长度 (以位元计算) 加在原名后面来命名:"SHA-256", "SHA-384" 和 "SHA-512"。它们发布于 2001年的 FIPS PUB 180-2 草稿中,随即通过审查和评论。包含 SHA-1 的 FIPS PUB 180-2,于2002年以官方标准发布。这些新的散列函数并没有接受像 SHA-1 一样的公众密码社群做详细的检验,所以它们的密码安全性还不被大家广泛的信任。2004年2月,发布了一次 FIPS PUB 180-2 的变更通知,加入了一个额外的变种 "SHA-224",定义了符合双密钥 3DES 所需的密钥长度。Gilbert 和 Handschuh (2003) 研究了新的变种并且没有发现弱点。

【4】非对称加密

1、RSA 公钥密码系统

RSA 公钥密码系统以其发明者 R. Rivest, A. Shamir 和 L. Adleman 的三个姓的首个字母命名的.它是应用最广泛的公钥密码系统.不仅可以用于信息的机密性, 还可用于数字签名. 其所依赖的是大整数因数分解问题.假设公钥密码系统使用N 字符集.明文信

息空间为

-字符组组成的集合

密文信息空间为

-字符组组成的集合

RSA 公钥密码系统的描述: 每个使用者产生各自的公钥

和私钥

使用者 A 将作如下事情:

1. 随机产生两个不同的大素数p和q,具有相同的阶;

2. 计算n=pq和

3. 随机选取整数

4. 运用广义欧几里得算法计算唯一的整数,使得

5. A的公钥是 ,私钥是。

RSA 公钥加解密过程

发送者 B 将明文信息加密后变成密文信息发送给接受者A,A解密。

1. 加密过程.发送者 B 将作如下事情:

(a) 得到确认的接受者 A 的加密公钥(从认证中心或电话本或信息公告栏等处得到)

(b) 将明文信息表示为整数。(要求以最有效的方式来表达信息)

(c) 计算整数

(d) 将整数 c 转换成密文信息.

(f) 将密文信息发送给 A. (可以在公开通道中传递, 在不知道解密私钥的情况下第三者无法破解密文信息)

2. 解密过程. 为了将密文信息恢复为明文信息, 接受者 A 将作如下事情:

(a) 将密文信息转换成整数c.

(b) 运用解密私钥恢复整数.

(c) 将整数 c 转换成明文信息.

例1 产生密钥.A 选取素数p=2357和q=2551,计算

A 选取 e=3674911,并用广义欧几里得算法求出d=422191使得

A 的公钥是(n=6012707,e=3674911),私钥d=422191.

加密过程.为加密信息m=5234673,发送者 B 计算

并将它发送给接受者A.

解密过程.为解密c,计算

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

《现代密码学基础》课程设计指导书 杨柳编 湖南科技大学计算机科学与工程学院 2014年12月

一、概述 本课程在简要复习数学基础知识之后,探讨了密码学研究的基本问题:通过不安全的通信媒介如何进行安全通信。也可以理解为关心任何希望限制不诚实者达到目的的问题,把度量和评价一个密码体制(协议)的安全性作为一个重点。就目前来说,密码学的研究领域已从消息加密扩大到了数字签名、消息认证、身份识别、抗欺骗协议等。无疑,在整个教学过程中非常重视密码学的基础,当然包括数学基础。并针对实际的密码体制(协议)强调设计与分析(攻击),对现代密码学的主要研究问题都进行了介绍。 对于密码学这样的课程,同学们一定要从理论、技术、应用三个方面进行学习与思考。密码体制(协议)无疑是我们的学习重点,密码体制(协议)也可以单纯地理解为计算机算法,从而有设计、分析、证明、实现的问题。实现密码体制(协议)就是我们经常讲的八个字:模型、算法、程序、测试。 二、课程设计步骤 课程设计步骤要求如下: 1.模型 从数学的角度看,解决任何问题都要建立一个数学模型,对于密码学来说更是如此。我们还可以认为,数据结构中的存储结构也是模型。于是这一部分的任务就是建立起问题的逻辑结构和存储结构,为算法设计和编码实现打下基础。 2.算法 这一部分对同学们的要求是能看懂书上的常用算法,并对其中的参数可以进行调整和设置,能实现和应用它们。 3.程序 编码实现得到程序。 4. 测试 5. 提交课程设计报告

三、课程设计报告编写要求 课程设计报告开头标明课程设计题目、设计者的班级、姓名、学号和完成日期,内容包括:模型、算法、程序、测试四个部分。 四、设计要求 可以只做第7题,不做第7题的要做第1题-第6题。 五、课程设计题目 大整数运算包的设计与实现 1.问题描述 大整数运算是现代密码学算法实现的基础,重要性不言而喻。大整数我们指的是二进制位512、1024和2048的数,一般的语言不支持。 2.基本要求 以类库头文件的形式实现。 3.实现提示 在选择了大整数的存储结构之后,主要实现以下运算: ①模加; ②模减; ③模乘; ④模整除; ⑤模取余。这五种运算模拟手算实现。 ⑥幂模:利用“平方-乘法”算法实现。 ⑦GCD:利用欧几里得算法实现。 ⑧乘法逆: 利用扩展的欧几里得算法实现。 ⑨素数判定与生成:概率性素数产生方法产生的数仅仅是伪素数,其缺点在于,

现代密码学课后答案第二版讲解

现代密码学教程第二版 谷利泽郑世慧杨义先 欢迎私信指正,共同奉献 第一章 1.判断题 2.选择题 3.填空题 1.信息安全的主要目标是指机密性、完整性、可用性、认证性和不可否认性。 2.经典的信息安全三要素--机密性,完整性和可用性,是信息安全的核心原则。 3.根据对信息流造成的影响,可以把攻击分为5类中断、截取、篡改、伪造和重放,进一 步可概括为两类主动攻击和被动攻击。

4.1949年,香农发表《保密系统的通信理论》,为密码系统建立了理论基础,从此密码学 成为了一门学科。 5.密码学的发展大致经历了两个阶段:传统密码学和现代密码学。 6.1976年,W.Diffie和M.Hellman在《密码学的新方向》一文中提出了公开密钥密码的 思想,从而开创了现代密码学的新领域。 7.密码学的发展过程中,两个质的飞跃分别指 1949年香农发表的《保密系统的通信理 论》和 1978年,Rivest,Shamir和Adleman提出RSA公钥密码体制。 8.密码法规是社会信息化密码管理的依据。 第二章 1.判断题 答案×√×√√√√××

2.选择题 答案:DCAAC ADA

3.填空题 1.密码学是研究信息寄信息系统安全的科学,密码学又分为密码编码学和密码分 析学。 2.8、一个保密系统一般是明文、密文、密钥、加密算法、解密算法 5部分组成的。 3.9、密码体制是指实现加密和解密功能的密码方案,从使用密钥策略上,可分为对称和 非对称。 4.10、对称密码体制又称为秘密密钥密码体制,它包括分组密码和序列 密码。

第三章5.判断 6.选择题

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

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

现代密码学论文

现代密码学论文 院(系)名称理学院 专业班级计算131班学号130901027 学生姓名王云英

摘要 现代密码学研究信息从发端到收端的安全传输和安全存储,是研究“知己知彼”的一门科学。其核心是密码编码学和密码分析学。前者致力于建立难以被敌方或对手攻破的安全密码体制,即“知己”,后者则力图破译敌方或对手已有的密码体制,即“知彼”。人类有记载的通信密码始于公元前400年。1881年世界上的第一个电话保密专利出现。电报、无线电的发明使密码学成为通信领域中不可回避的研究课题。 现有的密码体制千千万万各不相同。但是它们都可以分为私钥密码体制(如DES密码)和公钥密码(如公开密钥密码)。前者的加密过程和脱密过程相同,而且所用的密钥也相同;后者,每个用户都有公开和秘密钥。现代密码学是一门迅速发展的应用科学。随着因特网的迅速普及,人们依靠它传送大量的信息,但是这些信息在网络上的传输都是公开的。因此,对于关系到个人利益的信息必须经过加密之后才可以在网上传送,这将离不开现代密码技术。PKI是一个用公钥概念与技术来实施和提供安全服务的具有普适性的安全基础设施。PKI公钥基础设施的主要任务是在开放环境中为开放性业务提供数字签名服务。

现代密码学的算法研究 密码算法主要分为对称密码算法和非对称密码算法两大类。对称加密算法指加密密钥和解密密钥相同,或知道密钥之一很容易推导得到另一个密钥。通常情况下,对称密钥加密算法的加\解密速度非常快,因此,这类算法适用于大批量数据的场合。这类算法又分为分组密码和流密码两大类。 1.1 分组密码 分组密码算法实际上就是密钥控制下,通过某个置换来实现对明文分组的加密变换。为了保证密码算法的安全强度,对密码算法的要求如下。 1.分组长度足够大:当分组长度较小时,分组密码类似于古典的代替密码,它仍然保留了明文的统计信息,这种统计信息将给攻击者留下可乘之机,攻击者可以有效地穷举明文空间,得到密码变换本身。 2.密钥量足够大:分组密码的密钥所确定密码变换只是所有置换中极小一部分。如果这一部分足够小,攻击者可以有效地穷举明文空间所确定所有的置换。这时,攻击者就可以对密文进行解密,以得到有意义的明文。 3.密码变换足够复杂:使攻击者除了穷举法以外,找不到其他快捷的破译方法。 分组密码的优点:明文信息良好的扩展性,对插入的敏感性,不需要密钥同步,较强的适用性,适合作为加密标准。 分组密码的缺点:加密速度慢,错误扩散和传播。 分组密码将定长的明文块转换成等长的密文,这一过程在秘钥的控制之下。使用逆向变换和同一密钥来实现解密。对于当前的许多分组密码,分组大小是 64 位,但这很可能会增加。明文消息通常要比特定的分组大小长得多,而且使用不同的技术或操作方式。 1.2流密码 流密码(也叫序列密码)的理论基础是一次一密算法,它是对称密码算法的一种,它的主要原理是:生成与明文信息流同样长度的随机密钥序列(如 Z=Z1Z2Z3…),使用此密钥流依次对明文(如X=X0X1X2...)进行加密,得到密文序列,解密变换是加密变换的逆过程。根据Shannon的研究,这样的算法可以达到完全保密的要求。但是,在现实生活中,生成完全随机的密钥序列是不可行的,因此只能生成一些类似随机的密钥序列,称之为伪随机序列。 流密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。如果序列密码所使用的是真正随机方式的、与消息流长度相同的密钥流,则此时的序列密码就是一次一密的密码体制。若能以一种方式产生一随机序列(密钥流),这一序列由密钥所确定,则利用这样的序列就可以进行加密,即将密钥、明文表示成连续的符号或二进制,对应地进行加密,加解密时一次处理明文中的一个或几个比特。 流密码研究内容集中在如下两方面: (1)衡量密钥流序列好坏的标准:通常,密钥序列的检验标准采用Golomb的3点随机性公设,除此之外,还需做进一步局部随机性检验,包括频率检验、序列

密码学入门系列(五) 之 DES(现代)

DES简介: DES全称: Data Encryption Standard . 其前身为IBM公司的Hors t Feistel领导研制的LUCIFER算法. 其设计思想充分体现了香农提出的混淆和扩散原则.DES为分组密码, 其分组长度为64bit, 秘匙长度为64bit(包含8位奇校验位). DES算法描述: DES的分组长度为64it, 加密后的密文分组也为64bit, 因此不存在数据扩展. 秘匙长度为64位, 其中的第8,16,24,32,40,48,56,64位为奇检验位. (什么是奇校验:使得当前字节的8个bit中1的个数为奇数) , 因此, 实际有效的秘匙长度为56位. DES对每个64bit的分组的处理过程如下: 1) 首先对64bit的明文进行初始置换IP(Initial Permute) 2) 将分组分为长度相等的两部分L和R. 3) 进行16轮完全相同的运算.(我们称之为f函数, 其中每一轮都会用到由初始秘匙产生的子秘匙) 4) L16,R16合在一起进行末置换(或叫逆初始置换). 5) over,得密文:) DES环节各个击破: 由于DES操作比较复杂, 我们现在开始对DES的各个部分进行各个击破战术, 这样讲解比较清晰. 1) DES中的几处置换: 在DES中, 我们会用到很多的置换表对数据分组进行置换操作. DES中的置换有无规律的置换,也有有规律的置换. 不过, 在对置换表的处理过程中, 我们大多数直接将其看作无规律置换来处理. a.初始置换(IP): DES第一步进行 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 这个表怎么用? 这个表用于对一个64位的分组进行bit的打乱: 将原分组的第58位移至第1位, 第50位移至第二位, 第42位移至第三位,依次类推... 其中要注意, 经过IP后, 分组依然为64位的, 长度没变, 后面我们会遇到变长置换, 也即置换后分组的长度变长了或缩短了. b.末置换(IP^-1):16次轮转之后进行

现代密码学教程课后部分答案考试比用

第一章 1、1949年,(A )发表题为《保密系统的通信理论》的文章,为密码系统建立了理论基础,从此密码学成了一门科学。 A、Shannon B、Diffie C、Hellman D、Shamir 2、一个密码系统至少由明文、密文、加密算法、解密算法和密钥5部分组成,而其安全性是由(D)决定的。 A、加密算法 B、解密算法 C、加解密算法 D、密钥 3、计算和估计出破译密码系统的计算量下限,利用已有的最好方法破译它的所需要的代价超出了破译者的破译能力(如时间、空间、资金等资源),那么该密码系统的安全性是(B )。 A无条件安全B计算安全C可证明安全D实际安全 4、根据密码分析者所掌握的分析资料的不同,密码分析一般可分为4类:唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击,其中破译难度最大的是(D )。 A、唯密文攻击 B、已知明文攻击 C、选择明文攻击 D、选择密文攻击 5、1976年,W.Diffie和M.Hellman在密码学的新方向一文中提出了公开密钥密码的思想,从而开创了现代密码学的新领域。 6、密码学的发展过程中,两个质的飞跃分别指1949年香农发表的保密系统的通信理论和公钥密码思想。 7、密码学是研究信息及信息系统安全的科学,密码学又分为密码编码学和密码分析学。 8、一个保密系统一般是明文、密文、密钥、加密算法、解密算法5部分组成的。 9、密码体制是指实现加密和解密功能的密码方案,从使用密钥策略上,可分为对称和非对称。 10、对称密码体制又称为秘密密钥密码体制,它包括分组密码和序列密码。 第二章 1、字母频率分析法对(B )算法最有效。 A、置换密码 B、单表代换密码 C、多表代换密码 D、序列密码 2、(D)算法抵抗频率分析攻击能力最强,而对已知明文攻击最弱。 A仿射密码B维吉利亚密码C轮转密码D希尔密码 3、重合指数法对(C)算法的破解最有效。 A置换密码B单表代换密码C多表代换密码D序列密码 4、维吉利亚密码是古典密码体制比较有代表性的一种密码,其密码体制采用的是(C )。 A置换密码B单表代换密码C多表代换密码D序列密码 5、在1949年香农发表《保密系统的通信理论》之前,密码学算法主要通过字符间的简单置换和代换实现,一般认为这些密码体制属于传统密码学范畴。 6、传统密码体制主要有两种,分别是指置换密码和代换密码。 7、置换密码又叫换位密码,最常见的置换密码有列置换和周期转置换密码。 8、代换是传统密码体制中最基本的处理技巧,按照一个明文字母是否总是被一个固定的字母代替进行划分,代换密码主要分为两类:单表代换和多表代换密码。 9、一个有6个转轮密码机是一个周期长度为26 的6次方的多表代替密码机械装置。 第四章 1、在( C )年,美国国家标准局把IBM的Tuchman-Meyer方案确定数据加密标准,即DES。 A、1949 B、1972 C、1977 D、2001 2、密码学历史上第一个广泛应用于商用数据保密的密码算法是(B )。 A、AES B、DES C、IDEA D、RC6 3、在DES算法中,如果给定初始密钥K,经子密钥产生的各个子密钥都相同,则称该密钥K为弱密钥,DES算法弱密钥的个数为(B )。 A、2 B、4 C、8 D、16

密码学及其研究现状(2014年)

密码学及其研究现状(2014年) {摘要}: 密码系统的两个基本要素是加密算法和密钥管理。加密算法是一些公式和法则,它规定了明文和密文之间的变换方法。由于密码系统的反复使用,仅靠加密算法已难以保证信息的安全了。事实上,加密信息的安全可靠依赖于密钥系统,密钥是控制加密算法和解密算法的关键信息,它的产生、传输、存储等工作是十分重要的。{关键词}:密码技术安全网络密匙管理 密码技术是信息安全的核心技术。如今,计算机网络环境下信息的保密性、完 整性、可用性和抗抵赖性,都需要采用密码技术来解决。密码体制大体分为对称密 码(又称为私钥密码)和非对称密码(又称为公钥密码)两种。公钥密码在信息安全中 担负起密钥协商、数字签名、消息认证等重要角色,已成为最核心的密码。 密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这 些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早 期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据 等都可实施加、脱密变换。 密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的 应用,已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信 息论、计算机科学等有着广泛而密切的联系。它的现实研究成果,特别是各国政府 现用的密码编制及破译手段都具有高度的机密性。 进行明密变换的法则,称为密码的体制。指示这种变换的参数,称为密钥。它 们是密码编制的重要组成部分。密码体制的基本类型可以分为四种:错乱--按照 规定的图形和线路,改变明文字母或数码等的位置成为密文;代替--用一个或多 个代替表将明文字母或数码等代替为密文;密本--用预先编定的字母或数字密码 组,代替一定的词组单词等变明文为密文;加乱--用有限元素组成的一串序列作 为乱数,按规定的算法,同明文序列相结合变成密文。以上四种密码体制,既可单 独使用,也可混合使用,以编制出各种复杂度很高的实用密码。 当前,公钥密码的安全性概念已经被大大扩展了。像著名的RSA公钥密码算法、 Rabin公钥密码算法和ElGamal公钥密码算法都已经得到了广泛应用。但是,有些公

密码学复习题

密码学练习题 一、单选题 1、密码学包括哪两个相互对立的分支(B) A、对称加密与非对称加密 B、密码编码学与密码分析学 C、序列算法与分组算法 D、DES和RSA 2、加密技术不能提供以下哪种安全服务?(D) A、鉴别` B、机密性 C、完整性 D、可用性 3、在密码学中,需要被变换的原消息被称为什么?(D) A、密文 B、算法 C、密码 D、明文 4、在凯撒密码中,每个字母被其后第几位的字母替换?(C) A、5 B、4 C、3 D、2 5、公元前500年的古希腊人曾使用了一种著名的加密方法,叫什么名字?(A) A、Scytale密码 B、凯撒密码 C、代替密码 D、置换密码 6、在密码学中,对RSA的描述是正确的是?(B) A、RSA是秘密密钥算法和对称密钥算法 B、RSA是非对称密钥算法和公钥算法 C、RSA是秘密密钥算法和非对称密钥算法 D、RSA是公钥算法和对称密钥算法 7、IDEA的密钥长度是多少bit?(D) A、56 B、64 C、96 D、128 8、DES的密钥长度是多少bit?(B) A、64 B、56 C、512 D、8 9、RSA使用不方便的最大问题是?(A) A、产生密钥需要强大的计算能力 B、算法中需要大数 C、算法中需要素数 D、被攻击过很多次 10、ECB指的是?(D) A、密文链接模式 B、密文反馈模式 C、输出反馈模式 D、电码本模式 11、下列为非对称加密算法的例子为(D) A、IDEA B、DES C、3DES D、ELLIPTOC CURVE 12、国际标准化组织在ISO 7498-2标准中定义了几类可选的安全服务?(D) A、8 B、7 C、11 D、6 13、下面关于密码算法的阐述,哪个是不正确的?(C) A、对于一个安全的密码算法,即使是达不到理论上的不破的,也应当为实际上是不可破的。即是说,从截获的密文或某些已知明文密文对,要决定密钥或任意明文在计算机上是不可行的。 B、系统的保密性不依赖于对加密体制或算法的保密,而依赖于密钥。 C、对于使用公钥密码体制加密的密文,知道密钥的人,就一定能够解密。 D、数字签名的理论基础是公钥密码体制。 14、下列古典密码算法是置换密码的是?(B) A、加法密码 B、Hill密码 C、多项式密码 D、栅栏式密码 15、若Bob给Alice发送一封邮件,并想让Alice确信邮件是由Bob发出的,则Bob应该选用哪种密钥对邮件加密?(D) A、Alice的公钥 B、Alice的私钥 C、Bob的公钥 D、Bob的私钥 16、根据所依据的难解问题,除了哪个以外,公钥密码体制分为以下分类。(D)

密码学课程实验指导书

密码学课程实验指导书 一、密码学课程实验的意义 当前,重视实验与实践教育是各国高等教育界的发展潮流,实验与实践教学与理论教学是相辅相成的,具有同等重要的地位。它是在开放教育的基础上,为配合理论教学、培养学生分析问题和解决问题的能力以及加强训练学生专业实践能力而设置的教学环节;对于完成教学计划、落实教学大纲,确保教学质量,培养学生分析问题、解决问题的能力和实践操作技能更具有特别重要的意义。 密码学是信息安全与保密技术的核心,是一门实践性非常强的课程,实践教学是培养密码技术应用性人才的重要途径,实践教学质量的好环,实际上也决定了应用型人才培养质量的高低。因此,加强密码学课程实践教学环节,提高实践教学质量,对培养高质量的应用型人才至关重要。 二、实验的目的与要求 本实验指导书并不给出一些非常具体的实验步骤,让学生们照着做一遍的实验“指导书”。这样的实验无法发掘这群充满活力的人群的智慧和创造性。本书中的每个实验都是按照这种模式编写的:先给出有关的理论介绍,然后抛砖引玉地给出几范例,再给出一个简单的实验要求。同时,希望每个实验都完成准备-预约-实验-答辩4个环节。 实验内容包含对称密码和公钥密码二个方面,以DES和RSA为代表通过具体实验使学生掌握这二类密码的结构、特性、攻击方法以及实际应用技术。 第一部分数据加密标准DES 1.实验目的 (1)掌握DES中各加密函数对其性能影响; (2)DES的特性分析,包括互补性和弱密钥; (3)DES的实际应用,包括各种数据类型的加/脱密、DES的短块处理。 2.实验原理 信息加密根据采用的密钥类型可以划分为对称密码算法和非对称密码算法。对称密码算法是指加密系统的加密密钥和解密密钥相同,或者虽然不同,但是可

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

第一章 基本概念 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 对任意;密文

密码学基础

密码学常识

目录 密码常识 字母表顺序-数字 进制转换密码 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

密码学基础知识

【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. 加法密码

公钥密码学的理论基础

公钥密码学的理论基础—单向函数 1976年,Diffie W.和Hellman M.E.在他们的《密码学的新方向》一文中提出了公钥密码的概念。随后,在1978年,Rivest R.L.,Shamir A.和Adleman L.M.在其文《实现数字签名和公钥密码体制的一种方法》中最先提出了一种可行的实现方法,这就是我们现在广泛使用的RSA 体制。RSA体制的提出真正使得互不相识的通信双方在一个不安全 的信道上进行安全通信最终成为可能,也是我们今天CA服务的源泉。然而,人们很少关心当前幸福生活的背后有一位默默的奉献者—单向函数。 单向和陷门单向函数的概念是公钥密码学的核心,可以说公钥密码体制的设计就是陷门单向函数的设计。那么什么是单向函数?什么是陷门单向函数?他们的密码学意义何在?本文试图作一个初浅的 介绍。 1 单向函数 给定任意两个集合X和Y。函数f:X Y 称为单向的,如果对每一个x属于X,很容易计算出函数f(x)的值,而对大多数y属于Y,要确定满足y=f(x)的x是计算上困难的(假设至少有这样一个x存在)。注意,不能将单向函数的概念与数学意义上的不可逆函数的概念混同,因为单向函数可能是一个数学意义上可逆或者一对一的函数,而一个不可逆函数却不一定是单向函数。

目前,还没有人能够从理论上证明单向函数是存在的。单向函数存在性的证明将意味着计算机科学中一个最具挑战性的猜想P=NP,即NP完全问题的解决,而关于NP完全性的理论却不足以证明单向函数的存在。有幸的是,现实中却存在几个单向函数的“候选”。说他们是“候选”,是因为他们表现出了单向函数的性质,但还没有办法从理论上证明它们一定是单向函数。 一个最简单的、大家熟知的“侯选”单向函数就是整数相乘。众所周知,不管给定两个多大的整数,我们很容易计算出它们的乘积,而对于一个300位左右的十进制整数,即使已知它是两个大小差不多(150位左右的十进制数)的素数之积,用世界上计算能力最强的计算机,也没有办法在一个合理的时间内分解出构成这个整数的两个素数因子来。这里讲的“合理的时间”是指一个可度量的相当长的时间,比如人类或者地球的寿命等。 另一个单向函数的侯选就是固定基数和模数的模指数运算。设n 和a是整数,而且1 2 陷门单向函数 显然,单向函数不能直接用作密码体制,因为如果用单向函数对明文进行加密,即使是合法的接收者也不能还原出明文了,因为单向函数的逆运算是困难的。与密码体制关系更为密切的概念是陷门单向函数。一个函数f:X Y 称为是陷门单向的,如果该函数及其逆函数的计算都存在有效的算法,而且可以将计算f的方法公开,即使由计

密码学课程设计

中国矿业大学 密码学课程设计报告 院系: 计算机学院 专业: 信息安全 班级: 信安08-3班 姓名: 许多 学号: 08083701 指导老师: 汪楚娇 2011年6月 1绪论 密码技术是一门古老而十分有用的技术,随着计算机通信技术的迅猛发展,大量的敏感信息通过公共设施或计算机网络进行交换。特别是Internet的广泛应用、电子商务和电子政务的迅速发展,越来越多的信息需要严格的保密,如:银行账号、个人隐私等。正是这种对信息的机密性和真实性的需求,密码学才逐成为比较热门的学科。 近几年来,信息安全成为全社会的需求,信息安全保障成为国际社会关注的焦点。而密码学是信息安全的核心,应用密码学技术是实现安全系统的核心技术。应用密码学研究如何实现信息的机密性、完整性和不可否认性。随着信息系统及网络系统的爆炸性增长,形形色色的安全

威胁严重阻碍了当前的信息化进程,因此,亟待使用密码学来增强系统的安全性。而密码学课程设计正是为这方面做出了具体的实践。 经过前一段时间的学习,我们对于密码学这门课程有了更深的认识和了解,对于一般的密码学算法学会了怎么样使用。因此,通过密码学课程设计这么课程,对前一段的学习进行了检查。在设计中,我们选择做了古典密码算法,分组密码算法DES,公钥密码算法RSA。这几种经典的密码算法是我们学习密码学课程设计所必须掌握的,也是学习信息安全的基础。在接下来的部分,我将详细介绍我设计的过程以及思路。 2 古典密码算法 2.1 古典密码Hill 2.11 古典密码Hill概述 Hill体制是1929年由Lester S.Hill发明的,它实际上就是利用了我们熟知的线性变换方法,是在Z26上进行的。Hill体制的基本思想是将n个明文字母通过线性变换转化为n个密文字母,解密时只需要做一次逆变换即可,密钥就是变换矩阵。

现代密码学考试重点总结

古典密码 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.常用的密码分析攻击分为以下四类: 惟密文攻击已知明文攻击选择明文攻击选择密文攻击 7.衡量密码体制安全性的基本准则: 计算安全的可证明安全的无条件安全的 分组密码 8.分组密码的设计准则 ○1概念:又称块密码。是指对固定长度的一组明文进行加密的一种加密算法,这一固定长度称之为分组长度 ○2在分组加密中,要求填充是可逆的 ○3严格的雪崩准则SAC 位独立准则BIG 保证的雪崩准则GAC 非线性性和随机性9.Feistel分组密码的基本结构: Shannon能够破坏对密码系统进行各种统计分析攻击的两个基本操作:扩散和混淆10.Feistel安全性取决于: ○1明文消息和密文消息分组的大小 ○2子密钥的大小 ○3循环次数 ○4子密钥产生算法 ○5轮函数(核心——非线性) 11.数据加密标准——DES(Data Encryption Standard) ○1包含16个阶段的“替换--置换”的分组加密算法经过16轮加密得到64位密文序列○2密钥的长度56位 12.DES共8个s盒——6位输入4位输出 13.高级加密标准AES(Advanced Encryption Standard) 128位分组/密钥—10轮192位分组/密钥—12轮256位分组/密钥—14轮 14.IDEA(International Data Encryption Algorithm:国际数据加密标准)

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

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

北邮研究生复试专业课科目及用书

083900网络空间安全(名额多) 《网络安全与密码学》、《编译原理与技术》、《计算机系统结构》、《数据库系统原理》、《软件工程》、《人工智能》、六门选四门 《网络安全与密码学》: 1、《网络安全》,徐国爱等,北京邮电大学出版社,2007年。 2、《现代密码学教程》,谷利泽等,北京邮电大学出版社,2009年。 《编译原理与技术》: 1、编译程序设计原理与技术李文生北京邮电大学出版社。 2、编译原理(第2版)张素琴等,清华大学出版社。 3、现代编译原理C语言描述 AndrewW.Appel著,赵克佳等译。 《计算机系统结构》: 1、《计算机体系结构》郑纬民、汤志忠清华大学出版社2001年。 2、《并行计算机系统结构(第二版)》白中英编著科学出版社2006年。 《数据库系统原理》: 1、数据库系统概论王珊萨师煊著高等教育出版社。 2、数据库系统概念杨冬青马秀莉等译机械工业出版社。 3、数据库系统原理李建中王珊著电子工业出版社。 《软件工程》: 1、《软件工程模型与方法》,肖丁、吴建林等编,北京邮电大学出版社。 2、《实用软件工程》,郑人杰等,清华大学出版社。 3、《UML和模式应用》第三版,CraigLarman,机械工业出版社。 《人工智能》:《人工智能及其应用》(本科生用书),蔡自兴等,第三版,清华大学出版社,2003。 081200计算机科学与技术 《网络安全与密码学》: 1、《网络安全》,徐国爱等,北京邮电大学出版社,2007年。 2、《现代密码学教程》,谷利泽等,北京邮电大学出版社,2009年。 《编译原理与技术》: 1、编译程序设计原理与技术李文生北京邮电大学出版社。 2、编译原理(第2版)张素琴等,清华大学出版社。 3、现代编译原理C语言描述 AndrewW.Appel著,赵克佳等译。 《计算机系统结构》: 1、《计算机体系结构》郑纬民、汤志忠清华大学出版社2001年。 2、《并行计算机系统结构(第二版)》白中英编著科学出版社2006年。 《数据库系统原理》: 1、数据库系统概论王珊萨师煊著高等教育出版社。 2、数据库系统概念杨冬青马秀莉等译机械工业出版社。 3、数据库系统原理李建中王珊著电子工业出版社。 《软件工程》: 1、《软件工程模型与方法》,肖丁、吴建林等编,北京邮电大学出版社。 2、《实用软件工程》,郑人杰等,清华大学出版社。

密码学的发展历史简介

密码学的发展简史 中国科学院研究生院信息安全国家重点实验室聂旭云学号:200418017029064 密码学是一门年轻又古老的学科,它有着悠久而奇妙的历史。它用于保护军事和外交通信可追溯到几千年前。这几千年来,密码学一直在不断地向前发展。而随着当今信息时代的高速发展,密码学的作用也越来越显得重要。它已不仅仅局限于使用在军事、政治和外交方面,而更多的是与人们的生活息息相关:如人们在进行网上购物,与他人交流,使用信用卡进行匿名投票等等,都需要密码学的知识来保护人们的个人信息和隐私。现在我们就来简单的回顾一下密码学的历史。 密码学的发展历史大致可划分为三个阶段: 第一个阶段为从古代到1949年。这一时期可看作是科学密码学的前夜时期,这段时间的密码技术可以说是一种艺术,而不是一门科学。密码学专家常常是凭直觉和信念来进行密码设计和分析,而不是推理证明。这一个阶段使用的一些密码体制为古典密码体制,大多数都比较简单而且容易破译,但这些密码的设计原理和分析方法对于理解、设计和分析现代密码是有帮助的。这一阶段密码主要应用于军事、政治和外交。 最早的古典密码体制主要有单表代换密码体制和多表代换密码体制。这是古典密码中的两种重要体制,曾被广泛地使用过。单表代换的破译十分简单,因为在单表代换下,除了字母名称改变以外,字母的频度、重复字母模式、字母结合方式等统计特性均未发生改变,依靠这些不变的统计特性就能破译单表代换。相对单表代换来说,多表代换密码的破译要难得多。多表代换大约是在1467年左右由佛罗伦萨的建筑师Alberti发明的。多表代换密码又分为非周期多表代换密码和周期多表代换密码。非周期多表代换密码,对每个明文字母都采用不同的代换表(或密钥),称作一次一密密码,这是一种在理论上唯一不可破的密码。这种密码可以完全隐蔽明文的特点,但由于需要的密钥量和明文消息长度相同而难于广泛使用。为了减少密钥量,在实际应用当中多采用周期多表代换密码。在16世纪,有各种各样的多表自动密钥密码被使用,最瞩目的当属法国人 B.de Vigtnère的Vigenère密码体制。有名的多表代换密码有Vigenère、Beaufort、Running-Key、Vernam和转轮机(rotor machine)。对于单表代换和多表代换密码来说,唯密文分析是可行的。单表代换和多表代换密码都是以单个字母作为代换对象的,而每次对多个字母进行代换就是多字母代换密码。大约1854年L.Playfair在英国推广Playfair密码,它是由英国科学家C.Wheatstone发明的。这是第一种多字母代换密码,在第一次世界大战中英国人就采用这种密码。多字母代换的优点是容易将字母的自然频度隐蔽或均匀化而有利于抵抗统计分析。这种密码主要有Playfair密码、Hill密码等。 在二十世纪二十年代,人们发明了各种机械加密设备用来自动处理加密。大多数是基于转轮的概念。1918年美国人E.H.Hebern造出了第一台转轮机,它是基于一台用有线连接改造的早期打字机来产生单字母表替代的,输出是通过原始的亮灯式指示。最著名的转轮装置是Enigma,它是由德国人Scherbius发明并制造的。它在第二次世界大战中由德国人使用。不过在第二次世界大战期间,它就被破译了。

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