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

密码学基础

密码学基础
密码学基础

北京江南天安内部学习资料

密码学基础

目录

1密码技术概述3

1.1 密码技术发展简史 (3)

1.2 基本概念 (4)

1.3 密码体制分类 (5)

1.4 密码分析 (6)

2常用密码技术简介8

2.1 分组密码体系 (8)

2.1.1 数据加密标准(DES)算法 (8)

2.1.2 国际数据加密算法(IDEA) (13)

2.1.3 其它分组算法 (13)

2.2 公开密钥密码体系 (14)

2.2.1 RSA公开钥密码体制 (15)

2.2.2 ELGamal算法 (17)

2.2.3 椭圆曲线算法(ECC) (17)

2.2.4 Rabin算法 (18)

2.2.5 背包公开钥密码体制 (18)

2.3 信息摘要技术 (18)

3加密模式介绍20

3.1 电子密码本(ECB)模式 (20)

3.2 密码分组链接(CBC)模式 (21)

3.3 密码反馈(CFB)模式 (23)

3.4 输出反馈(OFB)模式 (24)

3.5 其他加密模式 (25)

4密钥管理技术27

4.1 密钥生成技术 (27)

4.2 密钥分配协议 (28)

4.3 ECC组合公钥 (29)

4.4 密钥托管技术 (31)

1 密码技术概述

1.1 密码技术发展简史

密码的历史渊远流长,古埃及人在四千多年前刻在墓碑上的象形符号就是一种古老的密码形式。随着人类社会的发展,密码在军事、政治、外交等领域逐步成为信息保密的一种不可缺少的技术手段。密码技术的发展大致可分三个阶段:

(1)手工密码为主时期(自公元前5世纪—第一次世界大战结束)

公元前405年,古希腊人使用了一种称为“塞塔”(sitar),亦称“天书”(skytale)的密码。其方法是先将明文字母书写到斜绕在木棍上的一条羊皮纸上,然后把木棍抽走,纸上的明文便成了密文。这是西方最早的错乱密码。公元前1世纪,罗马的G.J.恺撒使用了一种单码代替密码。他把明文中每一个字母各按字母表的/顷序向后推三位,如A用D替代,使明文变为密文。这种密码称为恺撒密表。公元11世纪,中国北宋时期编撰的《武经总要》记述了一种称为字验的秘密通信方法。通信双方约定用一首诗的40个汉字,分别代表从申请弓箭到报告胜利共40个明文条目,这是一种初始形态的小型军用密本。

(2)机械、机电密码为主时期(第一次世界大战结束—20世纪60年代)

第一次世界大战期间,无线电通信得到空前的发展,手工密码已很难满足实战要战后出现了种类繁多、形态各异的密码机。1934年,瑞典人B.C.W.哈格林应法军参谋部的要求,研制了一种小型的密钥式多表代替类型的机械密码机C-36。美国军方对它进行反复试验后,决定采用,并将其改名为M-209,配发至师、团、营三级作为战术密码使用。从第二次世界大战到朝鲜战争,美军曾大量使用过M-209。第二次世界大战以后,哈格林密码技术公司不断改进并生产了这类密码机的系列产品,向各国推销。

在机电密码中,圆盘密码受到各工业国普遍重视。美国人E.H.赫本于1919年设计了一种多表代替类型的转轮密码,并制成了机器样品。1923年,他又提出了一份有5个线路轮的直路圆盘密码机,并申请了专利。1923年,德国人人舍尔比乌斯所在的密码机公司展出了一部有3个线路轮的恩尼格玛回路圆盘密码机。1935年,希特勒开始重新武装德国,德军选用恩尼格玛为主要密码。通

过不断研究、改进,在第二次世界大战中成为德国陆海空军的高级密码并广泛使用。英军于1935年开始使用TYPEX园盘密码机。美国使用过多种型号的圆盘密码机。30~40年代,美国海军在赫本的直路圆盘思路基础上,先后研制出了五种圆盘密码机。二战期间,圆盘密码是美军高层使用的主要密码。原苏联于二次大战以后开始使用圆盘密码,直到五、六十年代,先后使用过多种圆盘密码。

(3)电子密码为主时期(20世纪60年代—)

第二次世界大战以后,各参战国在总结战争的经验教训时,深感保密通信对战争影响极大,开始探索、研制新型密码机。

