文档库 最新最全的文档下载
当前位置:文档库 › 密码学实验

密码学实验

密码学实验
密码学实验

《密码学与信息安全》实验报告

业 级 ____ 名 __ 号

2015年6 月5 日

专 班 姓 学

实验一古典密码实验

1 实验目的

1. 理解代替密码学加密过程

2. 理解置换密码学加密过程

2 实验内容

1 .手动完成Caesar密码

2. Caesar 加密

3. Caesar密码分析

4. 单表置换密码

5. 单表置换密码分析

3 实验过程

本练习主机A、B为一组,C D为一组,E、F为一组。

首先使用“快照X”恢复Windows系统环境。

1 .手动完成Caesar密码

(1)在实验原理部分我们已经了解了Caesar密码的基

本原理,那么请同学们写出当密钥k=j时,对应明文:data security has evolved rapidly 的密文:data security has evolved rapidly 。

(2)进入实验平台,单击工具栏中的“密码工具”按钮,启动密码工具,在向导区点

击“ Caesar 密码”。在明文输入区输入明文:data security has evolved rapidly 。

将密钥k调节到3,查看相应的密文,并与你手动加密的密文进行比较。

请根据密钥验证密文与明文对应关系是否正确。

2. Caesar 加密

(1)进入“加密解密”丨“ Caesar密码”视图,在明文输入区输入明文(明文应为英文),

单击“加密”按钮进行加密。

请将明文记录在这里:I am a stide nt 。

(2)调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值,并记下该密钥k值用于同组主机的解密。加密工作完成后,单击“导出”按钮将密文默认导出到Caesar 共享文件夹(D:\Work\Encryption\Caesar\) 中,默认文件名为Caesar 密文.txt 。

(3)通知同组主机接收密文,并将密钥k通告给同组主机。6

(4)单击“导入”按钮,进入同组主机

Work\Encryption'Caesar 目录( 同组主机IP\Work\Encryption'Caesar ),打开Caesar 密文.txt 。

(5)调节密钥k的微调按钮或对照表的移位按钮,将k设为同组主机加密时的密钥k 值,这时解密已经成功。请将明文写出:I am a stide nt 。

(6)将解密后的明文与同组主机记录的明文比较,请对比明文是否相同。

3. Caesar密码分析

(1)本机进入“密码工具”丨“加密解密”丨“Caesar密码”,在明文输入区输入明文(要求明文有一定的意义以便让同组主机分析) 。

请将明文记录在这里:I am a stide nt 。

(2)调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值完成Caesar 加密,单击“导出”按钮,将密文默认导出到Caesar共享文件夹中。

(3)通告同组主机(不要通告密钥值k)密文已经放在共

享文件夹中,让同组主机获取密文。

(4)单击“导入”按钮将同组主机Caesar密文导入。

(5)调节密钥k的微调按钮

或者对照表的移位按钮来调节密钥,从而进行密码分析(平均13次,最坏26次破解)。请将破解出的明文和密钥记录在这里:

密钥k= 6_。

明文I am a stident 。

(6)将破解后的密钥和明文与同组主机记录的密钥和明文比较。如果不同请调节密钥k继续破

解。

4. 单表置换密码

(1)单击“密码工具”按钮,进入“加密解密”丨“单表置换”丨“加密/解密”视图,与同组主机协商好一个密钥词组k= i am a stude nt .

(2)根据“单表置换”实验原理计算出置换表。

(3)计算完成置换表以后,在明文输入区输入明文,单击“加密”按钮用置换表的对

应关系对明文进行加密,加密完成后,单击“导出”按钮,将密文导出到Sin gleTable 共享目录中,并通告同组主机获取密文。

请将明文记录在这里:data security has evolved rapidly _______ 。

(4)单击“导入”按钮将同组主机单表置换密文导入,根据同组主机置换表完成本机置换表,

单击“解密”按钮对密文进行解密。

(5)本机将解密后的明文与同组主机记录的明文对照,如果双方的明文一致,则说明实验成功,

否则说明本机或同组主机的置换表计算错误。

5. 单表置换密码分析

(1)图5-2-1是由统计学得出的英文字母相对频率表。

图5-2-1

由图5-2-1可以看出,英文字母E出现的频率最高,而J和Z出现的频率最低,这样,

就可以通过英文字母出现的频率大致上判定单表置换密码的置换表,从而得到明文。

(2)本机进入“密码工具”丨“加密解密”丨“单表置换”丨“密码分析”页面,单

击“导入”按钮,将密文“单表置换密码分析密文.txt ”导入,单击“统计”按钮,统

计密文中每个字母出现的频率,回答下列问题:在密文中出现频率最高的字母是A—

与上表比较,它可能是由字母 E __ 置换的。

(3)置换表组框中点击“解密”按钮,这时将得到一个明文。然而此时的明文并不是

最终要得到的,可以通过明文的特征和各个字母的比例来调节置换表中的对应关系,从而得到正确的明文。

例如,明文第一段和置换表如图5-2-2所示。

图5-2-2

