密码学大作业

密码学大作业
密码学大作业

代理签名:将签名权委托给代理签名者,由他来代替自己行使签名。它在电子商务中有着广泛的应用,相关研究主要集中在对代理签名权的控制问题上。

在现实生活中,人们常常根据印章的可传递性,将自己的签名权力委托给代理人,让代理人代表他们在文件上盖章。例如,一个公司的经理在外出度假期间,需要让他的秘书代替他处理公司上的业务,包括以公司的名义在一些文件上签名。为此,这个经理可以将公司的公众交给秘书,让秘书能够代表公司在文件上盖章。可以看出,这种委托签名权力的方法有一个特点,即公司的客户不因签名人的变更而受到影响。无论盖章人是经理还是秘书,客户得到的印签是相同的。因此,在盖章人发生变化时,一方面客户不需要改变他检验印签的方法;另一方面,公司也不需要花费时间和金钱去通知每一个客户。

数字签名权力的委托是数字化的信息社会必然遇到的一种现象。但是,人们在将自己的数字签名权力委托给他人的时候,需要考虑以下几个问题:

(1).安全性。主要体现在代理人只希望在特定的时间,特定的情况,对特定的文件进行代理签名。而不希望代理人“滥用”签名。滥用主要体现在伪造。

(2).可行性。方便容易实现。

(3).效率。数字签名在转交过程中应该具有较高速度,较小的计算复杂度。

1996年。https://www.360docs.net/doc/be2507267.html,uda和Okamoto首先提出代理签名的概念。

Mambo提出的完全代理签名.部分代理签名和具有授权证书的代理签名。Zhang提出的具有授权证书的部分代理签名和具有授权证书的代理签名。2000年yilu.祁明.Harn代理多重签名。

代理签名是指在一个签名方案中,原始签名人授权他的签名权给代理签名人,然后让代理签名人代表原始签名人生成有效地签名。

(1).初始化过程,在这个过程中,选定签名体制的参数,用户的密钥等。

(2).数字签名权力的委托过程,在这个过程中,原始签名人将自己的数字签名权力委托给代理签名人。

(3).代理签名的生成过程,在这个过程中,代理签名人代表原始签名人生成数字签名。

(4).代理签名的验证过程,在这个过程中,验证人验证代理签名的有效性。

形式化定义

设A,B是某数字签名体制(M.S.SK.PK.GenKey.Sign.Ver)的两个用户,其中M是消息集合,S是签名集合,SK是私有密钥集合,PK是公开密钥集合,GenKey表示产生签名密钥的算法的集合,Sign是签名算法集合,Ver是签名验证算法的集合,他们的私有密钥,公开密钥对分别是(X A,Y A),(X B,Y B)∈SK×PK。如果以下条件成立:

(1).A利用他的私钥X A计算出一个数δ,然后将δ秘密地交给B;

(2).任何人(包括B)试图求出X A时,δ不会对求解有任何帮

助。

(3).代理签名者B可以利用δ和X B,生成一个新的签名密钥δA→B.

(4).存在一个公开的验证算法Ver A→B:PK×S×M→{Ture,False},使得对任何s∈S和m∈M都有Ver A→B(Y A,s,m)=Ture s=sign(δA→B,m) (5).任何人在试图求出X A,X B,δ和δA→B时,任何数字签名s=sign(δA→B,m)都不会有任何帮助。

北方工业大学密码学平时作业答案公钥密码作业答案