60年代起,固体组件和集成电路的出现使电子密码进入迅速发展的时期。密码通信方式逐步由线外式向线内式过渡。加密对象由电报迅速扩展到语音、数据、图像等领域。除模拟话密外还出现了数字话密。到1967年,美国在电报加密、语音加密和数据加密等方面已经有几十种电子加密设备投入使用。苏联自1965年起陆续启用了多种线内式电子密码机,其中包括模拟和数字话密机。

70年代以来,随着电子计算机应用的普及为促进了电子密码的高速发展。现在信息加密不再仅仅应用于军队、政府部门,加密技术作为信息安全的核心在大量的商务活动中被越来越多的使用。甚至个人也可以很容易的得到一些免费的高强度加密工具使用个人电脑对他们的信息进行加密保护。

密码学理论的发展有两大里程碑,一个是1949年的香农(Shannon)另一个是1976年Diffie-Hellman提出了公开密钥理论。

香农在1949年出版的“Communication Theory of Secrecy System ”一书中用信息论的观点对信息保密问题作了全面的阐述,为密码学的研究提供了理论基础,从此密码学的研究被纳入科学轨道。Diffie-Hellman在1976年出版的“New Directions in Cryptogrphy”一书中提出了公开密钥这一全新概念,与传统的单一密钥体制不同的是它使用两个密钥,一个加密另一个解密而加密密钥无须保密,因而通讯双方无须事先通过秘密通道交换密钥就可以建立保密通讯。

1.2 基本概念

密码学包括密码编码学和密码分析学,密码编码是将明文变成密文和把密文变成明文的技术,密码分析是指在未知加密算法中使用的原始密钥的情况下把密

码转换成明文的步骤和运算。

1.3 密码体制分类

对于当前众多的加密算法大体上可按如下方式分类:

1)对称密码体制和非对称密码体制

根据密码算法所使用的加密密钥和解密密钥是否相同,可将密码体制分成对称或非对称体制。

对称密码体制又称为单密钥体制或隐蔽密钥体制。在这种体制下,加密密钥和解密密钥相同,或者一个可从另一个导出;拥有加密能力就意味着拥有解密能力,反之亦然。对称密码体制的保密强度高,但开放性差,需要有可靠的密钥传递渠道。

非对称密码体制又称为公开密钥体制。这种体制下,加密和解密的密钥是分开的;加密密钥公开,解密密钥不公开,从一个密钥去推导另一个密钥是计算不可行的。非对称密码体制适用于开放的使用环境,密钥管理相对简单,但工作效率一般低于对称密码体制。

2)序列密码体制和分组密码体制

这是根据密码算法对明文信息的加密方式进行分类的方法。如果经过加密所得到的密文仅与给定的密码算法和密钥有关,与被处理的明文数据段在整个明文(或密文)中所处的位置无关,则称为分组密码体制。通常分组密码体制总是以大于等于64比特的定长的数据块作为加密单位,给定相同的明文数据块加密后得到相同的密文数据块。对于较大的数据必须首先将它分割成若干等长(分组长度)的分组,然后依次对每一个分组进行加解密运算。公开密钥通常都是分组密钥体系,一般我们说的分组算法是指对称密码体制的分组算法。

如果密文不仅与最初给定的密码算法和密钥有关,同时也是被处理的数据段在明文(或密文)中所处的位置的函数,则称为序列密码体制。通常情况下,序列密码体制总是以明文的比特作为加密的单位。加密时,将一段类似于噪声的伪随机序列与明文序列模2加后作为密文序列,这样即使对于一段全“0”或全“1”的明文序列,经过序列密码加密后也会变成类似于随机噪声的乱数流。在接收端,用相同的随机序列与密文序列模2加便可恢复明文序列。序列密码的关键技术是

伪随机序列产生器(即伪随机序列产生函数)的设计。

序列密码算法通常属于对称密码体系,序列密码大多应用在军队、政府机构,其研究结果在各国也处于保密状态,因而公开的文献也较少。本书对序列密码也不在进行专门讨论。

1.4 密码分析

常用的密码分析攻击有四类,当然,每一类都假设密码分析者知道所用的加密算法的全部知识:

(1) 唯密文攻击。密码分析者有一些消息的密文,这些消息都用同一加密算法加密。密码分析者的任务是恢复尽可能多的明文,或者最好是能推算出加密消息的密钥来,以便可采用相同的密钥解出其他被加密的消息。

已知:C1=E K(P1),C2=E K(P2), ,C I=E K(P i)