根据明文我们可猜测图中画线的单词“ soe dlda ' r”应该为“ she didn ' t ”。首先在置换表中找到明文小写字母o对应的密文大写字母E,然后改变置换表,使猜测的h对应E,依此类推则i对应F, n对应M, t对应T,变换后的置换表如图5-2-3所示。

图5-2-3

单击“解密”按钮,得到明文如图5-2-4所示。

图5-2-4

4 结论

古典密码算法曾经被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要对象是文字信息,利用密码算法实现文字信息的加密和解密。古典密码学可以分为代替密码(也叫做移位密码)和置换密码(也叫做换位密码)两种,其中代替密码典型的有Caesar密码,数乘密码和仿射变换等,置换密码有单表置换和多表置换等。

实验二分组密码实验

1 实验目的

1. 理解对称加密算法的原理和特点

2. 理解DES算法的加密原理

3理解AES算法的加密原理

2 实验内容

1. DES加密解密

2. DES算法

3. AES加密解密

4. AES算法

3 实验过程

本练习主机A B为一组,C D为一组,E、F为一组。

首先使用“快照X”恢复Windows系统环境。

1. DES加密解密

(1)本机进入“密码工具”丨“加密解密”丨“DES加密算法”丨“加密/解密”页签,

在明文输入区输入明文:i am a stude nt,you are a pig _____ 。

(2)在密钥窗口输入8 (64位)个字符的密钥k,密钥k= students 。单击“加密” 按钮,将密文导出到DES文件夹( )中,通告同组主机获取密文,并将密钥k告诉同组主机。

(3)单击“导入”按钮,从同组主机的的DES共享文件夹中将密文导入,然后在密钥

窗口输入被同组主机通告的密钥k,点击“解密”按钮进行DES解密。

(4)将破解后的明文与同组主机记录的明文比较。

2. DES算法

本机进入“密码工具”丨“加密解密”丨“DES加密算法”丨“演示”页签,向64位明

文中输入8个字符(8*8bit=64 ),向64位密钥中输入8个字符(8*8bit=64 )。点击“加密” 按钮。完成加密操作,分别点击“初始置换”、“密钥生成演示”、“十六轮加密变换”和“终结置换”按钮,查看初始置换、密钥生成演示、十六轮加密变换和终结置换的详细加密操作流程。

3. AES加密解密

(1)本机进入“密码工具”丨“加密解密”丨“AES加密算法”丨“加密/解密”页签,在明文输入区输入明文:i am a stude nt,you are a pig _____ 。

(2)在密钥窗口输入16 (128位)个字符的密钥k,要记住这个密钥以用于解密,密

钥k= ilikechinesebest 。单击“加密”按钮,将密文导出到AES文件夹

( )中,通告同组主机获取密文,并将密钥k告诉同组主机。

(3)单击“导入”按钮,从同组主机的AES共享文件夹中将密文导入,然后在密钥窗

口输入被同组主机通告的密钥k,点击“解密”按钮进行AES解密。

(4)将破解后的明文与同组主机记录的明文比较。

实验二 古典密码

实验2 古典密码 1.实验目的 (1)了解古典密码中的基本加密运算。 (2)了解几种典型的古典密码体制。 (3)掌握古典密码的统计分析方法。 2.实验内容 (1)古典密码体制 ①简单移位加密(单表代换) 该加密方法中,加密时将明文中的每个字母向前推移K位。经典恺撒密码加密变换就是这种变换,取k=3。 步骤1:打开CAP4软件,并加载实验一附带的“mw.txt”,如图2-1所示。 图2-1加载文件

步骤2:采用恺撒加密方法手工加密“mw.txt”;打开CAP4菜单栏“Cipher”菜单项选择“simple shift”选项,并选择移位值“shift value”为3,加密步骤1中加载的文件,如图2-2所示。 图2-2 参数设置 图2-3加密文件

步骤3:比较二者的加密结果是否相同。 步骤4:点击CAP4软件中的“Simple analysis”下的“shift”键,观察恺撒加密法的可能密钥值,并分析其攻击的难度,如图2-4所示。 图2-4密钥分析 ②仿射密码加密(单表代换) 在仿射密码加密(affine cipher)中,字母表中的字母被赋予一个数字,例如,a=0,b=1,c=2,…,z=25.仿射密码加密法的密钥为0~25之间的数字对(a,b)。a与26的最大公约数必须为1,这就是说能整除a和26的数只有1.现在假设m为明文字母的数字,而c为密文字母的数字,那么,这两个数字之间有如下关系: c=(am+b)(mod 26) m=a-1(c-b)(mod 26) 其中,(mod 26)的操作是:除以26,得其余数。 例如,选取密钥为(7,3)。因为7与26互素,也就是只有公约数1,所以(7,3)可以作为仿射密码的加密钥。将“hot”转换成数字7、14、19,利用仿射等式生成: c(H)=(7×7+3) mod 26=52 mod 26=0,即为字母“a“。 c(O)=(7×14+3) mod 26=101 mod 26=23,即为字母“x“. c(T)=(7×19+3) mod 26=136 mod 26=6,即为字母”g”. 这样,对于这个密钥,”hot”变成了“axg“.

