应用密码学 期末考试 - 文档模板

合集下载

应用密码学考试试题

应用密码学考试试题

应用密码学考试试题密码学是一门研究加密技术和信息安全的学科。

在当今信息爆炸的时代,隐私和安全问题越来越受到重视,密码学技术的应用变得越来越广泛。

而对于密码学的学生和研究者来说,掌握密码学的基本原理和技术是至关重要的。

一、选择题1.下列哪个不属于密码学的基本原则?A. 机密性B. 完整性C. 可用性D. 可追溯性答案:D2.对称密钥加密和非对称密钥加密的区别是什么?A. 对称密钥加密只使用一个密钥,而非对称密钥加密使用两个密钥。

B. 对称密钥加密速度更快,而非对称密钥加密更安全。

C. 对称密钥加密适用于网络通信,而非对称密钥加密适用于文件存储。

D. 对称密钥加密和非对称密钥加密的原理完全不同。

答案:A3.常见的哈希算法包括下列哪个?A. RSA算法B. DES算法C. SHA-256算法D. AES算法答案:C4.数字签名的作用是什么?A. 加密通信内容B. 防止抵赖C. 保障机密性D. 提高效率答案:B二、填空题1.对称密钥加密中,加密和解密使用________ 相同的密钥。

答案:秘密2.非对称密钥加密中,加密使用_________ 密钥,解密使用_________ 密钥。

答案:公开,私有3.________ 是一种能够通过一个密钥来加密数据和解密数据的密码学算法。

答案:对称加密4.________ 是一种通过一个公开密钥和一个私有密钥来实现加密和解密的密码学技术。

答案:非对称加密三、问答题1.简要解释对称密钥加密和非对称密钥加密的原理及各自的优缺点。

答:对称密钥加密是指加密和解密使用相同的密钥,速度快但密钥分发存在风险;非对称密钥加密是指加密和解密使用不同的密钥,安全性高但速度较慢,且存在公钥信任的问题。

2.什么是数字签名?它的作用是什么?答:数字签名是利用公钥密码技术实现的一种保证文件完整性和真实性的技术,在发送者对文件进行哈希计算后使用私钥生成数字签名,接收者使用公钥验证数字签名以确定文件未被篡改。

南京邮电大学《密码学》2022-2023学年第一学期期末试卷

南京邮电大学《密码学》2022-2023学年第一学期期末试卷

南京邮电大学《密码学》2022-2023学年第一学期期末试卷《密码学》考试内容:《密码学》;考试时间:120分钟;满分:100分;姓名:——;班级:——;学号:——一、选择题(每题2分,共20分)1. 密码学中最基本的加密方法是:A. 替换密码B. 移位密码C. 公钥密码D. 对称密钥加密2. RSA算法属于哪种类型的加密算法?A. 对称密钥加密B. 非对称密钥加密C. 哈希算法D. 流密码3. 如果发送方用私钥加密消息,则可以实现:A. 保密性B. 保密与鉴别C. 保密而非鉴别D. 鉴别4. 在混合加密方式下,真正用来加解密通信过程中所传输数据(明文)的密钥是:A. 非对称算法的公钥B. 对称算法的密钥C. 非对称算法的私钥D. CA中心的公钥5. 两个不同的消息摘要具有相同的值时,称为:A. 攻击B. 冲突C. 散列D. 都不是6. 以下关于数字签名的描述,不正确的是:A. 数字签名是一种用于验证消息来源和完整性的技术B. 数字签名在电子商务中确保了交易的安全性和不可抵赖性C. 数字签名是可复制的D. 数字签名是不可伪造的7. HASH函数可应用于:A. 用户的公钥B. 用户的私钥C. 自己的公钥D. 都不是8. 在RSA算法中,若取p=3, q=11, e=3,则d等于:A. 33B. 20C. 14D. 79. 以下哪种加密算法属于单钥制加密算法?A. DES加密算法B. RSA加密算法C. Diffie-Hellman加密算法D. AES加密算法(注:AES通常为对称加密,但此处为选项设置)10. 密码学中的“雪崩效应”是指:A. 混淆B. 扩散C. 当输入发生轻微变化时,输出将发生非常显著的变化D. 数字水印二、填空题(每题2分,共20分)1. 密码学是研究信息的______、______、完整性和不可否认性的科学和艺术。