推导出:P1,P2, ,P i;K或者找出一个算法从C i+1= E K(P i+1)推出P i+1。

(2) 已知明文攻击。密码分析者不仅可得到一些消息的密文,而且也知道这些消息的明文。分析者的任务就是用加密信息推出用来加密的密钥或导出一个算法,此算法可以对用同一密钥加密的任何新的消息进行解密。

已知:P1,C1=E k(P1),P2,C2=E k(P2), ,P i,C i=E k(P i),

推导出:密钥k,或从C i+1= E k(P i+1)推出P i+1的算法。

(3)选择明文攻击。分析者不仅可得到一些消息的密文和相应的明文,而且他们也可选择被加密的明文。这比已知明文攻击更有效。因为密码分析者能选择特定的明文块去加密,那些块可能产生更多关于密钥的信息,分析者的任务是推出用来加密消息的密钥或导出一个算法,此算法可以对用同一密钥加密的任何新的消息进行解密。

已知:P1,C1=E k(P1),P2,C2=E k(P2), ,P i,C i=E k(P i)

其中P1,P2, ,P i是由密码分析者选择的。

推导出:密钥k,或从C i+1= E k(P i+1)推出P i+1的算法。

(4)自适应选择明文攻击。这是选择明文攻击的特殊情况。密码分析者不

仅能选择被加密的明文,而且也能基于以前加密的结果修正这个选择。在选择明文攻击中,密码分析者还可以选择一大块被加了密的明文。而在自适应选择密文攻击中,他可选取较小的明文块,然后再基于第一块的结果选择另一明文块,以此类推。

另外还有至少三类其它的密码分析攻击。

(5)选择密文攻击。密码分析者能选择不同的被加密的密文,并可得到对应的解密的明文,例如密码分析者存取一个防窜改的自动解密盒,密码分析者的任务是推出密钥。

已知:C1,P1=D k(C1),C2,P2=D k(C2), ,C i,P i=D k(C i),

推导出:k。

这种攻击主要用于公开密钥体制,这将在19.3节中讨论。选择密文攻击有时也可有效地用于对称算法(有时选择明文攻击和选择密文攻击一起称作选择文本攻击。)

(6)选择密钥攻击。这种攻击并不表示密码分析者能够选择密钥,它只表示密码分析者具有不同密钥之间的关系的有关知识。这种方法有点奇特和晦涩,不是很实际,将在12.4节讨论。

(7)软磨硬泡(Rubber-hose)攻击。密码分析者威胁、勒索,或者折磨某人,直到他给出密钥为止。行贿有时称为购买密钥攻击。这些是非常有效的攻击,并且经常是破译算法的最好途径。

2 常用密码技术简介

2.1 分组密码体系

分组密码体制是一种将消息(明文)分成等长的组,在给定密钥的控制下,使各组变换成相应长度的密文组的密码体制。公开密钥密码(RSA 等)均属于分组密码,但是本节仅讨论对称密钥体制下的分组密码算法。

20世纪40年代,香农曾提出过交替进行“混合”和“扩散”变换的分组密码设想,但由于受当时科技水平的限制未能实现。随着电子技术的发展和数据保密的需要,特别是计算机网络通信中对数据准确性、完整性和高效率的要求,使分组密码的设计思想重新受到重视。60年代后期,美国IBM公司开始研制分组密码,并研究出几种复杂度较高的密码体制。1977年1月美国国家标准局选用该公司研制的一种分组密码作为商用数据加密标准(DES),并公开了密码算法,这就是最早的通用分组密码,也是目前使用最为广泛的加密算法。目前全世界已公开几十种分组密码算法,不少已被实际使用。下面简要介绍几种分组密码算法:

1、DES运算过程

DES是一种最有代表性的分组密码体

制。它将明文分为64比特等长的分组。即一

次取明文64比特,对其加密,输出密文64

比特。密钥为64比特,其中有8比特为校验

码,有效密钥长度为56比特。算法主要包括:

初始置换IP、16层迭代的乘积变换、逆初始

置换IP-1”,以及16层子密钥产生器。(如DES

原理框图示)

(1)初始置换IP

将64比特明文的位置进行置换,得到一

个乱序的64比特组,而后分成X0、X1两段DES原理框图

数据,每段32比特(见下图)。

(2)16层迭代的乘积变换运算