现代密码学实验报告

现代密码学 实验报告 学生姓名 学号 专业班级计算机科学与技术指导教师段桂华 学院信息科学与工程学院完成时间2016年4月

实验一密码算法实验 [实验目的] 1.掌握密码学中经典的对称密码算法AES、RC4的算法原理。 2.掌握AES、RC4的算法流程和实现方法。 [实验预备] 1.AES算法的基本原理和特点。 2.流密码RC4的密钥流生成以及S盒初始化过程。 [实验内容] 1. 分析AES、RC4的实现过程。 2. 用程序设计语言将算法过程编程实现。 3. 完成字符串数据的加密运算和解密运算 输入十六进制明文:11223344556677889900AABBCCDDEEFF 输入十六进制密钥:13579BDF02468ACE1234567890ABCDEF [实验步骤] 1. 预习AES、RC4算法。 2. 写出算法流程,用程序设计语言将算法过程编程实现。 3. 输入指定的明文、密钥进行实验,验证结果。 4. 自己选择不同的输入,记录输出结果。 写出所编写程序的流程图和运行界面、运行结果。 一、AES算法 1、AES算法简介 AES 是一种可用来保护电子数据的新型加密算法。特别是,AES 是可以使用128、192 和 256 位密钥的迭代式对称密钥块密码,并且可以对 128 位(16 个字节)的数据块进行加密和解密。与使用密钥对的公钥密码不同的是,对称密钥密码使用同一个密钥来对数据进行加密和解密。由块密码返回的加密数据与输入数据具有相同的位数。迭代式密码使用循环结构来针对输入数据反复执行排列和置换运算。 2、算法实现及流程 以加密函数为例,如下所示,首先对密钥进行预处理密钥扩展,然后明文进行Nr(Nr与密钥长度有关)次迭代运算,包括字节替换SubBytes、移位行运算ShiftRows、混合列运算MixColumns、以及轮秘钥加密AddRoundKey。

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

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

古典密码学实验

一、实验背景与目的 通过实现简单的古典密码算法,理解密码学的相关概念如明文(plaintext)、密文(ciphertext)、加密密钥(encryption key)、解密密钥(decryption key)、加密算法(encryption algorithm)、解密算法(decryption algorithm)等。 二、实验环境 Visual C++6.0 三、实验内容 (1)用C\C++语言实现仿射变换(Affine)加/解密算法;2) (2)用C\C++语言实现统计26个英文字母出现的频率的程序; (3)利用仿射变换加/解密程序对一段较长的英文文章进行加密,再利用统计 软件对明文和密文中字母出现的频率进行统计并作对比,观察有什么规 律。 其中a, b为密钥, 25 , 0≤ ≤b a ,且gcd(a, 26)=1 实验要求:加/解密程序对任意满足条件的a、b都能够处理。仿射变换: 加密: ()26 mod , b am m E c b a + = = 解密: ()()26 mod 1 , b c a c D m b a - = =- 四、实验原理 一个仿射变换对应于一个矩阵和一个向量的乘法,而仿射变换的复合对应于普通的矩阵乘法,只要加入一个额外的行到矩阵的底下,这一行全部是0除了最右边是一个1,而列向量的底下要加上一个1。仿射变换原理在基于MQ问题的多变元公钥密码中,公钥一般是方程组,但是这种没有处理的方程组很容易受到插值法的攻击,例如:首先在q元有限域上选取个变量以及个变量。构造方程组:这里面公钥信息方程组就是:其中是明文信息,而则是密文。可以看出这样的公钥信息很容易受到插值法的攻击,下面使用仿射将

杭电密码学DES密码实验报告

课程实验报告 课程密码学实验 学院通信工程学院 专业信息安全 班级14083611 学号14084125 学生姓名刘博 实验名称DES密码实验 授课教师胡丽琴

DES密码实验 一、实验要求: 1、了解分组密码的起源与涵义。 2、掌握DES密码的加解密原理。 3、用Visual C++实现DES密码程序并输出结果。 二、实验内容: 1、1949年,Shannon发表了《保密系统的通信理论》,奠定了现代密码学的基础。他还指出混淆和扩散是设计密码体制的两种基本方法。扩散指的是让明文中的每一位影响密文中的许多位,混淆指的是将密文与密钥之间的统计关系变得尽可能复杂。而分组密码的设计基础正是扩散和混淆。在分组密码中,明文序列被分成长度为n的元组,每组分别在密钥的控制下经过一系列复杂的变换,生成长度也是n的密文元组,再通过一定的方式连接成密文序列。 2、DES是美国联邦信息处理标准(FIPS)于1977年公开的分组密码算法,它的设计基于Feistel对称网络以及精心设计的S盒,在提出前已经进行了大量的密码分析,足以保证在当时计算条件下的安全性。不过,随着计算能力的飞速发展,现如今DES已经能用密钥穷举方式破解。虽然现在主流的分组密码是AES,但DES的设计原理仍有重要参考价值。在本实验中,为简便起见,就限定DES 密码的明文、密文、密钥均为64bit,具体描述如下: 明文m是64bit序列。 初始密钥K是64 bit序列(含8个奇偶校验bit)。 子密钥K1, K2…K16均是48 bit序列。 轮变换函数f(A,J):输入A(32 bit序列), J(48 bit序列),输出32 bit序列。 密文c是64 bit序列。 1)子密钥生成: 输入初始密钥,生成16轮子密钥K1, K2 (16) 初始密钥(64bit)经过置换PC-1,去掉了8个奇偶校验位,留下56 bit,接着分成两个28 bit的分组C0与D0,再分别经过一个循环左移函数LS1,得到C1与D1,连成56 bit数据,然后经过置换PC-2,输出子密钥K1,以此类推产生K2至K16。