2. 对称密钥加密,也称为私钥加密,意味着加密和解密使用______的密钥。

西南科技大学 2012-2013-1密码学及其应用期末考试

西南科技大学 2012-2013-1密码学及其应用期末考试
答案:
把私D。
8、简述扩散与混淆的区别
答案:
扩散:加大明文与密文之间统计关系的复杂度。
混淆:加大密文与加密密钥之间统计管理的复杂度。
9、什么是抗强碰撞?
答案:
找到任何满足H(x)=H(y)的偶对(x,y)在计算上是不可行的。
10、什么是PKI?
图二
答案:
(a)、认证。原因:源点把M||H(M||s)发送给终点,终点接收后,先算出H(M||s),再与接收到的H(M||s)进行比较。
(b)、消息认证和保密。原因:源点把Ek2[ M||Ck1[ M] ]发送给终点,终点接收后,先用k2对收到的信息进行解密,然后比较Ck11[ M ]和Ck1[ M ]。
6、下面是一种确认通信双方密钥是否一样的方法。A首先产生一个与密钥等长的随机数串为Rand=(10100101),将其与密钥K异或(也就是模2加运算),得到Rand⊕K=01001011,将这个结果发送给可以知道双方的密钥是否相同。在整个过程中通信双方没有发送真正的密钥K,但是这个方法存在安全问题,如果你是一个攻击者,请破解出这个密钥K。
答案:
错误。改正:ECC算法的密码长度会更短。
3、通常安全性攻击分为主动攻击和被动攻击两类,流量分析属于主动攻击,重放攻击属于被动攻击。
答案:
错误。改正:流量分析属于被动攻击,重放攻击属于主动攻击。
4、为了对抗通信量攻击(流量攻击),通常采用传输填充的方法。
答案:错误。改正:采用流量填充。
5、3-DES使用的有效密钥长度为168位。
答案:
正确
6、MAC函数与加密算法类似,只是MAC算法不要求可逆性,而加密算法必须是可逆的。
答案:
正确。
7、KDC是PKI的核心组成部分,业界通常称为认证中心,它是数字证书的签发机构。

密码学选修课期末试卷及答案【精选】

密码学选修课期末试卷及答案【精选】

1.凯撒大帝在密码学上很有造诣,试运用密码对一段信息I like the course:stay of cryptography加密,密钥为3~6中的一个2.有人说密码无门槛,也有人说密码高不可攀,试说说你眼中的密码学解:无门槛:举例:(1)研究密码的人员。

在《四十号房间》这个故事中尤因爵士组织的一个破密班子全部由业余爱好者组成,包括神职人员、股票经纪人、银行家、海军学校教师到大学教授的各色人等。

(2)密码应用的方面。

密码的应用可以说是无处不在,尤其是日常生活中,例如银行卡,网银,网店,QQ,手机锁自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。

高不可攀:(1)从安全方面讲:不安全的密码比没有密码更不安全(2)密码要求高:密码学要求基础要深,技术要强,必须是专业人员经过专业培训,专业训练才能胜任这份工作。

例如数学家有扎实的数学基础,计算机学家有相关的专业知识,物理学家有量子物理学的基础,生物学家掌握DNA方面的知识,密码学家也有相当丰富的专业知识。

3.有这样一个观点:要成为密码学家首先要成为数学家、计算机学家、生物学家等等成为其他方面的专家,谈谈自己对此的体会,试举例说明解:密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。

它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。

成为密码学家必须要有相关的密码学知识和相应的研究手段,不同专业领域的人员组成一个团体,各尽所能,致力于密码学研究。