一层的乘积变换包括一个复杂的F函数运算和两段数据模2加混合运算。对于第i层的计算可表示成x i+1=x i-1⊕F(k i x i),i =1,2,…,16。其中x i-1、x i为第i层输入,k i以为层密钥,x i+1为输出。按上式迭代计算,直至16层。第16层的输出与其它各层不同,为x17、x l6,左右两段数据为倒序。(参见DES框图)。

F函数运算包括扩展运算、模2加层密钥、选择压缩运算和置换运算。扩展运算将输入的32比特x数据,扩展成为48比特。即先将x分成8个4比特组,然后再把每4个比特分组通过首位共用扩展成6比特分组,(如扩展运算图所示)。

模2加层密钥将上述产生的8个6比特分组与子密钥产生器产生的48比特层密钥

K的对应比特模2加,得48比特数据。

选择压缩运算将前面送来的48比特数据自左向右分成8组,每组6比特,而后并行送入8个S盒。每一个S盒输出4个比特。8个S盒共输出32比特。S盒为一非线性代换网络。其内存储数据如S盒替代表所示。送入s盒的6比特从左至右第0和第5比特为行选择,第1至第4比特为列选择,行、列选择S盒中4比特数据作为输出。例如送入S0盒的6比特数为101100,输出为02,即0010。扩展运算图

置换运算图

S 盒替代表

置换运算对从S盒输出的32比特数据进行坐标置换得到F函数运算结果。F函数运算输出32比特数据与另一x段32比特数据模2加得一新的x数据。例如,x。⊕F(k1,x1)=x2,至此,一层的乘积变换已经完成。经16层,完成全部乘积变换运算。

(3)逆初始置换IP -1

将16层迭代输出的x 17,x 16,两段共64

比特数据进行逆初始置换,得输出的密文组分

组,如图右图所示。

(4)16层子密钥产生器

DES 的密钥为8个手节,共64比特。

每个字节最后一个比特为校验码,前7个比特

有效。有效密钥为56比特,用于生成16层子

密钥K l ,K 2,…,K 16,按下列规则进行。

①将56比特送入PC I 经过坐标置换后生

成C 和D 两组数据。

②将C 、D 两组数据按表7-2给出的数据分别左循环移λ(i)位。第16次移位后,C 、 D 组分别回到初始位置,生产对下一个分组明文加密的子密钥。

③每次移位后将C 、D 两组数据合起来送给置换选择PCII ,在置换之前,将C 组数据的第8、17、21、24比特和D 组数据的第6、9、14、25比特删去,余下的48比特送入PC II 进行置换,得到第i 层的48比特子密钥Ki 。

置换PC I

密钥移位表

2、DES 的安全性问题

鉴于DES 的重要性,美国参议院情报委员会于l978年曾经组织专家对DES 逆初始置换IP

置换选择 PC II

的安全性进行了深入地分析,最终的报告是保密的,没有公布,但声明DES是安全的。IBM宣布DES经过了17年的安全分析,是独立研制的。但后来课题组有人透露,S盒曾送给NSA检查,返回时已被修改过。因此有人认为NSA在DES中设立了陷门,但NSA予以坚决否认;后来又有人认为这是为了防止IBM 在其中设立陷门。虽然多年来并没有人证明DES陷门的存在但是出于安全考虑人们还在是70年代末反对将DES定为国际标准。

对DES的数学分析也一直在进行。在1993年Biham 和Shamir提出了差分密码分析的方法对16轮DES的攻击,它需要247个选择明文或255已知明文;1994年M. Matsui提出了使用线性分析的方法,使用它对16轮DES的攻击需要243已知明文。如此巨大的已知明文数量使得对DES的攻击变得不太实际。

事实上对DES进行攻击的最有效的手段还是穷搜索,因为DES密钥仅有56bits,通过已知明文的情况下平均255次DES运算就可以完成攻击,因此上对DES的攻击可以转换为一个金钱(建立计算系统所须资金)与时间(完成攻击)的问题。1993年Wiener提出了一种DES破译机的设想,费用是100万美元,平均计算时间为3.5小时,到了98年这一时间被更改为35分钟。在现实中,美国电子边境基金会(EFF)在98年使用一台造价25万美元的设备在56小时内完成了DES的破解,到了99年这一记录更被更改为22小时15分钟。因此56比特密钥长度的DES原则上不再是安全的。

3、DES算法变种