教学与实验——密码学

教学与实验——密码学 密码学在信息安全方面起着重要的作用,而它又是围绕对称密钥和非对称密钥技术展开着。对称密钥和非对称密钥技术应用在数据加密、身份认证和数字签名等。是保证信息具备保密性、可靠性、完整性和不可抵赖性的有效工具。 标签:对称密钥非对称密钥加密 0 引言 《网络运行与维护》是计算机信息管理专业的一门核心课程。本课的关键内容是密码学,而密码学又是围绕对称密钥和非对称密钥技术展开的。同时对称密钥和非对称密钥的应用非常广泛,这就要求学生对这部分内容掌握得相当扎实。为此有针对性地采取适当的方式开展实验教学。真正做到实验学生做,思路学生想,疑难学生议,错误学生析,使学生的综合能力在实验过程中得到最大限度的提高。 1 对称密码 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES、IDEA和AES。 2 非对称密码 非称加密算法使用两把完全不同但又是完全匹配的一对钥匙——公钥和私钥。在使用非称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。非称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用非对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而

谈现代密码学的教学

第33卷第9期湖南科技学院学报V ol.33 No.9 2012年9月 Journal of Hunan University of Science and Engineering Sep.2012 谈现代密码学的教学 黄琼郭艾侠 (华南农业大学 信息学院,广东 广州 510642) 摘 要:密码学是实现信息安全的一个重要工具。文章就如何提高现代密码学课程的教学效率、激发学生的兴趣,阐述几点感觉和体会。在教学中应注重理论与应用、攻击与防御的紧密结合,以应用入手,带出理论,再辅之以理论在实际中的具体应用。 关键词:信息安全;密码学;数学;教学思想 中图分类号:G642文献标识码:A 文章编号:1673-2219(2012)09-0171-02 0 引 言 近年来,随着计算机、网络、通信等的信息技术迅速发展,出现了大量的电子、计算机设备和应用系统,以及网络信息系统,例如电子商务、电子政务、网上银行、移动通信 等。这些设备和系统与人们的日常生活的联系越来越紧密,成为人们生活中不可或缺的部分。虽然社会的信息化程度越来越高,这些设备和系统在我们的生活中起着越来越重要的作用,但是随之而来的安全问题却不容小觑。近几年信息安全事件频繁发生,信息泄漏给人们的生活造成诸多不良影响和困扰,使得人们对信息安全的关注度也越来越高。如何保障信息安全也成为了一个热点研究问题。然而,无论是过去、现在还是将来,信息安全保障技术以数学和计算机科学为基础,需要相关专业的毕业生来开发并实现这些防护技术。因此,许多高校都开设了信息安全或相关专业,培养优秀毕业生,将来从事信息安全建设工作。 保障信息安全的一个重要手段是密码学。密码技术可以用于实现数据的保密性、完整性、不可篡改性、可用性、不可抵赖性等,也可以用于控制对数据的访问。密码学的重要基础是数学,如抽像代数、数论等,理论性强,是一门相对比较难学的学科。许多学生对如何使用理论知识来解决实际问题还不是很清楚[1]。高校开设这门课程的目的之一是要求学生具备一定的分析问题和解决问题的动手能力,能够进行一些安全实践[2, 3]。笔者就如何激发学生的兴趣、提高信息安全数学基础的教学效率和效果,阐述几点感想与体会,与同行做探讨。 收稿日期:2012-07-05 基金项目:华南农业大学2010年度教育教学改革项目(JG10120)和华南农业大学信息学院教改课题(INFJG09 03)。 作者简介:黄琼(1982-),男,江西南昌人,副教授,博士,研究方向为密码学与信息安全。郭艾侠(1974-),女,安徽宿州人,讲师,研究方向为信息安全。 1 现代密码学的特点 与其它课程相比,现代密码学具有以下特点[5]: (1)密码学是一门具有非常强的理论性的学科,其教学离不开密码理论的讲授,常常需要讲解各种方案的原理。然而,光讲解密码理论的话,学生很容易感觉到枯燥。各种密码方案都具有其应用背景,且学生们多数都对应用较为感兴趣。因此,密码学的教学过程中应该理论与应用并重,以应用引出理论,再以理论指导应用。 (2)现代密码学的内容涉及数论、抽象代数、概率等诸多数学知识,范围较广,潜在地要求学生具有一定的数学基础。 (3)由于密码学的应用很广,如数据库安全、网络安全、操作系统安全等都需要用到密码工具。因此,密码学也就和这些相关课程有着密切的关联。在教学过程中可穿插一些密码学在各个领域的应用。 2 教学感受与体会 针对以上特点,在教学实践中笔者采取了如下的思路和方法。 2.1以数据隐藏为切入点 密码学的发展源于数据的隐藏,早在古罗马时期就出现了数据加密技术“凯撒密码”。除此之外,还有很多经典的古典加密方法,如普莱菲尔密码、维吉尼亚密码等。此类的数据加密技术较容易引起学生的兴趣,二战时期美国与德国、日本之间的“密码战争”的故事更能激发学生对密码术的兴趣。在实际教学中可以用此类的故事展开,然后举一些古典密码的例子,如: 加密方法:凯撒密码 明文:Attack Midway Island Tomorrow 密文:Dwwdfn plgzdb Lvodqg Wrpruurz 密钥:3 使学生掌握“明文”、“密文”、“密钥”这几个概念以及加密、解密是怎么一回事。由此,向学生讲解对称加密的机制,并 171