例如:(1)语言学家:对英语、法语、德语或者其他小语种有研究的人,遇到熟悉的语言可以发挥优势,在电影《风语者》中美军使用了一种极少数人懂的印第安某部落的语言,在战争发挥了极大作用,直到战争结束仍未被破解。

(2)数学家:数学家有代数、数论、概率等专业知识,对破解密码有相当大的优势。

《跳舞的小人》中福尔摩斯就是通过字母“E”在英语中出现的频率最高,以此为突破口来破解密码(3)物理学家:物理学家有量子理论和通讯理论的专业知识,例如在《信息论与编码》这门课程中我们学习了,1949年美国人香农发表了《秘密体制的通信理论》一文,应用信息论的原理分析了密码学中的一些基本问题。

密码学期末考试题及答案

密码学期末考试题及答案

密码学期末考试题及答案一、选择题(每题2分,共20分)1. 密码学中的“凯撒密码”属于以下哪种类型的密码?A. 替换密码B. 置换密码C. 公钥密码D. 序列密码答案:A2. 在现代密码学中,以下哪种算法属于非对称加密算法?A. DESB. AESC. RSAD. RC4答案:C3. 以下哪个选项不是哈希函数的特性?A. 确定性B. 快速计算C. 可逆性D. 抗碰撞性答案:C4. 对称加密算法中,加密和解密使用相同密钥的算法是:A. RSAB. AESC. Diffie-HellmanD. ECC5. 在密码学中,以下哪种攻击方式是通过猜测密钥来解密密文的?A. 重放攻击B. 侧信道攻击C. 差分攻击D. 穷举攻击答案:D6. 以下哪个选项不是数字签名的目的?A. 验证消息的完整性B. 验证消息的来源C. 确保消息的机密性D. 验证签名者的身份答案:C7. 在密码学中,以下哪种加密模式不提供消息认证?A. ECB模式B. CBC模式C. CFB模式D. OFB模式答案:A8. 以下哪个选项不是密码学中的攻击类型?A. 已知明文攻击B. 选择明文攻击C. 选择密文攻击D. 随机攻击答案:D9. 在密码学中,以下哪种技术用于防止重放攻击?B. 哈希函数C. 公钥加密D. 对称加密答案:A10. 在密码学中,以下哪个选项不是数字签名的组成部分?A. 哈希值B. 公钥C. 私钥D. 签名答案:B二、填空题(每题2分,共20分)1. 密码学中的“一次性密码本”被认为是理论上的________。

答案:完美安全2. 在密码学中,________算法可以保证即使在密钥泄露的情况下,之前的通信内容仍然安全。

答案:前向保密3. 密码学中的“________”是指在不知道密钥的情况下,无法从密文推断出明文。

答案:机密性4. 密码学中的“________”是指在不知道密钥的情况下,无法确定密文是否有效。

答案:认证性5. 在密码学中,________是指通过修改密文,使得解密后得到错误的明文。

(完整word版)信息安全原理与应用期末期末考试题及答案

(完整word版)信息安全原理与应用期末期末考试题及答案

1.密码学的目的是 C 。

A .研究数据加密B .研究数据解密C .研究数据保密D .研究信息安全2. 网络安全最终是一个折衷的方案,即安全强度和安全操作代价的折衷,增加安全设施投资外,还应考虑D 。

【A.用户的方便性 B.管理的复杂性C.对现有系统的影响及对不同平台的支持D.上面3项都是3破解双方通信获得明文是属于 ______ 的技术。

【A.密码分析还原 B.协议漏洞渗透C.应用漏洞分析与渗透D. DOS 攻击4窃听是一种 _____ 攻击,攻击者 _____ 将自己的系统插入到发送站和接收站之间。

截获是一种 ____ 攻击,攻击者 _____ 将自己的系统插入到发送站和接 受站之间。

A.被动,无须, C.主动,无须, 5以下 _______ A. 源IP 地址 C. TCP 源端口和目的端口6 PKI 是__ A. Private Key InfrastructureC . Public Key Infrastructure 7防火墙最主要被部署在___ A .网络边界 B .骨干线路 C .重要服务器D .桌面终端8下列 _____ 机制不属于应用层安全。