四、公钥密码(3,4,5,6;10,12;13,18,19,20) 3. 用Fermat定理求3201 mod 11 。 解:对于模运算,有结论(a×b) mod n = [ (a mod n)×(b mod n)] mod n 由Fermat定理,可知310≡1 mod 11,因此有 (310)k ≡1 mod 11 所以3201 mod 11= [(310)20×3] mod 11 = [( (310)20 mod 11)×(3 mod 11)] mod 11 = 3。 4. 用推广的Euclid算法求67 mod 119的逆元。 解:q g u v ~ 119 1 0 ~ 67 0 1 1 5 2 1 -1 1 15 -1 2 3 7 4 -7 2 1 -9 16 ( 注:1 = 119×(-9) + 67×16 ) 所以67-1mod 119 = 16 5.求gcd(4655, 12075) 。 解:12075 = 2×4655 + 2765 4655 = 1×2765 + 1890 2765 = 1×1890 + 875 1890 = 2×875 + 140 875 = 6×140 + 35 140 = 4×35+0 所以gcd(4655, 12075)=35。 6.求解下列同余方程组 2mod3 1mod5 1mod7 x x x ≡ ? ? ≡ ? ?≡ ? 。 解:根据中国剩余定理求解该同余方程组, 记a1=2, a2=1, a3=1, m1=3, m2=5, m3=7, M=m1×m2×m3=105, M1=M/m1=35, M1-1 mod m1 = 35-1 mod 3 = 2, M2=M/m2=21, M2-1 mod m2 = 21-1 mod 5 = 1, M3=M/m3=15, M3-1 mod m3 = 15-1 mod 7 = 1 所以方程组的解为x≡(M1M1-1a1 + M2M2-1a2 + M3M3-1a3) mod M ≡(35×2×2+21×1×1+15×1×1) mod 105 ≡176 mod 105≡71 mod 105 10.设通信双方使用RSA加密体制,接收方的公开钥是(e,n)=(5,35),接收到的密文是C=10,求明文M

密码学作业参考答案

第1章绪论 1.1为什么会有信息安全问题的出现? 答题要点: (1)网络自身的安全缺陷。主要指协议不安全和业务不安全。协议不安全的主要原因 一是 Internet 从建立开始就缺乏安全的总体构想和设计;二是协议本身可能会泄漏口令等。业务不安全的主要表现为业务内部可能隐藏着一些错误的信息;有些业务本,难以区分出错原因;有些业务设置复杂,一般非专业人士很难完善地设置。 (2)网络的开放性。网络协议是公开的协议,连接基于彼此的信任,远程访问等,使 得各种攻击无需到现场就能成功。 (3)人的因素,包括人的无意失误、黑客攻击、管理不善等。 1.2简述密码学与信息安全的关系。 答题要点: 密码技术是实现网络信息安全的核心技术,是保护数据最重要的工具之一。 密码学尽管在网络信息安全中具有举足轻重的作用,但密码学绝不是确保网络信息安全的唯一工具,它也不能解决所有的安全问题。 1.3简述密码学发展的三个阶段及其主要特点。 答题要点:密码学的发展大致经历了三个阶段: (1)古代加密方法(手工阶段)。特点:基于手工的方式实现,通常原理简单,变化量小,时效性较差等。 (2)古典密码(机械阶段)。特点:加密方法一般是文字置换,使用手工或机械变换的 方式实现。它比古代加密方法更复杂,但其变化量仍然比较小。转轮机的出现是这一阶段的重要标志,利用机械转轮可以开发出极其复杂的加密系统,缺点是密码周期有限、制造费用高等。 (3)近代密码(计算机阶段)。特点:这一阶段密码技术开始形成一门科学,利用电子 计算机可以设计出更为复杂的密码系统,密码理论蓬勃发展,出现了以 DES 为代表的对称 密码体制和 RSA 为代表的非对称密码体制,制定了许多通用的加密标准,促进和加快了密 码技术的发展。 1.4近代密码学的标志是什么? 答:1949 年 Claude Shannon 发表论文 The communication theory of secrecy systems,1976 年 W.Diffie 和 M.Hellman 发表论文 New directions in cryptography,以及美国数据加密标准 DES 的实施,标志着近代密码学的开始。 1.5安全机制是什么?主要的安全机制有哪些? 答题要点: 安全机制是指用来保护网络信息传输和信息处理安全的机制。 安全机制可分为两类:特定的安全机制和通用的安全机制。 特定的安全机制包含:加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制和公证。 通用的安全机制包含:可信功能、安全标签、事件检测、安全审计跟踪和安全恢复。1.6什么是安全服务?主要的安全服务有哪些? 答题要点: 安全服务就是指在信息传输和处理过程中为保证信息安全的一类服务。 主要的安全服务包括:机密性、完整性、鉴别、非否认性、访问控制、可用性。 1.7简述安全性攻击的主要形式及其含义。 答题要点:

应用密码学试题