信息安全专业的密码学教学

信息安全专业的密码学教学 本文介绍了一些常见的误用密码协议的例子,进而探讨了信息安全专业密码学教学中的一些可行性方法。 关键词:信息系统;密码;协议;教学 1简介 由于使用了数学中的有限域和数论理论,因此密码学课程一直被视为是非常数学的。诚然,数学基础对现代密码方案设计和算法理解是至关重要的,但是对于密码系统开发和评估人员来说,一般不需要考虑底层的密码算法,而是需要分析高层密码协议(如密钥分配协议,身份认证协议)的安全性。因此,过分强调数学在密码学中的作用而忽视一般密码知识的重要性,就导致出现了很多有缺陷的密码系统,而这些缺陷一般都不是因为底层密码算法的瑕疵而引起的。故此,如何使信息安全的思想和方法更有效地被系统开发者理解,引起了国内外政府、大学、科研机构的高度关注。我国于本世纪初在一些大学先后开设了信息安全专业,但是如何将密码学从纯粹数学研究或者科学研究领域转变为非数学和科研工作者应用的开发工具,是一个严峻的挑战,而分析和总结非数学专业密码学课程的教学是一项有意义的工作。 2一些例子 本节介绍一些有缺陷的密码系统,从中可以看出缺乏对必要的密码协议的理解将带来的安全隐患。 2.1商场支付卡系统 商家的支付可系统通常用一个PIN码簿加密客户的PIN码。由于系统的敏感性,PIN码簿应周期性地更新。而在早先的装置中,这些系统使用主密钥管理系统,这就需要信用卡认证主机定期下载一个新的会话密钥充当PIN码簿。但不幸的是,商家终端和信用卡认证主机之间通信协议的设计者没有意识到这个问题,在通信协议中不提供对更新会话密钥的下载,因此大多数情况下,会话密钥没有更新。 2.2IBM 4758处理器

现代密码学-RC4校验 实验报告

现代密码学 实 验 报 告 院系:理学院 班级:信安二班 姓名: 学号:

前言 密码学(Cryptology)是研究秘密通信的原理和破译秘密信息的方法的一门学科。密码学的基本技术就是对数据进行一组可逆的数学变换,使未授权者不能理解它的真实含义。密码学包括密码编码学(Cryptography)和密码分析学(Cryptanalyst)两个既对立又统一的主要分支学科。研究密码变化的规律并用之于编制密码以保护信息安全的科学,称为密码编码学。研究密码变化的规律并用之于密码以获取信息情报的科学,称为密码分析学,也叫密码破译学。 密码学在信息安全中占有非常重要的地位,能够为信息安全提供关键理论与技术。密码学是一门古老而深奥的学问,按其发展进程,经历了古典密码和现代密码学两个阶段。现代密码学(Modern Cryptology)通常被归类为理论数学的一个分支学科,主要以可靠的数学方法和理论为基础,为保证信息的机密性、完整性、可认证性、可控性、不可抵赖性等提供关键理论与技术。

RC4密码算法算法实现 实验目的: 理解流密码的概念及相关结构; 理解并能够编写基本的流密码体制; 熟练应用C/C++编程实现RC4密码算法体制。 实验内容: 编程实现RC4加/解密算法。 实验原理: RC4算法是一种序列密码体制或称流密码体制,其加密密钥和解密密钥相同RC4的 密钥长度可变,但为了确保哪去安全强度,目前RC4至少使用128位的密钥。 用1~256个字节(8~2048位)的可变长度密钥初始化一个256个字节的状态向量S,S的元素记为S[0],S[1],…,S[255],从始至终置换后的S包含从0到255的所有8位数。对于加密和解密,字节K是从S的255个元素中按一种系统化的方式选出的一个元素生成的。每生成一个K的值,S中的元素个体就被重新置换一次。 实验代码: Encrypt.h文件: #ifndef _ENCRYPT_RC4_ #define _ENCRYPT_RC4_ #include