A .数字签名 B .应用代理 C .主机入侵检测D .应用审计9 _____ 最好地描述了数字证书。

A .等同于在网络上证明个人和公司身份的身份证特性,它使得黑客不能得知用户的身份C .网站要求用户使用用户名和密码登陆的安全机制 【A 】B.主动,必须,被动,无须D.被动,必须,主动,无须 主动,必须被动,必须 _不是包过滤防火墙主要过滤的信息?B.目的IP 地址 D.时间B . PublicKeyInstituteD .PrivateKeyA 】B .浏览器的一标准D .伴随在线交易证明购买的收据10下列不属于防火墙核心技术的是A (静态/动态)包过滤技术C应用代理技术NAT技术11信息安全等级保护的 最关键信息系统的保护。

A 强制保护级 D 指导保护级 12公钥密码基础设施 A 身份信任C 安全审计 5个级别中,B 专控保护级 E 自主保护级 PKI 解决了信息系统中的 B 权限管理 D 加密 是最高级别,属于关系到国计民生的【B 】C 监督保护级问题。

密码学选修课期末试卷及答案

1.凯撒大帝在密码学上很有造诣,试运用密码对一段信息I like the course:stay of cryptography加密,密钥为3~6中的一个2.有人说密码无门槛,也有人说密码高不可攀,试说说你眼中的密码学解:无门槛:举例:(1)研究密码的人员。

在《四十号房间》这个故事中尤因爵士组织的一个破密班子全部由业余爱好者组成,包括神职人员、股票经纪人、银行家、海军学校教师到大学教授的各色人等。

(2)密码应用的方面。

密码的应用可以说是无处不在,尤其是日常生活中,例如银行卡,网银,网店,QQ,手机锁自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。

高不可攀:(1)从安全方面讲:不安全的密码比没有密码更不安全(2)密码要求高:密码学要求基础要深,技术要强,必须是专业人员经过专业培训,专业训练才能胜任这份工作。

例如数学家有扎实的数学基础,计算机学家有相关的专业知识,物理学家有量子物理学的基础,生物学家掌握DNA方面的知识,密码学家也有相当丰富的专业知识。

3.有这样一个观点:要成为密码学家首先要成为数学家、计算机学家、生物学家等等成为其他方面的专家,谈谈自己对此的体会,试举例说明解:密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。

它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。

成为密码学家必须要有相关的密码学知识和相应的研究手段,不同专业领域的人员组成一个团体,各尽所能,致力于密码学研究。

例如:(1)语言学家:对英语、法语、德语或者其他小语种有研究的人,遇到熟悉的语言可以发挥优势,在电影《风语者》中美军使用了一种极少数人懂的印第安某部落的语言,在战争发挥了极大作用,直到战争结束仍未被破解。

(2)数学家:数学家有代数、数论、概率等专业知识,对破解密码有相当大的优势。

《跳舞的小人》中福尔摩斯就是通过字母“E”在英语中出现的频率最高,以此为突破口来破解密码(3)物理学家:物理学家有量子理论和通讯理论的专业知识,例如在《信息论与编码》这门课程中我们学习了,1949年美国人香农发表了《秘密体制的通信理论》一文,应用信息论的原理分析了密码学中的一些基本问题。

应用密码学考试试题

应用密码学考试试题一、选择题1. 密码学用于保护什么?A. 网络安全B. 数据安全C. 信息安全D. 所有以上答案2. 对称密码算法的密钥长度一般为多少位?A. 64位B. 128位C. 256位D. 512位3. 公钥密码学的加密密钥与解密密钥是否相同?A. 是B. 否4. 哈希函数主要用途是什么?A. 加密数据B. 解密数据C. 验证数据的完整性D. 对称加密密钥生成5. 数字证书中的公钥由谁签名?A. 数字证书颁发机构(CA)的私钥B. 数字证书颁发机构(CA)的公钥C. 数字证书申请者的私钥D. 数字证书申请者的公钥二、填空题1. 使用对称密码算法进行加密和解密时,使用的是相同的 ________。