东华2011~2012学年《应用密码学》试卷 (回忆版) 一. 单选题 1. 以下关于非对称密码的说法,错误的是() A. 加密算法和解密使用不同的密钥 B.非对称密码也称为公钥密码 C. 非对称密码可以用来实现数字签名 D. 非对称密码不能用来加密数据 2. 在RSA密钥产生过程中,选择了两个素数,p=17,q=41,求欧拉函数Φ(n)的值() A. 481 B. 444 C. 432 D. 640 3. 假如Alice想使用公钥密码算法发送一个加密的消息给Bob,此信息只有Bob 才能解密,Alice使用哪个密钥来加密这个信息?() A.A的公钥 B. A的私钥 C. B的公钥 D. B的私钥 4. 以下基于大整数因子分解难题的公钥密码算法是?() A. EIGamal B. ECC C. RSA D. AES 5. 以下哪种算法为不可逆的数学运算 A.MD5 B.RC4 C.IDEA D.DES 6. MAC和对称加密类似,但是也有区别,以下哪个选项指出了MAC和对称加密算法的区别? A.MAC不使用密钥 B.MAC使用两个密钥分别用于加密和解密 C.MAC是散列函数 D.MAC算法不要求可逆性而加密算法必须是可逆的

7. HMAC使用SHA-1作为其嵌入的散列函数,使用的密钥长度是256位,数据长度1024位,则该HMAC的输出是多少位? A. 256 B. 1024 C. 512 D. 160 二.填空题 1. DES加密算法的明文分组长度是位,密文分组长度是位;AES分组长度是位;MD5输出是位;SHA-1输出是位。 2. 如C=9m+2(mod26),此时假设密文C=7,则m= . 3.已知RSA加密算法中,n=21,e=5,当密文c=7时,求出此时的明文m= 4.Hmac的算法表达式是。 5.假设hash函数h的输出为k位,则散列结果发生碰撞的概率为 6. DES加密算法是结构,AES算法是结构。 三解答题 1.解释说明什么是零知识证明 2.Hash函数h,请分析h 特性和安全要求

《密码学基础复习提要》

第一部分内容提要 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

现代密码学试卷(含答案)

武汉大学计算机学院 信息安全专业2004级“密码学”课程考试题 (卷面八题,共100分,在总成绩中占70分) 参考答案 (卷面八题,共100分,在总成绩中占70分) 一、单表代替密码(10分) ①使加法密码算法称为对合运算的密钥k称为对合密钥,以英文为例求出其对合密钥,并以明文 M=WEWILLMEETATMORNING 为例进行加解密,说明其对合性。 ②一般而言,对于加法密码,设明文字母表和密文字母表含有n个字母,n为≥1的正整数,求出其对合密钥k。 解答: 1.加法密码的明密文字母表的映射公式: A为明文字母表,即英文字母表,B为密文字母表,其映射关系为: j=i+k mod 26 显然当k=13时,j=i+13 mod 26,于是有i = j+13 mod 26。此时加法密码是对合的。称此密钥k=13为对合密钥。举例:因为k=13,所以明文字母表A和密文字母表B为 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 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 第一次加密:M=W E W I L L M E E T A T M O R N I N G C=J R J V Y Y Z R R G O G Z B E A V A T

第二次加密:C=W E W I L L M E E T A T M O R N I N G?? 还原出明文,这说明当k=13时,加法密码是对合的。 称此密钥为对合密钥。 ②设n为模,若n为偶数,则k=n/2为对合密钥。若n为奇数,n/2不是整数,故不存在对合密钥。 二、回答问题(10分) 1)在公钥密码的密钥管理中,公开的加密钥Ke和保密的解密钥Kd的秘密性、真实性和完整性都需要确保吗?说明为什么?解答: ①公开的加密钥Ke:秘密性不需确保,真实性和完整性都需要确保。因为公钥是公开的,所以不需要保密。 但是如果其被篡改或出现错误,则不能正确进行加密操作。如果其被坏人置换,则基于公钥的各种安全性将受到破坏, 坏人将可冒充别人而获得非法利益。 ②保密的解密钥Kd:秘密性、真实性和完整性都需要确保。因为解密钥是保密的,如果其秘密性不能确保, 则数据的秘密性和真实性将不能确保。如果其真实性和完整性受到破坏,则数据的秘密性和真实性将不能确保。 ③举例 (A)攻击者C用自己的公钥置换PKDB中A的公钥: (B)设B要向A发送保密数据,则要用A的公钥加密,但此时已被换为C的公钥,因此实际上是用C的公钥加密。 (C)C截获密文,用自己的解密钥解密获得数据。 2)简述公钥证书的作用? 公钥证书是一种包含持证主体标识,持证主体公钥等信息,并由可信任的签证机构(CA)签名的信息集合。 公钥证书主要用于确保公钥及其与用户绑定关系的安全。公钥证书的持证主体可以是人、设备、组织机构或其它主体。