为了增强DES的安全性,人们曾尝试使用可选择的S-盒和使用独立子密钥等方式对DES进行修改,但其结果是任何对DES算法的修改都不能使其更安全。现在人们普遍的方法是使用两个或三个DES密钥对数据进行三次DES运算,称为3-DES算法。其计算过程如下:

1)使用第一个密钥对数据进行DES加密运算;

2)使用第二个密钥对第一步计算结果进行DES解密运算;

3)使用第三个密钥或第一个密钥对第二步计算结果进行DES加密运算,得到最终运算结果;

当3-DES运算的所有密钥相同时其计算结果与使用该密钥进行DES运算相同,也就是说3-DES可以兼容DES运算。根据已经被证明了的“DES不成群”,

当3-DE使用的密钥不同时(非弱密钥),不能找到另外一个密钥进行DES运算具有等效性,说明了3-DES算法增加密钥长度所提供的安全性增加有效,当然其代价是增加处理时间。

2.1.2 国际数据加密算法(IDEA)

IDEA(International Data Encryption Algorithm)是由瑞士苏黎士联邦工业大学(ETH)的XuejiaLia 和James L.Massey于1990提出的。原名为“建议的加密标准”(PES),后来改进后定名为国际数据加密算法(IDEA)。该算法在形式上与DES类似,也是使用循环加密方式,把64位的明文加密成64位的密文,或反之。所不同的是,IDEA使用128位的密钥,强度高于DES(穷尽分析需1038年);而且IDEA的设计倾向软件实现,其计算速度高于DES。到目前为止,从公开发表的文献看,对IDEA尚未找到破译方法。但是IDEA存在大量弱密钥,这些弱密钥的存在是否会影响其安全性还不清楚。

IDEA是一种多层迭代分组密码。由8层变换组成和最后一个输出变换。IDEA的基本设计思想是:“把不同的代数群的运算相混和”以达到密码输出的混乱。每层变换由三种互不相容的群运算交替复合而成。它们是对应比特模2加运算、整数模216加运算和整数模216+1乘运算。

IDEA在欧洲使用较多另外被广泛使用的加密软件PGP使用的也是IDEA算法。

2.1.3 其它分组算法

1、RC5:是Rivest 1994年设计的分组密码,它的特点是分组长度W、密钥长度b和轮数r都是可变的,记为RC5-W/r/b。它主要通过数据的循环来实现数据的扩散和混淆,每次循环的次数依赖于输入数据,并且其实现速度非常快。

2、AES算法:AES(Advanced Encryption Standard)算法是2000年美国国家标准和技术局(NIST)公布的取代DES的新一代加密标准。AES的是从15可侯选算法中经过认真评估最终选定比利时人Joan Daemen 和Vincent Rijmen设计的Rijndael算法。

现在国际上公布的分组密码算法还有很多,如RC-2、SAFER K-64、CAST、MMB、FEAL、GOST、RC-6等等这里不再介绍。

2.2 公开密钥密码体系

在前面介绍的密码体制中,加密密钥与解密密钥通常是相同的,或者很容易由其中之一推导出另一个。对于这种体制,加解密双方所用的密钥都须保守秘密,所以称这种体制为秘密密钥(或对称)密码体制。

对称密码体制存在的问题是:

①密钥需要定期更换,新的密钥要通过某种秘密渠道将密钥分配给使用方,在传递过程中,密钥容易泄露。

②在网络通信中,网络内任两个用户都需使用互不相同的密钥,因而N个用户就要使用N(N-1)/2个密钥,这在大型网络中,密钥量太大,难以管理。

③无法满足互不相识人之间的保密谈话(如商业上的订货交易,银行业务等)。

④难以解决对数据(包括报文)的签名验证问题。

1976年W.迪菲和M.E.赫尔曼发表了《密码学的新方向》一文,提出了公开钥密码的思想,公开钥密码体制(即非对称密码体制)的加密密钥和解密密钥互不相同,不能互推。即在计算上,不能由加密密钥推出解密密钥,因而加密密钥可以公开,只需对解密密钥保密。

公开钥密码体制是这样一种密码体制,其密钥成对互逆,且每对密钥须满足:①用一个密钥加密的内容,可以用另一个密钥解密。②已知加解密算法和公开密钥,要解出秘密密钥是很难的,即不能由一个密钥推导出另一个密钥。因此,设计一个公开钥密码体制实质上是构造一个陷门单向函数。陷门单向函数有如下的含义:设x为明文,Y为密文。满足以下两条件的f则称为陷门单向函数:①由X计算Y=f(x)容易,而若已知Y,反求X则很难,即求x=f-1(Y)很难;②若陷门(参数)已知,则容易由Y求X。