2. 公钥密码学中,发信方使用接收方的 _______ 加密消息。

3. 哈希函数能够将任意长度的输入转换为固定长度的 _______。

4. 数字证书中包含了用户的公钥、用户的身份信息以及 _______。

5. 非对称密码算法中,加密和解密需要使用不同的 _______。

三、简答题1. 简要解释对称密码算法和公钥密码算法的基本原理。

2. 请简要概述数字证书的作用以及数字证书的验证过程。

3. 简要解释哈希函数的作用以及常见的哈希函数算法。

四、论述题请根据你对密码学知识的理解,阐述密码学在现代社会中的重要性,并提出你对密码学发展的展望。

注意:本文档为密码学考试试题,并非一个完整的文章。

以上题目供参考,并非实际使用的试题。

在实际写作中,请根据要求选择相应的格式,并且进行适当的增加字数限制。

《应用密码学》课程试卷(1)参考答案

2008——2009学年第一学期课程名称:应用密码学使用班级:信息安全06级1、2、3班命题系别: 网络工程学院 命题人:张仕斌、张金全、万武南 第一题 填空(共15个空,每空1分,计15分)1、102、64,563、1604、分组链接(CBC)模式,输出反馈(OFB)模式5、2n-16、5127、k8、主密钥,数据加密密钥 9、4,2,110、9第二题 判断题(共10题,每题1分,计10分)1、√2、√3、×4、×5、√6、×7、×8、×9、× 10√第三题 单项选择(共10题,每题2分,计20分)。

1、C2、C3、B4、A5、A6、D7、D8、B9、C 10、B第四题(说明:本题由三个小题组成,要求给出解题过程,共16分)1、简述RSA算法;(4分)提示:密钥产生过程、加密过程、解密过程及各个过程中的注意点。

2、在RSA算法密钥产生过程中,设p=13,q=23,取公钥e=29,求私钥d;(要求:给出必要计算过程。

6分)3、设RSA算法的参数选择如上题所述,求消息m=9所对应的密文;(要求:给出必要计算过程。

6分)解:1) 1)密钥的产生①选两个保密的大素数p和q。

②计算n=p×q,φ(n)=(p-1)(q-1),其中φ(n)是n的欧拉函数值。

③选一整数e,满足1<e<φ(n),且gcd(φ(n),e)=1。

(1分)④计算d,满足d·e≡1 modφ(n),即d是e在模φ(n)下的乘法逆元,因e 与φ(n)互素,由模运算可知,它的乘法逆元一定存在。

⑤以{e,n}为公开钥,{d,n}为秘密钥。

(1分)加密:先将明文比特串分组,使每个分组对应的十进制数小于n,即分组长度小于log2n。

然后对每个明文分组m作加密运算:c≡m e mod n(1分)解密:对密文分组的解密运算为:m≡c d mod n(1分)2)由p=13,q=23,可得n=299(1分),φ(n)=264(1分)。

完整word版密码学复习题1word文档良心出品

一、判断题1)网络安全应具有以下四个方面的特征:保密性、完整性、可用性、可查性。

()2)安全是永远是相对的,永远没有一劳永逸的安全防护措施。

()3)为了保证安全性,密码算法应该进行保密。

()5)一次一密体制即使用量子计算机也不能攻破。

()6)不可能存在信息理论安全的密码体制。

()9)现代密码体制把算法和密钥分开,只需要保证密钥的保密性就行了,算法是可以公开的。

()10)一种加密方案是安全的,当且仅当解密信息的代价大于被加密信息本身的价值。

()11)对称加密算法的基本原则是扩散(Diffusion)和混淆(Confusion),其中混淆是指将明文及密钥的影响尽可能迅速地散布到较多个输出的密文中。

()12)拒绝服务攻击属于被动攻击的一种。

()13)为AES开发的Rijndael算法的密钥长度是128位,分组长度也为128位。

()14)DES算法中对明文的处理过程分3个阶段:首先是一个初始置换IP,用于重排明文分组的64比特数据。