《应用密码学》学习笔记

以下是我对《应用密码学》这本书的部分学习笔记,比较简单。笔记中对现代常用的加密技术进行了简单的归类和解释,有兴趣的同学可以看一下,没看过的同学就当普及知识了,看过的同学就当复习了。笔记里面可能有错别字,有的话请各位看客帮忙指正。 第1章密码学概述 1-1、1-2 1.密码技术的发展历史大致可以划分为三个时期:古典密码、近代密码和现代密码时期。 2.公元前440多年的斯巴达克人发明了一种称为“天书”的加密器械来秘密传送军事情报。这是最早的移位密码。 3.1919年德国人亚瑟·谢尔比乌斯利用机械电气技术发明了一种能够自动编码的转轮密码机。这就是历史上最著名的德国“埃尼格玛”密码机。 4.1949年香农的奠基性论文“保密系统的通信理论”在《贝尔系统技术杂志》上发表。 5.1977年,美国国家标准局正式公布实施了美国的数据加密标准(DES)。 6.1976年11月,名美国斯坦福大学的著名密码学家迪菲和赫尔曼发表了“密码学新方向”一文,首次提出了公钥密码体制的概念和设计思想。 7.1978年,美国的里韦斯特(R.L.Rivest)、沙米尔(A.Shamir)和阿德勒曼(L.Adleman)提出了第一个较为完善的公钥密码体制——RSA体制,成为公钥密码的杰出代表和事实标准。 8.2000年10月,比利时密码学家Joan Daemen和Vincent Rijmen提出的“Rijndael数据加密算法”被确定为AES算法,作为新一代数据加密标准。 1-3 1.密码学的主要任务:密码学主要为存储和传输中的数字信息提供如下几个方面的安全保护:机密性、数据完整性、鉴别、抗抵赖性。 2.密码体制中的有关基本概念: 明文(plaintext):常用m或p表示。 密文(ciphertext):常用c表示。 加密(encrypt): 解密(decrypt): 密码算法(cryptography algorithm):简称密码(cipher)。

计算机密码学上机作业08级

11/12(1)现代密码学上机作业 第一题:用kaiser密码获得秘文kddkmu,试所有可能解密它#include void main(){int i,c,k; const int size=100; char aa[size]; cout<<"请输入秘文:"; cin.getline(aa,size); for(k=0;k<26;k++) {for(i=0;aa[i];i++) { c=((int)aa[i]-97)-k; if(c<0) c=(26+c)+97; else c=c%26+97; aa[i]=(char)c; }for(i=0;aa[i];i++) cout< void main(){ int i,x;int a1=2,a2=5,a3=1; int b1=78,b2=97,b3=119;int M,m1,m2,m3; int y1,y2,y3;M=b1*b2*b3; m1=b2*b3;m2=b1*b3;m3=b1*b2; for(i=0;i

武汉大学应用密码学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位的

密码学作业CH11

201013210141 徐鹏志密码学作业11 1.消息认证是为了对付哪些类型的攻击? 答:伪装(假冒)篡改内容修改顺序修改时间(包括重放) 2.消息认证或数字签名方法有哪两层功能? 答:任何消息认证或数字签名机制基本分两步: 产生认证符(是一个用来认证消息的值)的函数; 将该函数作为原语使接收方可以验证消息真实性的认证协议。 3.产生消息认证有哪些方法? 答:用于消息认证的最常见的密码技术是消息认证码和安全散列函数 MAC是一种需要使用秘密钥的算法,以可变长度的消息和秘密钥作为输入,产生一个认证码。拥有秘密钥的接受方产生一个认证码来验证消息的完整性。 哈西函数将可变长度的消息映射为固定长度的哈西值,或叫消息摘要。对于消息认证来说,安全散列函数还必须以某种方式和秘密钥捆绑起来。 4.对称加密和错误控制码一起用于消息认证时,这两个函数必须以何种顺序执行? 答:先错误控制码后对称加密。