古典加密实验报告

古典密码算法 一、实验目的 学习常见的古典密码学算法,通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。 二、实验要求 分析替代密码算法和置换密码算法的功能需求,详细设计实现替代密码算法和置换密码算法的数据结构和流程,给出测试用例和测试步骤,得出测试和结论。替代密码算法和置换密码算法的实现程序必须提供加密和解密两个接口:int encrypt()和int decrypt()。当加密或者解密成功时返回CRYPT_OK,失败时返回CRYPT_ERROR。 三、实验原理 古典密码算法曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍两种算法:替代密码和置换密码。 1.替代密码的原理是使用替代法进行加密,就是将明文由其它的字母、数字或符合所代替后形成密文。这里每个明文字母对应的密文字母可能是一个,也可能是多个。接收者对密文进行逆向替换即可得到明文。 2.置换密码算法的原理是不改变明文字符,而是按照某一规则重新排列消息中的比特或字符顺序,才而实现明文信息的加密。置换密码有时又称为换位密码。 我实验过程中替代密码是单表替换,用字母的下一个字母代替:for(j = 0; j < i; j++)

{ if(96 < Mingwen[j]&&Mingwen[j] < 123) { Miwen[j] = 'a' + (Mingwen[j] - 'a' + 1) % 26; } else { Miwen[j] = 'A' + (Mingwen[j] - 'A' + 1) % 26; } } 置换加密主要是对密钥进行整理,还有就是动态分配二维数组,将明文和密文填充置的过程,换密码关键代码如下: for(a = 0; a < k; a++) { for(b = 0; b < hang; b++) { Miwen[i] = p[b][ord[j]]; i++; } j++; } for(a = 0; a < 26; a++) { for(b = 0; b < k; b++) { if(key1[b] == alphatable[a]) { ord[b] = ind++; } } } 具体加密见下图:

密码学实验报告(AES,RSA)

华北电力大学 实验报告| | 实验名称现代密码学课程设计 课程名称现代密码学 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:

[综合实验一] AES-128加密算法实现 一、实验目的及要求 (1)用C++实现; (2)具有16字节的加密演示; (3)完成4种工作模式下的文件加密与解密:ECB, CBC, CFB,OFB. 二、所用仪器、设备 计算机、Visual C++软件。 三. 实验原理 3.1、设计综述 AES 中的操作均是以字节作为基础的,用到的变量也都是以字节为基础。State 可以用4×4的矩阵表示。AES 算法结构对加密和解密的操作,算法由轮密钥开始,并用Nr 表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表2所示)。AES 算法的主循环State 矩阵执行1 r N 轮迭代运算,每轮都包括所有 4个阶段的代换,分别是在规范中被称为 SubBytes(字节替换)、ShiftRows(行位移变换)、MixColumns(列混合变换) 和AddRoundKey ,(由于外部输入的加密密钥K 长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥 K 扩展成更长的比特串,以生成各轮的加密和解密密钥。最后执行只包括 3个阶段 (省略 MixColumns 变换)的最后一轮运算。 表2 AES 参数 比特。

3.2、字节代替(SubBytes ) AES 定义了一个S 盒,State 中每个字节按照如下方式映射为一个新的字节:把该字节的高4位作为行值,低4位作为列值,然后取出S 盒中对应行和列的元素作为输出。例如,十六进制数{84}。对应S 盒的行是8列是4,S 盒中该位置对应的值是{5F}。 S 盒是一个由16x16字节组成的矩阵,包含了8位值所能表达的256种可能的变换。S 盒按照以下方式构造: (1) 逐行按照升序排列的字节值初始化S 盒。第一行是{00},{01},{02},…,{OF}; 第二行是{10},{l1},…,{1F}等。在行X 和列Y 的字节值是{xy}。 (2) 把S 盒中的每个字节映射为它在有限域GF(k 2)中的逆。GF 代表伽罗瓦域,GF(82) 由一组从0x00到0xff 的256个值组成,加上加法和乘法。 ) 1(] [2)2(3488++++= x x x x X Z GF 。{00}被映射为它自身{00}。 (3) 把S 盒中的每个字节记成),,,,,,,,(012345678b b b b b b b b b 。对S 盒中每个字节的每位 做如下变换: i i i i i i c b b b b b i b ⊕⊕⊕⊕⊕='++++8mod )7(8mod )6(8mod )5(8mod )4( 上式中i c 是指值为{63}字节C 第i 位,即)01100011(),,,,,,,,(012345678=c c c c c c c c c 。符号(')表示更新后的变量的值。AES 用以下的矩阵方式描述了这个变换: ?? ? ?? ? ? ? ? ? ??? ? ????????????+???????????????????????????????????????? ????????????=??????????????????????????0110001111111000011111000011111000011111100011111100011111100011111100017654321076543210b b b b b b b b b b b b b b b b 最后完成的效果如图:

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