然后是具有相同功能的64轮变换,每轮中都有置换和代换运算。

最后是一个逆初始置换从而产生64比特的密文。

()15)公开密钥密码体制比对称密钥密码体制更为安全。

()16)现代分组密码都是乘法密码,分为Feistel密码和非Feistel密码两类,非Feistel密码只可以运用不可逆成分。

()17)现代分组密码都是乘法密码,分为Feistel密码和非Feistel密码两类,其中Feistel密码只可以运用不可逆成分。

()18)流密码可以分为同步流密码和异步流密码,其中密钥流的产生并不是独立于明文流和密文流的流密码称为同步流密码。

()19)流密码可以分为同步流密码和异步流密码,其中密钥流的生成独立于明文流和密文流的流密码称为同步流密码。

()20)Diffie-Hellman算法的安全性在于离散对数计算的困难性,可以实现密钥交换。

()21)常见的公钥密码算法有RSA算法、Diffie-Hellman算法和ElGamal算法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AES算法分析及实现1引言信息社会的兴起,给全球带来了信息技术飞速发展的契机:信息技术的应用,引起了人们生产方式、生活方式和思想观念的巨大变化,极大地推动了人类社会的发展和人类文明的进步。

随着人类进入知识经济时代,网络和信息已主见成为人们从事社会活动的基本工具,但是,由于计算机和网络系统的发放性带来的信息与信息系统的安全问题也拓展到前所未有的程度。

日益增多的对信息系统的非法入侵和破坏活动正在以惊人的速度在全世界蔓延,给各国信息系统带来巨大的经济损失和安全威胁。

随着信息技术的不断发展,信息安全,网络安全的概念正在与时俱进,逐渐从早期的通信保密发展到关注信息的保密、完整、可用、可控和不可否认的信息安全。

信息与信息系统,网络与网络系统安全并重,保证信息系统能够安全、可靠、不间断的运行,以提供必要的服务。

近年来,我国在发展知识经济、建设信息基础设施以及中国互联网的建设和应用方面都有相当大的进步。

计算机网络的广泛应用已经对经济、文化、教育、科学的发展和人类生活质量的提高产生了重要影响,但也带来了一些新的问题。

信息系统的的安全总是面临着日益严重的威胁。

一方面是由于互联网的开放性及安全性不足,另一方面是众多的攻击手段。

为了保证信息系统的安全,需要完整的安全保障体系,应具有保护功能、检测手段、工具的反应以及事故恢复能力。

因而,除了不断完善相应的法律和监督措施,我们更需要自我保护。

理论和事实都说明,密码技术是一种经济、实用而有效的方法,这也是密码技术得到快速发展和广泛应用的原因。

2AES算法分析2.1AES算法产生背景1、AES 是美国国家标准技术研究所NIST旨在取代DES的新一代的加密标准。

NIST 对AES 候选算法的基本要求是:对称分组密码体制;密钥长度支持128 ,192 ,256位;明文分组长度128 位;算法应易于各种硬件和软件实现。

2、1998 年NIST开始AES 第一轮征集、分析、测试,共产生了15 个候选算法。

1999 年3 月完成了第二轮AES 的分析、测试。

1999 年8 月NIST 公布了五种算法(MARS , RC6 ,Rijndael ,Serpent ,Twofish) 成为候选算法。

最后,Rijndael ,这个由比利时人设计的算法与其它候选算法在成为高级加密标准(AES) 的竞争中取得成功,于2000 年10月被NIST宣布成为取代DES 的新一代的数据加密标准,即AES。

3、Rijndael 作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。

4、AES 设计有三个密钥长度:128 ,192 ,256 比特2.2AES算法原理AES 算法是基于置换和代替的。

置换是数据的重新排列,而代替是用一个单元数据替换另一个。

AES 使用了几种不同的技术来实现置换和替换。

为了阐明这些技术,让我们用 Figure 1 所示的数据讨论一个具体的 AES 加密例子。