5.什么是消息认证码? 答:消息认证码,是用来保证数据完整性的一种工具,可以防止数据未经授权被篡改,用数学语言描述,是一个让双方共享的密钥k和消 (m),这个函数值就是一个息m作为输入函数,如果将函数记为mac k 认证标记。 6.消息认证码和散列函数之间的区别是什么? 答:消息认证码(MAC)依赖公开函数,密钥控制下对消息处理,生成定长认证标识,并加以认证。 散列函数:将任意长度的消息换为定长的消息摘要,并加以认证。 7.为提供消息认证,应以何种方式保证散列值的安全? 答:a.用对称密码对消息及附加在其后的散列码加密。 b.用对称密码仅对散列加密。 c.用公钥密码和发送方的密钥仅对散列加密。 d.若寄希望保证保密性有希望有数字签名,则先用发送方的密钥对散列码加密 e.该方法使用散列函数但不使用加密函数来进行消息认证。 f.如果对整个消息和散列码加密,则(e)中的方法可提供保密性。 8.为了攻击MAC算法必须要恢复密钥吗?

密码学基础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;

《现代密码学》期终考试试卷和答案

一.选择题 1、关于密码学的讨论中,下列(D )观点是不正确的。 A、密码学是研究与信息安全相关的方面如机密性、完整性、实体鉴别、抗否认等的综 合技术 B、密码学的两大分支是密码编码学和密码分析学 C、密码并不是提供安全的单一的手段,而是一组技术 D、密码学中存在一次一密的密码体制,它是绝对安全的 2、在以下古典密码体制中,属于置换密码的是(B)。 A、移位密码 B、倒序密码 C、仿射密码 D、PlayFair密码 3、一个完整的密码体制,不包括以下( C )要素。 A、明文空间 B、密文空间 C、数字签名 D、密钥空间 4、关于DES算法,除了(C )以外,下列描述DES算法子密钥产生过程是正确的。 A、首先将DES 算法所接受的输入密钥K(64 位),去除奇偶校验位,得到56位密钥(即经过PC-1置换,得到56位密钥) B、在计算第i轮迭代所需的子密钥时,首先进行循环左移,循环左移的位数取决于i的值,这些经过循环移位的值作为下一次 循环左移的输入 C、在计算第i轮迭代所需的子密钥时,首先进行循环左移,每轮循环左移的位数都相同,这些经过循环移位的值作为下一次 循环左移的输入 D、然后将每轮循环移位后的值经PC-2置换,所得到的置换结果即为第i轮所需的子密钥Ki 5、2000年10月2日,NIST正式宣布将(B )候选算法作为高级数据加密标准,该算法是由两位比利时密码学者提出的。 A、MARS B、Rijndael C、Twofish D、Bluefish *6、根据所依据的数学难题,除了(A )以外,公钥密码体制可以分为以下几类。 A、模幂运算问题 B、大整数因子分解问题 C、离散对数问题 D、椭圆曲线离散对数问题 7、密码学中的杂凑函数(Hash函数)按照是否使用密钥分为两大类:带密钥的杂凑函数和不带密钥的杂凑函数,下面(C )是带密钥的杂凑函数。 A、MD4 B、SHA-1

密码学期末作业

密码学期末作业 2018 06 11《现代密码学》期末作业零、选择题采用美国数据加密标准DES进行数据加密时,加密算法种的基本运算不包括。A)置换运算B)异或运算C)模乘运算D)移位运算关于RSA算法下列说法不正确的是。A)RSA算法是一种对称加密算法B)RSA算法的运算速度比DES 慢C)RSA算法可用于某种数字签名方案D)RSA的安全性主要基于因子分解的难度(3) 8位的密钥可以产生多少个可能的密钥A) 8 B) 8 C) 2 D)65536 (4) 3DES密钥的长度最长是多少位? A) 56位B) 168位C) 112位E)128位(5) MD5 (Hash)的输出是多少位?A)64位B)128位C)160位D)256位