第一章 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 )。

“密码学”教学改革的探索与实践

“密码学”教学改革的探索与实践 【摘要】针对当前相关信息专业下设置的的密码学课程教学,从学生的实际情况出发,提出了探究式课堂教学方法; 并针对实践教学,给出了详细的实践项目,总结提出了如何对 学生进行因材施教,以便更好的促进教与学相长。 【关键词】教学方法;教学改革;密码学 随着计算机与网络进一步渗入人们的日常生活,信息安 全问题日渐凸现,而人才的培养愈发显得重要????[1]??。由于密码技术是信息安全中的关键和核心,密码学课程也就成为 了相关专业方向的基础主干课程,但由于课程开设的时间较短、积累的经验较少,而各大高校的招生生源、课程设置、实验室建设情况又参差不齐,也就导致了教学效果的重大差异。而教材中的多数算法使用了数学中的有限域和数论理论,笔 者从事了多年的密码学教学工作中,学生普遍反映密码学太 高深,太难学,由于课下时间少,算法编程时间不充分,不能较 好的去巩固和理解密码算法。 在有限的授课课时内,如何选择本门课程的主要内容,采 用哪些有效教学方法,使学生接受和掌握这些内容,确实是一 件值得我们深入研究的问题。本文从学生的兴趣点(喜欢编程、

项目开发管理等)出发,在课堂教学和实践教学环节中,提出了一些教学改革的建议和详细实施方法,从算法的角度提出一些便于学生更加容易理解和掌握的建议,以便促进教与学的相互提高。 1 密码学课程特点 密码学是信息类、信息安全类等相关专业方向中的主干课程,国内高校设置的信息安全专业方向中,大体分为从数学编码角度和从计算机系统安全的角度去学习研究密码学理论,课程安排上都应先修信息安全数学基础课程。在学生方面,据不完全统计,除了热爱数学的学生外,其他都对学习数论和抽象代数感到头痛。因此在一般情况下,密码学的讲授是在学生的数学基础较薄弱的情况下进行的。这样对于讲授密码学的教师来说, 在50学时左右的课时内,将密码学的基本内容灌输给学生,使他们容易接受,且能学到一些知识,确实存在一定难度,需要对教学内容和教学方法进行精心安排和设计。 而从内容的联系上讲,密码学可以说是多个学科的一个交汇点,这些学科包括:应用数学、通信、计算机应用、信息处理和电子电路技术等。内容涉及到较多的数学知识,从应用数学的角度看,密码学是计算数论、抽象代数等理论的一种应用;从通信的角度看,密码学是保密通信和通信网络安全的研究内容;从计算机应用的角度看,密码学是数据安全、计算机

密码学实验报告

《—现代密码学—》 实验指导书 适用专业:计算机科学与技术 江苏科技大学计算机科学学院 2011年11 月 实验一古典密码 实验学时:2学时 实验类型:验证 实验要求:必修 一、实验目的

编程实现古典密码的加解密方法。 二、实验内容 (1)移位密码的加密和解密函数。 (2)仿射密码的加密和解密函数。 (3)维吉尼亚密码的加密和解密函数。 三、实验原理、方法和手段 (1)移位密码 对于明文字符x ,加密密钥k ,加密方法为 ,1,2,,25y x k k =+= 解密方法为 ,1,2,,25x y k k =-= (2)仿射密码 对于明文字符x ,加密密钥(,)a b ,加密方法为 ,gcd(,26)1,1,2,,25y ax b a b =+== 解密方法为 1()x a y b -=- (3)维吉尼亚密码 选取密钥字Key ,将明文按照密钥字长度分组,将明文与密钥字对应字符相加并对26求余,即为密文字符。 i i i y x k =+ 解密过程为 i i i x y k =- 四、实验组织运行要求 本实验采用集中授课形式,每个同学独立完成上述实验要求。 五、实验条件 每人一台计算机独立完成实验,有如下条件: (1)硬件:微机;

(2)软件:VC++6.0、VC++.Net 2005。 六、实验步骤 (1)将各函数编写完成; (2)在主函数中调用各函数,实现加密和解密。 七、实验报告 实验报告主要包括实验目的、实验内容、实验原理、源程序及结果。移位密码加密: #include #define n 3 //移位位数 void change(char string[]) { int i; for(i=0;string[i]!='\0';i++) { if(string[i]>='a'&&string[i]<='z') string[i]=(string[i]+n>='z'?string[i]+n-26:string[i]+n); } } void main() { char str[100]; printf("请输入一段明文"); gets(str); change(str); printf("密文为:\n"); puts(str); }

现代密码学学习报告