下面是你要加密的128位值以及它们对应的索引数组:00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15192位密钥的值是: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 170 1 2 3 4 5 6 7 8 9 10 1112 13 14 15 16 17 18 19 20 21 22 23Figure 2 S-盒( Sbox )当 AES 的构造函数(constructor)被调用时,用于加密方法的两个表被初始化。

第一个表是代替盒称为S-盒。

它是一个16×16的矩阵。

S-盒的前五行和前五列如 Figure 2 所示。

在幕后,加密例程获取该密钥数组并用它来生成一个名为w[]的密钥调度表,Figure 3 所示。

Figure 3 密钥调度表(Key Sched)w[] 最初的 Nk (6) 行被作为种子,用原始密钥值(0x00 到0x17)。

剩余行从种子密钥来产生。

变量 Nk 代表以 32 位字为单位的种子密钥长度。

稍后我分析 AES 实现时你将清楚地看到 w[] 是怎样产生的。

关键是这里现在有许多密钥使用而不只是一个。

这些新的密钥被称为轮密钥(round keys)以将它们与原始种子密钥区别开来。

Figure 4 State (态)数组AES 加密例程开始是拷贝 16 字节的输入数组到一个名为State (态)的4×4 字节矩阵中。

AES 加密算法取名为 Cipher,它操作 State[],其过程描述的伪代码参见Figure 5。

在规范中,加密算法实现的一个预备的处理步骤被称为 AddRoundKey(轮密钥加)。

AddRoundKey 用密钥调度表中的前四行对 State 矩阵实行一个字节一个字节的异或(XOR)操作,并用轮密钥表 w[c,r] 异或输入 State[r,c]。

举个例子,如果 State 矩阵的第一行保存的字节是{ 00, 44, 88, cc },第一列密钥调度表是{ 00, 04, 08, 0c },那么新的 State[0,2] 值是用 w[2,0]( 0x08 或 0x80 )异或 State[0,2](0x88)的结果: 1 0 0 0 1 0 0 00 0 0 0 1 0 0 0 XOR1 0 0 0 0 0 0 0 AES 算法的主循环对 State 矩阵执行四个不同的操作,在规范中被称为 SubBytes(字节替换)、ShiftRows(行位移变换)、MixColumns(列混合变换)和 AddRoundKey。

除了每次循环 AddRoundKey 都被调用并使用密钥调度表的下面四行外,AddRoundKey 与预备处理步骤中的 AddRoundKey 相同。

SubBytes 例程是一个代替操作,它将 State 矩阵中的每个字节替换成一个由 Sbox 决定的新字节。

比如,如果 State[0,1]的值是 0x40 如果你想找到它的代替者,你取 State[0,1] 的值 (0x40) 并让 x 等于左边的数字(4)并让 y 等于右边的数字(0)。

然后你用 x 和 y 作为索引进到 Sbox 表中寻找代替值,如 Figure 2 所示。

ShiftRows 是一个置换操作,它将 State 矩阵中的字节向左旋转。

Figure 6 示范了ShiftRows 如何操作 State[]。

State 的第0行被向左旋转0个位置,State 的第1行被向左旋转1个位置,State 的第2行被向左旋转2个位置,而 State 的第3行被向左旋转3个位置。

Figure 6 对 State 进行 ShiftRows 操作MixColumns 是一个代替操作,它是理解 AES 算法时最具技巧(或者说是最需要动脑筋的部分)的部分。

它用 State 字节列的值进行数学域加和域乘的结果代替每个字节。

我将在下一节中详细解释专门的域加和域乘细节。

假设 State[0,1] 的值是0x09,并且列1上的其它值分别为 0x60,0xe1 和 0x04,那么State[0,1]的新值计算如下: State[0,1] = (State[0,1] * 0x01) + (State[1,1] * 0x02) +(State[2,1] * 0x03) +(State[3,1] * 0x01)= (0x09 * 0x01) + (0x60 * 0x02) + (0xe1 * 0x03) +(0x04 * 0x01)= 0x57此处加法和乘法是专门的数学域操作,而不是平常整数的加法和乘法。