(6) SHA的输出是多少位?A)64位B)128位C)160 位D)256位 1 2018 06 11 一、根据下面图解释名词,明文,密文,加密,解密,加密算法,解密算法, 加密密钥和解密密钥二、阐述密码体制分类三、阐述扩散和混淆的概念四、什么是密码分组链接模式,请画出加密与解密示意图 2 2018 06 11 五、哈希(Hash)函数应满足什么条件?六、说明迭代型哈希函数一般结构的运算过程. 七、什么是零知识证明?下图表示一个简单的迷宫,C与D之间有一道门,需要知道秘密口令才能将其打开。P向V证明自己能打开这道门,但又不愿向V泄露秘密口令。可采用什么协议? 3 2018 06 11 八、AES高级加密标准的轮函数4个不同的计算部件组成,分别是:字节代换、行移位、列混合、密钥加。根据下图写出

字节代换、行移位、列混合、密钥加。 4 2018 06 11 九、设椭圆曲线y2=x3+2x+7, p=179 满足1/210失败的概率, 求将消息M= 5 表示成曲线上的点. 十、在RSA算法中,设公钥KU={7,187},私钥KR={23,187}, 设明文M=88, 求密文C。十一、根据下图S-DES (Simplified DES) 收、发双方共享的10位密钥,计算出两个8位子密钥分别用在加密、解密的不同阶段。图中的P10、P8如下表,初始10位密钥为求图中的K1、K2 P10 P8 LS-1 3 6 5 3 2 7 7 4 4 8 10 1 5 9 8 6 10 9 循环左移一位LS-2 循环左移二位 5 2018 06 11 二十二、根据下图说明同一消息同时提供保密性与认证性的过程?二十三、图是一个3级反馈移位寄存器,其初始状态为(a1,a2,a3)=(1,0,1),写出前6个时刻的状态和输出。图一

密码学基础

密码学常识

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

应用密码学习题答案