显然,若能构造出这样的陷门单向函数,也就找到了一个公开钥密码体制。由X计算Y即是公开钥进行的加密过程,而由Y求x即是解密过程,而陷门参数正是秘密密钥。不知道秘密密钥即不知陷门难以由密文Y推出明文X。而保证从已知Y、X和公开钥难以推出秘密密钥的所谓安全性,往往建立在著名的数学难题基础上,即要破译该体制,相当于要解一个公认的数学难题。例如,大合数的分解、离散对数的计算、子集和的计算、二次剩余问题等等。由数学难题的

难解性来保证由Y反求x和推导陷门信息的困难性。目前,世界上的公布的公开钥密码体制有很多,它们的安全性都是建立在某个数学难题的基础之上。

非对称密码体制的特点是:①密钥分发简单。由于加密密钥与解密密钥不能互推,使得加密密钥表可以象电话号码本一样由主管部门发给各个用户。当然,公开密钥表必须是真实可靠,经认证,未经改动的。②需要秘密保存的密钥量少。网络中每个成员只需秘密保存自己的解密密钥,N个成员只需产生N对密钥。

③互不相识的人之间也能进行保密对话。一方只要用对方的公开密钥加密发出,收方即用自己的密藏的解密密钥脱密,而任何第三方即使知道加密密钥也无法对密文进行解密。④可以进行数字签名。发信者用他掌握的秘密密钥进行签名,收信者可用发信者的公开密钥进行验证。

2.2.1 RSA公开钥密码体制

RSA公开钥密码体制是Ron Rivest, Adi Shamir和Len Adleman于1977年研制并于1978年首次发表,并以他们的名字命名的,此体制的安全性建立在大整数分解困难性的基础上。在RSA中,密钥是变长的(从512比特到2048比特);每个分组也可以是变长的,其中明文块的长度应小于等于加密密钥长度,而密文长度等于解密密钥长度。由于RSA涉及大数的计算,无论是硬件实现还是软件实现的效率都比较低,因此它不适用于对长的明文进行加密,常用来对密钥进行加密,即与对称密码体制结合使用。

RSA是目前国际上公开密钥算法的事实标准,受到广泛的承认,一些国家将其作为公开密钥算法的标准,例如法国和澳大利亚。RSA曾在美国注册了专利,但美国之外的使用并不受限制,该专利现在已经到期。

1、RSA的基本原理

设p、q为两个不同的质数,令n= pq,Φ(n)=(p-1)(q-1)

任意选取a、b使得ab≡1modΦ(n)。现在设明文为X,密文为Y。

加密计算为:Y = X b mod n

解密计算为: X = Y a mod n

我们将(b,n)称为加密密钥,它可以公开因而又叫公开密钥(PK),而p、q、a必须保密并将(a,n)称为解密密钥也可称为私有密钥或秘密密钥(SK)。攻击者要想得到a 先由n得到p、q,但是对于大数来说是非常困难的。

2、参数的选择

从上面可以看到,RSA的加密和解密运算是在有限域进行的。如果采用分组加密方式,则每个分组的大小不能超过RSA系统的模数。因此,RSA所使用的大质数通常其位数要超过100位(十进制)。据统计,任取一整数n,其为质数的概率大致为1/ln n。为确认其为质数,最简单的测试方法是用所有小于开根号n的数去整除n,然而这种方法基本上是计算不可行的。因此,在实际使用中,可考虑用费马定理:m mp-1=1 mod P(P是质数)。

取大数n(100位以上的整数),和整数a<n,计算a n-1 mod n。若结果不为1,则n必不是质数(费马定理的逆否定理),若结果为1,则根据研究,n不为质数的概率大约为10-13。这对于许多应用来说,其风险已足够小了,然而相应的计算量可大大减少了。如果n不是质数,则意味着存在较P k和S k位数更短的等价密钥,从而降低了算法的安全强度。

通过对RSA的研究发现,选择固定并较小的加密密钥并不降低整个系统的安全性(因为这个密钥是公开的),但却会提高加密的运算速度。而在实际应用中,加密设备的能力要弱于解密设备的能力的情况是经常出现的。从理论上说,最小的加密密钥是3;然而由于3太小,会有一些安全问题。例如,如果m3<n,攻击者可以通过开立方的方法得到m。因此,可考虑使用略大一些的质数,如65537,作为公开密钥。解密密钥的获得则可通过Euclid算法。