SubBytes、ShiftRows、MixColumns 和 AddRoundKey 四个操作在一个执行 Nr 次的循环里被调用,Nr 为给定密钥大小的轮数减 1。

加密算法使用的轮数要么是10,12,要么是14,这依赖于种子密钥长度是128位、192 位还是 256 位。

在这个例子中,因为 Nr 等于12,则这四个操作被调用11次。

该迭代完成后,在拷贝 State 矩阵到输出参数前,加密算法调用 SubBytes、ShiftRows 和 AddRoundKey 后结束。

大致说来,AES 加密算法的核心有四个操作。

AddRoundKey 使用从种子密钥值中生成的轮密钥代替 4 组字节。

SubBytes 替换用一个代替表替换单个字节。

ShiftRows 通过旋转 4字节行的 4 组字节进行序列置换。

MixColumns 用域加和域乘的组合来替换字节。

有限域GF(28)的加法和乘法正如你所看到的,AES 加密算法使用相当简单明了的技术来代替和置换,除 MixColumns 例程以外。

MixColumns 使用特殊的加法和乘法。

AES 所用的加法和乘法是基于数学(译者注:近世代数)的域论。

尤其是 AES 基于有限域GF(28)。

GF(28)由一组从 0x00 到 0xff 的256个值组成,加上加法和乘法,因此是(28)。

GF 代表伽罗瓦域,以发明这一理论的数学家的名字命名。

GF(28) 的一个特性是一个加法或乘法的操作的结果必须是在{0x00 ... 0xff}这组数中。

虽然域论是相当深奥的,但GF(28)加法的最终结果却很简单。

GF(28) 加法就是异或(XOR)操作。

然而,GF(28)的乘法有点繁难。

正如你稍后将在 C# 实现中所看到的,AES的加密和解密例程需要知道怎样只用七个常量 0x01、0x02、0x03、0x09、0x0b、0x0d 和 0x0e 来相乘。

所以我不全面介绍GF(28)的乘法,而只是针对这七种特殊情况进行说明。

在GF(28)中用0x01的乘法是特殊的;它相当于普通算术中用1做乘法并且结果也同样—任何值乘0x01等于其自身。

现在让我们看看用0x02做乘法。

和加法的情况相同,理论是深奥的,但最终结果十分简单。

只要被乘的值小于0x80,这时乘法的结果就是该值左移1比特位。

如果被乘的值大于或等于0x80,这时乘法的结果就是左移1比特位再用值0x1 b异或。

它防止了“域溢出”并保持乘法的乘积在范围以内。

一旦你在GF(28)中用0x02建立了加法和乘法,你就可以用任何常量去定义乘法。

用0x03做乘法时,你可以将 0x03 分解为2的幂之和。

为了用 0x03 乘以任意字节b,因为 0x03 = 0x02 + 0x01,因此:b * 0x03 = b * (0x02 + 0x01) = (b * 0x02) + (b * 0x01)这是可以行得通的,因为你知道如何用 0x02 和 0x01 相乘和相加,同哩,用0x0d去乘以任意字节b可以这样做: b * 0x0d = b * (0x08 + 0x04 + 0x01) = (b * 0x08) + (b * 0x04) + (b * 0x01) = (b * 0x02 * 0x02 * 0x02) + (b * 0x02 * 0x02) + (b * 0x01)在加解密算法中,AES MixColumns 例程的其它乘法遵循大体相同的模式,如下所示: b * 0x09 = b * (0x08 + 0x01) = (b * 0x02 * 0x02 * 0x02) + (b * 0x01)b * 0x0b = b * (0x08 + 0x02 + 0x01) = (b * 0x02 * 0x02 * 0x02) + (b * 0x02) + (b * 0x01)b * 0x0e = b * (0x08 + 0x04 + 0x02) = (b * 0x02 * 0x02 * 0x02) + (b * 0x02 * 0x02) + (b * 0x02) 总之,在GF(28)中,加法是异或操作。

相关文档
最新文档