《应用密码学》习题和思考题答案 第4章 密码学数学引论 4-1 编写一个程序找出100~200间的素数。 略 4-2 计算下列数值:7503mod81、(-7503)mod81、81mod7503、(-81)mod7503。 解:7503mod81=51 (-7503)mod81=30 81mod7503=81 (-81)mod7503=7422 4-3 证明:(1)[]))(m od (m od )(m od )(m od m b a m m b m a ?=? (2)[][])(m od ))(m od ())(m od (m od )(m m c a m b a m c b a ?+?=+? 证明: (1)设(mod )a a m r =,(mod )b b m r =,则a a r jm =+(j 为某一整数),b b r km =+(k 为某一整数)。于是有: [](mod )(mod )mod ()(mod )a b a m b m m r r m ?= ()()() ()() ()() 2()(mod )mod mod mod a b a b a b a b a b m r jm r km m r r r km r jm kjm m r r m ?=++=+++= 于是有:[]))(m od (m od )(m od )(m od m b a m m b m a ?=? (2)设(mod )a a m r =,(mod )b b m r =,(mod )c c m r =,则a a r jm =+(j 为某一整数),b b r km =+(k 为某一整数),c c r im =+(i 为某一整数)。于是有: []()()()()[]()()22()mod (mod ) (mod ) mod mod a b c a b c a b a a a c b c a b a c a b c m r jm r km r im m r jm r km r im m r r r im r km r r r jm kjm r jm ijm m r r r r m ???+=++++????????=++++??=+++++++=+ []()()()()()[]()(mod )()(mod )(mod ) mod mod mod mod a b a c a b a c a b m a c m m r jm r km m r jm r im m m r r r r m ?+?=+++++????=+ 于是有:[][])(m od ))(m od ())(m od (m od )(m m c a m b a m c b a ?+?=+?

密码学作业

通常可以假定攻击者知道用于加密的算法,那么就至少存在穷举攻击、基于统计的攻击和数学攻击这几种攻击方式。在现代密码学研究阶段,密码分析者对密码算法的攻击一般都遵循Kerckhoffs原则。密码分析通常有分析、推断、假设、证实等四个步骤,常见的密码分析攻击方法主要有以下几种: (1)唯密文攻击(Ciphertext Only):密码分析者已知加密算法和待破译的密文。密码分析者的任务是恢复尽可能多的明文,或推算出加密算法的密钥,从而通过使用相同的密钥在算法中解密出其他信息。 已知: 推导出: (2)已知明文攻击(Known Plaintext):密码分析者已知加密算法和经密 钥加密形成的一个或多个明文密文对,即知道一定数量的密文和对应的明文。密码分析者的任务是用加密信息推出加密密钥或导出一个对用同一密钥加密的任何新的信息进行解密的算法。 已知: 推导出:。 (3)选择明文攻击(Chosen Plaintext)-密码分析者已知加密算法,以及 选择的明文和对应的密文。在此种攻击中,密码分析者可以选择特定的明 文加密,从而推出用来加密的密钥或算法。这种攻击比已知明文攻击更加 有效。 (4)选择密文攻击(Chosen Ciphertext):密码分析者己知加密算法,以及 选择的密文和对应的明文。密码分析者的任务是推出已知加密算法的密钥。 这种攻击主要用于分析非对称密码体制。 已知: 推导出:密钥K。 (5)选择文本攻击(Chosen Text):这种攻击方式是选择明文攻击和选择 密文攻击的结合。密码分析者已知加密算法、由密码分析者选择的明文和 它对应的密文,以及由密码分析者选择的被加密的密文和它对应的明文。 除外,还有选择密文攻击、软磨硬泡攻击等密码分析方法。其中,唯 密文攻击是最困难的。一般来说,在唯密文攻击、已知明文攻击、选择明 文攻击下仍安全的密码体制,可以认为其可能是安全的。

密码学基础复习资料

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、画出分组密码算法的原理框图,并解释其基本工作原理。

密码学课后习题

第三章: 3-1 使用密钥字为common 的代换密码方案,列出字母代换表 解:去除后来重复的字母后,真正的密钥字为comn 3-2 解密下面的一段恺撒密码密文(明文单词间留空,以便阅读): EHVWWLPHRIWKHBHDULVVSULQJZKHQIORZHUVEORRP 解:将密文字母在英文字母表上前移3个位置,即可得到这段恺撒密码密文对应的明文如下: best time of the year is spring when flowers bloom 3-3 利用仿射密码算法加密下面的明文,假设k 1=7,k 2=3(要求首先列出明文字母-密文字母代换表,然后给出对应的密文,并以字母t 的加密为例给出计算过程): 解:因为k 1=7,k 2=3,因此仿射密码的加密公式为 )26(mod 37)(21+=+==p k p k p e c k 字母t (19)被加密为 )26(mod 61363197)(G t e k ===+?= 完整的明文字母-密文字母代换表如下表所示: 解:因为k 1=7,k 2=3,因此,根据仿射密码的解密公式,有 )26(mod 1915)3(15)3(71-=-?=-?=-c c c p 密文字母F (5)解密为:)26(mod 4561975195151915e c ===-=-?=-

求仿照表3-7(P51)给出其加密和解密过程,并说明相同明文字符的加密结果。 解:去除密钥字student 中后来重复的字母后,真正的密钥为studen 。因此,应将明文、密文按照6位长度进行分组,每组使用同样的密钥studen 加密、解密。 3-6 选择希尔密码的加密密钥矩阵k 为:?? ? ? ??=07050203k 试以明文love 为例 解:将明文字符love 变换为数字,分别为11、14、21、4。 因为加密密钥矩阵k 为2阶矩阵,所以应将明文分成)1411(1=p 和)421 (2=p 两组分别进行加密。 (1)确定解密密钥矩阵k -1 111021527307 0502 03=-=?-?==k 1926mod 1111 ==--k (见表2-2(P21) ) )26(mod 0321240703050207*? ? ? ???=??????--=k )26(mod 05091403573994561330321240719*1 1?? ????=??????=??????==--k k k (2)加密 ())26(mod )()1625()120103(07050203141111Q Z k p c ===??? ????=?=? ())26(mod )()185()7038(0705020342122S F k p c ===? ? ? ????=?=? 因此,明文字符love 的加密密文为ZQFS 。 (3)解密 ()) 26(mod )()1411()430219(0509140316251 11o l k c p ===?? ? ????=?=-

相关文档
最新文档