3、实现举例

由于实用RSA体制使用的参数非常大,为便于理解,这里以小整数为例子加以说明。

1)密钥生成:用户A选择素数p=2357,q=2551;计算n=pq=6012707,φ(n)=(p-1)(q-1)=6007800;选择e=3674911,gcd(3674911,6007800)=1;用欧几里德算法计算,得d=422191,使得ed≡1 模中(n);用户A的公开钥为(n= 6012707,e=3674911),秘密密钥d=422191。

2)加密计算:用户B用A的公开钥加密将消息m=5234673发给A的步骤是:从A那里(或从公用数据库查到)得A的公开钥n=6012707,e=3674911;计算c=m e(模n)=52346733674911(模6012707)=3650502:密文c=3650502发给A。

3)解密计算:用户A接到C=3650502后,用自己的秘密密钥d脱密,只需

要完成计算C d(模n)=3650502422191(模6012707)=5234673即可。

2.2.2 ELGamal算法

ELGamal在1984年提出的这套公钥算法是基于离散对数数学难题,该算法也是密码协议中大量使用的一类公钥算法,美国的数字签名标准(DSS)就是在ELGamal签名方案的基础上改进而成的。该算法原理如下:

1、密钥产生:

用户A首先要按如下操作产生公开钥和对应的秘密钥:①随机地产生大素数p,和模p的本原元素g;随机选择整数a,1≤a≤p一2,计算g a mod p;将(p,g,g a)公布,即用户A的公开钥为(p,g,g a)而a必须保密,及A的私钥为a。

2、加/解密计算

加密者B须首先获取A的真实公开密钥(p,g,g a),然后将消息m表成(0,1,……,p-1)中的数。B随机选择整数k(1≤k≤p-2)并计算r=g k mod p,s=m·(g a)k mod P;将密文C=(r,s)发给A。

用户A收到密文C后用秘密钥a计算s(r a)-1mod p即可得出明文m。

从上面计算过程可以发现,加密结果除了依赖公开密钥和明文外还与加密者选取的随机数k有关,不同的加密者使用的k不同其密文也不相同。

2.2.3 椭圆曲线算法(ECC)

椭圆曲线公钥体制是1985年Neal Koblitz 和V. S. Miller分别独立提出的。经过十多年的研究和试验,该体制已走向成熟并进入实用。

上面介绍的公钥体制可以说都是建立在群运算的基础上,而椭圆曲线公钥体制则是建立在椭圆曲线群的基础上。椭圆曲线群是由平面上一些点组成,这些点满足某个给定的椭圆方程,再在这些点之间定义特定的加法运算,就构成了椭圆曲线群。椭圆曲线密码体制安全性是基于求椭圆曲线离散对数的数学难题。

椭圆曲线密码体制已历经多年研究和分析,至今还未发现实质性的弱点,人们对它的安全性逐步建立了信心,与其他公钥体制相比,它的最大优点是:在同等安全性情况下,其密钥短,计算速度快,耗能少,节省带宽和存储量。特别适用于带宽较窄、存储容量较小、速度要求高的场合,如智能卡和移动电。

2.2.4 Rabin算法

Rabin算法是1979年提出的。它是第一个给出了其安全性等价于大合数分解难度的密码实例。它的加密过程可以看成是RSA的一个特例,即取e:2的情形,因为e与伞(n)不互素,其脱密过程是求模大合数n的平方根。任何人不知道n的分解想要求出模n的平方根(即明文)是困难的,而掌握秘密密钥(P,q)的用户,则容易分别计算模p(模q)的两个平方根,再由孙子定理即得模n的四个平方根,只要在明文中加入可鉴别的参数,就容易验证得到唯一的原明文。

2.2.5 背包公开钥密码体制

背包公钥密码体制是Ralph Merkle 和Martin Hellman于1978年提出的基于有名的背包问题的密码体制。背包公钥钥密码体制发表后,不久就被破译了,后来又出现许多改进型,但绝大多数已被证明是不够安全的。由于它是第一个提出的实现公钥思想的加密体制,尽管后来经分析被认为是不安全的,人们还是注意到了它的历史作用。

2.3 信息摘要技术