现代密码学学习报告 第一章 概论 1.1信息安全与密码技术 信息的一般定义属于哲学范畴。信息是事物运动的状态与方式,是事物的一种区别于物质与能量的属性。 “信息”——数据。 机密性——拥有数据的一方或交换数据的各方不希望局外人或对手获得、进而读懂这些数据。 完整性——数据在交换及保存中不被未授权者删除或改动,或者合法的接受者能方便的判断该数据是否已经被篡改。 认证性——也称“不可否认性”或“抗抵赖”,包括信息源和接收端认证性,即信息系统中的实体不能否认或抵赖曾经完成的发送消息或接收消息的操作。利用信息源证据可以检测出消息发送方否认已发送某消息的抵赖行为,利用接收端证据可以检测出消息接收方否认已接收某消息的抵赖行为。此类证据通常还包括时间/时序或“新鲜性”证据。 可用性——授权用户能对信息资源有效使用。显然,信息系统可靠性是其支撑之一。 公平性——信息具有的社会或经济价值只能在交互中体现。公平性就是指交换规则或交互协议要使得参与信息交互的各方承担安全风险上处于相同或相当的地位。 可控性——是指对信息的传播及传播的内容以至信息的机密性具有控制能力的特性。一般指信息系统或(社会)授权机构根据某种法规对信息的机密性、信息的传播通道、特定内容信息的传播具有控制能力的特性,以及获取信息活动审计凭证能力的特性,如“密钥托管”、“匿名撤销”、实时内容检测与过滤、计算机犯罪或诉讼的司法取证等。 1.2密码系统模型和密码体制 密码系统基本模型: 密码体制的分类:对称密码体制的古典算法有简单代换、多名代换、多表代换等。 非对称密码体制:使用非对称密码体制的每一个用户一个是可以公开的,称为公开密钥,简称公钥,用pku 表示;另外一个则是秘密的,称为秘密秘钥,简称私钥,用sku 表示。非对称密码体制又称为双钥密码体制或公钥密码体制。 公钥密码体制的主要特点是将加密能力分开并分别并分别授予不同的用户,因而可以实现信 源M 加密器() c m =1k E 非法接入者密码分析员 (窃听者)搭线信道 (主动攻击) 搭线信道(被动攻击)解密器接收者 ()m c =2k D 密钥源密钥源1K 2 K m m 'm c ' c 1 k 2k 信道密钥信道

Shannon与现代密码学

Shannon与现代密码学 王育民 西安电子科技大学 教育部计算机网络与信息安全重点实验室 1949年Shannon公开发表了《保密系统的通信理论》[8],开辟了用信息论研究密码学的新方向,使他成为密码学的先驱、近代密码理论的奠基人。这篇文章是他在1945年为贝尔实验室所完成的一篇机密报告《A Mathematical Theory of Cryptograph》[1,[24]]。Boston 环球报称此文将密码从艺术变成为科学。(Transformed cryptography from an art to a science.)。本文发表后促使他被聘为美国政府密码事务顾问。 这一工作的背景是他在1941年在贝尔曾从事密码学研究工作,接触到SIGSAL Y电话,这是一种马桶大小的语言置乱设备,供丘吉尔和罗斯福进行热线联系。这一电话保密机所用的密码就是在今天也破不了[1,p.xx]。 SIGSAL Y电话机 这篇文章对于研究密码的人来说是需要认真读的一篇经典著作。本文奠定了现代密码理论的基础。可以说,最近几十年来密码领域的几个重要进展都与Shannon这篇文章所提出的思想有密切关系。 1.保密通信系统的数学模型 Shannon以概率统计的观点对消息源、密钥源、接收和截获的消息进行数学描述和分析,用不确定性和唯一解距离来度量密码体制的保密性,阐明了密码系统、完善保密性、纯密码、理论保密性和实际保密性等重要概念,从而大大深化了人们对于保密学的理解。这使信息论

成为研究密码学和密码分析学的一个重要理论基础,宣告了科学的密码学时代的到来。 2. 2. 正确区分信息隐藏和信息保密 Shannon在引论中就明确区分了信息隐藏(隐匿信息的存在)和信息保密(隐匿信息的真意),以及模拟保密变换和数字信号加密(密码)不同之处。Shannon称后者为真保密系统(True secrecy system) 3. 密码系统与传信系统的对偶性 传信系统是对抗系统中存在的干扰(系统中固有的或敌手有意施放的),实现有效、可靠传信。 Shannon说:“从密码分析者来看,一个保密系统几乎就是一个通信系统。待传的消息是统计事件,加密所用的密钥按概率选出,加密结果为密报,这是分析者可以利用的,类似于受扰信号。” 密码系统中对消息m的加密变换的作用类似于向消息注入噪声。密文c就相当于经过有扰信道得到的接收消息。密码分析员就相当于有扰信道下原接收者。所不同的是,这种干扰不是信道中的自然干扰,而是发送者有意加进的、可由己方完全控制、选自有限集的强干扰(即密钥),目的是使敌方难于从截获的密报c中提取出有用信息,而己方可方便地除去发端所加的强干扰,恢复出原来的信息。 传信系统中的信息传输、处理、检测和接收,密码系统中的加密、解密、分析和破译都可用信息论观点统一地分析研究。密码系统本质上也是一种传信息系统。是普通传信系统的对偶系统。 4. 含糊度在破译和设计密码中的作用

密码学课后习题

第三章: 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 ===?? ? ????=?=-

相关文档