信息摘要(message digests)是单向的散列函数,它以变长的信息为输入,把其压缩成一个定长的值输出。若输入的信息改变了,则输出的定长值(摘要)也会相应改变。信息摘要可用于产生程序或文档的“唯一性标记”,以发现对这些数据的非法修改,如发现病毒对程序的感染。

由于输入的长度大于输出的长度,因此会有不同的输入产生相同输出的可能。然而对于信息摘要函数而言,给定一个输出,要求去寻找一个特定的输入以产生相同的输出是计算不可行的。从著名的生日问题(求n个人中任意2个人生日相同的概率)可知,对于n个输入、k个输出(这里是365天),且输入与输出之间的映射是不可预测的(即一个人的生日是随机的),则任意的输入对有n(n-1)/2个。对于每一对,有1/K的可能产生相同的输出,因此对于一个输入n 所取的某个特定的K值,如果还能够产生K/2个输入对,则产生相同输出的概率才会大于50%。目前信息摘要的长度经常取为128比特,而在264个报文中寻找相同输出目前在计算上是不可行的。所以从数据完整性保护的角度看,信息摘要

可为指定的数据产生一个不可仿造的特征,伪造一个报文并使其与原报文具有相同的摘录是计算不可行的。

信息摘录技术的产生是由于公开密钥体制的发展。RSA的出现使数字签名成为可能,但由于RSA的计算效率较低,很难实用化。于是RSA的发明者之一,MIT的R.Rivest教授提出了信息摘录的MD算法,该算法由于用于商业化的安全产品,所以没有发表。Rivest后来又提出了MD2(RFC1319)。之后,Xerox的R.Merkle于1990年提出了一个新的信息摘录算法SNEFRU,计算效率比MD2高2倍, 这促使Rivest将MD2改进为MD4(RFC1320),效率比SNDFRU更高一些。SNEFRU于1992年被攻破,即可以为一个摘录构造出两个不同的信息;MD4也发现有弱点,于是Rivest将MD4改进为MD5(RFC1321),强度增加,效率降低。美国NIST另外建议了一个信息摘录算法SHS,它比MD5强度更高,但效率更低。

3 加密模式介绍

对于分组密码技术,每次加密或解密的数据是定长(即分组长度)。但是在实际使用中需要处理的数据通常都不等于分组长度,因此需要相应的协议来约定如何运用加密技术对数据进行加解密处理。下面我们介绍几种常用的加密模式并对它们的特性进行简单分析。

3.1 电子密码本(ECB)模式

电子密码本(ECB)模式是使用分组密码算法进行加密运算最简单最明显的方式:将明文按顺序分组并加密然后将密文分组按顺序连接在一起。因为使用相同的密钥和加密算法对于相同的明文分组加密永远得到相同的密文分组,就像密码本一样一个明文对应一个密文。当然,当分组的大小较大时(如64比特)计算和储存该密码本的是不太现实的,况且对应每一个密钥需要有一个不同的密码本。

对于大多数信息它们并不能刚好被按分组长度进行分组,通常在尾部有一个短分组。处理该问题的方法就是对最后一个分组按一定规则进行填充,使其长度等于加密分组长度,如果需要解密方去除填充数据则填充规则必须使解密方能够对填充数据进行识别。例如:可以使用0把最后的分组填充成一个完整的分组。为了区分填充值,在最后一分组的最后一字节中加上填充字节的数目。但是当解密方解密一个信息后发现最后一个字节是1(0x01)那么他如何区分这个1是填充数还是明文信息本身的最后一位?因而为了该方法能正确工作可以规定对每一个消息都必须填充——即使明文以分组的边界结束,也必须添加一个整分组。

使用ECB加密模式,每个明文分组实际上是一个独立的信息进行加密。这样当密文中数据出了错,解密时,会使得相对应的明文分组解密错误,但它不会影响其它明文。另外你不必按次序进行,这使得加密工作可以并行处理,你可以将一个大的文件分成若干段(当然应该是分组长度的整数被)交给不同的加密处理器去完成计算,然后他们的计算结果连接得到密文文件。对于一个经常需要对其部分内容进行添加、删除、修改或解密的文件(如数据库),如果它的每段信息是加密分组的整倍数,那么使用ECB方式就仅仅需要对该段信息进行操作而

《密码学基础复习提要》

第一部分内容提要 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/699349797.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密码的安全性要高。 正确错误

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