密码学基础实验指导书
- 格式:doc
- 大小:131.00 KB
- 文档页数:22
《现代密码学基础》课程设计指导书杨柳编湖南科技大学计算机科学与工程学院2014年12月一、概述本课程在简要复习数学基础知识之后,探讨了密码学研究的基本问题:通过不安全的通信媒介如何进行安全通信。
也可以理解为关心任何希望限制不诚实者达到目的的问题,把度量和评价一个密码体制(协议)的安全性作为一个重点。
就目前来说,密码学的研究领域已从消息加密扩大到了数字签名、消息认证、身份识别、抗欺骗协议等。
无疑,在整个教学过程中非常重视密码学的基础,当然包括数学基础。
并针对实际的密码体制(协议)强调设计与分析(攻击),对现代密码学的主要研究问题都进行了介绍。
对于密码学这样的课程,同学们一定要从理论、技术、应用三个方面进行学习与思考。
密码体制(协议)无疑是我们的学习重点,密码体制(协议)也可以单纯地理解为计算机算法,从而有设计、分析、证明、实现的问题。
实现密码体制(协议)就是我们经常讲的八个字:模型、算法、程序、测试。
二、课程设计步骤课程设计步骤要求如下:模型从数学的角度看,解决任何问题都要建立一个数学模型,对于密码学来说更是如此。
我们还可以认为,数据结构中的存储结构也是模型。
于是这一部分的任务就是建立起问题的逻辑结构和存储结构,为算法设计和编码实现打下基础。
算法这一部分对同学们的要求是能看懂书上的常用算法,并对其中的参数可以进行调整和设置,能实现和应用它们。
程序编码实现得到程序。
4. 测试5. 提交课程设计报告三、课程设计报告编写要求课程设计报告开头标明课程设计题目、设计者的班级、姓名、学号和完成日期,内容包括:模型、算法、程序、测试四个部分。
四、设计要求可以只做第7题,不做第7题的要做第1题-第6题。
五、课程设计题目题目1 大整数运算包的设计与实现1.问题描述大整数运算是现代密码学算法实现的基础,重要性不言而喻。
大整数我们指的是二进制位512、1024和2048的数,一般的语言不支持。
2.基本要求以类库头文件的形式实现。
一、实验背景随着信息技术的飞速发展,信息安全问题日益突出。
密码学作为保障信息安全的核心技术,在数据加密、身份认证、数字签名等领域发挥着重要作用。
为了加深对密码学原理的理解,提高实际应用能力,我们开展了本次密码学案例实验。
二、实验目的1. 掌握DES加密算法的基本原理和操作步骤。
2. 熟悉RSA加密算法的原理和应用。
3. 学习数字签名技术的应用。
4. 培养动手实践能力,提高解决实际问题的能力。
三、实验内容1. DES加密算法(1)实验目的:了解DES加密算法的基本原理,掌握DES加密和解密过程。
(2)实验内容:① 设计一个简单的DES加密程序,实现明文到密文的转换。
② 设计一个简单的DES解密程序,实现密文到明文的转换。
(3)实验步骤:① 编写DES加密程序,输入明文和密钥,输出密文。
② 编写DES解密程序,输入密文和密钥,输出明文。
2. RSA加密算法(1)实验目的:了解RSA加密算法的基本原理,掌握RSA加密和解密过程。
(2)实验内容:① 设计一个简单的RSA加密程序,实现明文到密文的转换。
② 设计一个简单的RSA解密程序,实现密文到明文的转换。
(3)实验步骤:① 编写RSA加密程序,输入明文和密钥对,输出密文。
② 编写RSA解密程序,输入密文和私钥,输出明文。
3. 数字签名技术(1)实验目的:了解数字签名技术的基本原理,掌握数字签名的生成和验证过程。
(2)实验内容:① 设计一个简单的数字签名程序,实现签名生成和验证。
(3)实验步骤:① 编写数字签名程序,输入明文、私钥和签名算法,输出签名。
② 编写数字签名验证程序,输入明文、公钥和签名,验证签名是否正确。
四、实验结果与分析1. DES加密算法实验结果通过编写DES加密和解密程序,成功实现了明文到密文和密文到明文的转换。
实验结果表明,DES加密算法在保证数据安全的同时,具有较高的效率。
2. RSA加密算法实验结果通过编写RSA加密和解密程序,成功实现了明文到密文和密文到明文的转换。
《密码学基础》课程教学大纲(Fundamentals of Cryptography)课程编号: 1223527课程性质:专业课适用专业:计算机科学与技术先修课程:线性代数、概率论与数理统计、离散数学后续课程:总学分:2学分一、教学目的与要求1. 教学目的密码学包含两个密切相关的方面,其一是密码编码学,研究编写出好的密码系统的方法;其二是密码分析学,研究攻破一个密码系统的途径,恢复被隐蔽信息的本来面目。
通过本课程的学习使学生初步掌握密码编码学的知识、了解密码分析学的基本概念和方法。
2. 教学要求通过本课程的学习,要求学生能初步掌握密码学的主要内容,包括:公钥密码,分组密码,伪随机序列发生器,序列密码,数字签名等等。
要求重点掌握各种密码算法和密码协议及其设计原理,掌握密钥管理、数字签名、身份认证、散列函数等核心技术。
二、课时安排三、教学内容1. 密码学的基本概念(2学时)(1)教学基本要求了解:信息安全模型;信息安全与密码学的关系;密码学的发展方向。
理解:密码学的发展与分类;密码学的基本概念;现代密码学的理论基础。
(2)教学内容①对安全威胁的被动攻击(截获)与主动攻击(中断、篡改、伪造);②信息安全的三个特性(保密性Confidentiality、完整性Integrity、可用性Availability);③密码学的分类(密码编码学、密码分析学、密码密钥学);④密码编码学的分类(对称密码与非对称密码);⑤密码分析及对密码系统攻击能力等级。
2. 分组密码(4学时)(1)教学基本要求了解:DES;对DES的攻击方法;分组密码设计的一般原理;IDEA;Double-DES,Triple-DES;AES的产生背景。
理解:DES算法;分组密码(DES)的使用模式;IDEA的总体结构;AES算法;逆元的计算;分组密码的工作模式。
(2)教学内容①DES算法的整体结构(重点);②初始置换、逆初始置换、乘积变换、16轮迭代、函数f、S-盒、P置换;③子密钥的生成及DES的解密过程;④DES的雪崩效应、DES的弱密钥及半弱密钥、对DES的攻击;⑤Double-DES与Triple-DES;⑥分组密码设计的一般原理及分组密码的工作模式(ECB、CBC、CFB、OFB);⑦IDEA的总体结构,8轮迭代、输出变换、密钥调度、乘积运算;⑧逆元的计算;⑨DES,Double-DES,Triple-DES,IDEA的安全性;⑩AES分组密码算法(轮变换、加轮密钥、密钥调度、密钥扩展等)。
密码学基础与实践教程第一章:密码学基础概述密码学作为一门研究如何保护信息安全的学科,是现代通信和计算机科学领域的重要组成部分。
本章将介绍密码学的基本概念、目标和分类,并简要介绍几个密码学的关键术语。
1.1 密码学的定义与目标密码学旨在研究如何设计算法和协议,以确保信息在传输和存储过程中的保密性、完整性和可用性。
其目标主要包括保密性、完整性、身份认证和不可否认性。
1.2 密码学基本概念本节将介绍几个密码学中常用的基本概念,包括明文、密文、密钥和加密算法。
1.2.1 明文与密文明文是指未经加密处理的原始信息,而密文是指经过加密算法处理后的不易被理解的信息。
1.2.2 密钥密钥是密码学中用于加密和解密的参数。
在对称加密算法中,使用相同的密钥进行加密和解密;而在非对称加密算法中,使用公钥进行加密,私钥进行解密。
1.2.3 加密算法加密算法是密码学中用于对明文进行加密的数学算法。
常见的对称加密算法有DES、AES等,非对称加密算法有RSA、ECC等。
第二章:对称加密算法对称加密算法是指加密和解密使用相同密钥的加密方法。
本章将介绍DES和AES两个常见的对称加密算法,并分析其优缺点及应用场景。
2.1 DES算法DES(Data Encryption Standard)是一种对称加密算法,被广泛应用于各种信息系统的数据加密。
本节将介绍DES算法的基本原理、特点和应用场景。
2.2 AES算法AES(Advanced Encryption Standard)是一种高级加密标准算法,是目前应用最广泛的对称加密算法之一。
本节将介绍AES算法的设计思路、安全性和性能分析,并介绍其在信息安全中的应用。
第三章:非对称加密算法非对称加密算法是指加密和解密使用不同密钥的加密方法,包括公钥加密和数字签名等技术。
本章将介绍RSA和ECC两个常见的非对称加密算法,并讨论其应用场景。
3.1 RSA算法RSA算法是一种基于大数分解困难性的加密算法,被广泛应用于数字证书、安全通信等领域。
实验1 单/多表代换密码算法实现一、实验目的1、编程实现单/多表代换密码算法;2、了解攻击古典加密算法的方法。
二、实验内容编程实现恺撒密码、移位变换、仿射变换和多表代换加/解密算法;三、实验原理及步骤1、单表代换密码(1)恺撒密码恺撒密码的加密和解密代换:()()33mod26,025c E m m m =≡+≤≤()()33mod26,025m D c c c =≡-≤≤(2)移位变换它的加密和解密变换:()()mod26,0,25k c E m m k m k =≡+≤≤()()mod26,0,25k m D c c k c k =≡-≤≤(3)仿射变换它的加密和解密变换:()(),mod26a b c E m am b =≡+()()()1,mod26a b m D c a c b -=≡-其中a ,b 是密钥,为满足0,25a b ≤≤和()gcd ,261a =的整数。
其中()gcd ,26a 表示a 和26的最大公因子,()gcd ,261a =表示a 和26是互素的,1a -表示a 的逆元,即11mod 26a a -⋅≡2、多表代换密码多表代换密码首先将明文M 分为由n 个字母构成的分组12,,,j M M M ,对每个 分组i M 的加密为:()mod ,1,2,,i i C AM B N i j =+=其中(),A B 是密钥,A 是n n ⨯的可逆矩阵,满足()gcd ||,1A N =(||A 是行列式)。
()12,,,T n B B B B =,()12,,,T n C C C C =,()12,,,Ti n M m m m =。
对密文分组i C 的解密为:()()1mod ,1,2,,i i M A C B N i j -≡-=四、测试用例1、仿射变换算法用例设仿射变换的加解密分别是: ()()7,21721mod26c E m m =≡+()()()17,21721mod26m D c c -=≡-对security 加密,对vlxijh 解密。
常熟理工学院计算机科学与工程系《密码学基础》实验指导书网络工程系2009年7月实验一、熟悉CAP4一、实验目的与要求通过实验,使学生对密码学有一定的感性认识;学会正确使用CAP(Cryptographic Analysis Program v4)软件,验证课堂中所学的古典密码算法;为学习现代密码算法及其应用奠定基础。
二、实验内容1、熟悉使用CAP4软件2、使用CAP4,验证课本中的一些加密算法,如凯撒密码、仿射密码等。
三、实验指导CAP是由Dr. Richard Spillman专门为教学而研制的密码制作和分析的工具(CAP is a general purpose tool for making and breaking ciphers. It is intended for educational purposes only. Dr. Richard Spillman is not responsible for any lost data or errors in the software.),已经在美国的很多高校得到了广泛地使用,受到了密码学习者的普遍欢迎。
CAP4的软件界面如下:基本涵盖了经典密码学和现代密码学中的算法,主要包括:Simple Shift,ADFGVX,Affine,AutoKey,Bazeries Cylinder,Celluler Automata 1d,Celluler Automata 2d,Column Trasposition,DES, DES Stream,Elgamal,Four Square,Hill,KeyWord,Knapsack,MultiLiteral,Nihilist,Permutation,Playfair,RC4,Rotor,RSA,Vigenere等等。
“Affine”,出现如下图所示的弹出框。
注意:菜单“Encipher”和“Decipher”是灰色的。
实验1-1 古典密码算法一.实验原理1.替换密码替换密码算法的原理是使用替换法进行加密,就是将明文中的字符用其他字符替代后形成的密文。
例如:名文字母a、b、c、d用D、E、F、G作对应替换后形成密文。
例如:对于明文字母H,其在字母表中的位置数位8,设k=4,则按照上式计算出来的密文为L。
2.置换密码置换密码算法的原理是不改变明文字符,只将字符在明文中的字母按照给的顺序改变,从而实现明文信息的加密。
置换密码有时候也称为换位密码。
例如:明文为attack begin five,密钥为cipher,将明文按照每行6列的形式排在矩阵中,形成如下形式:a t t a c kb e g i n sa t f I v e根据密钥cipher中的各字母在字母表中出现的先后顺序,给定一个置换:F=(1 4 5 3 2 6)根据上面的置换,将原有矩阵中的字母按照第一列、第四列、第五列、第三列、第二列、第六列的顺序排列,则有下列形式:a a c t t kb i n g e sa i v f f e从而得到密文:abaaiicnvtgftefkse其解密的过程是根据密钥的字母数作为列数,将密文按照列、行的顺序写出,再根据由密钥给出的矩阵置换产生新的矩阵,从而恢复明文。
二实验目的通过编程实现替换密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。
三.实验环境运行windows或Linux操作系统的pc机,具有vc等c语言编译环境。
四.实验内容1.根据实验原理部分对替换密码算法的介绍,自己创建明文信息,并选择一个密钥k,编写替换密码算法的实现程序,实现加密和解密操作。
2.根据实验原理部分对置换密码算法的介绍,自己创建明文信息,并选择一个密钥k,编写替换密码算法的实现程序,实现加密和解密操作。
五实验步骤1.替换密码其中明文为h,加密参数k=4,字母的个数n=26。
实现环境为turboC(1)代码如下:#include<stdio.h>int encrypt(int n,int k); %声明加密函数int decrypt(int n,int k); %声明解密函数int main(void){encrypt(26,4); %代入加密参数k=4,n=26decrypt(26,4); %代入解密参数k=4,n=26}int encrypt(int n,int k) %加密函数{int c1,c2,c3;char ch;int CRYPT_OK;int CRYPT_ERROR;c1='h'; %声明明文c1=hc2=c1-97; %将明文的值变为7,使26个字母分别对应于0-25 c3=(c2+k)%n; %进行加密变换ch=c3+97; %将加密后的值变为它所对应的ASCII码%判断是否加密成功if(ch!='h'){CRYPT_OK=1;printf("ch=%c",ch);return (CRYPT_OK); %加密成功返回CRYRT_OK}else{CRYPT_ERROR=1;return (CRYPT_ERROR); %加密失败返回CRYPT_ERROR }}%解密函数int decrypt(int n,int k){int c1,c2,c3;char ch1;int CRYPT_OK;int CRYPT_ERROR;c1='l'; %声明密文c1=lc2=c1-97; %将密文变为11,使26个字母对应与整数0-25c3=(c2-k)%n; %进行解密ch1=c3+97; %将解密后的值化成它所对应的ASCII码%判断是否解密成功if(ch1!='l'){CRYPT_OK=1;printf("ch1=%c",ch1);return (CRYPT_OK); 解密成功返回CRYPT_OK}else{CRYPT_ERROR=1;return (CRYPT_ERROR); %解密失败返回CRYPT_ERROR }}(2)运行结果2.置换密码明文为:thiscr yptosy stemis notsec ure,其中加密的矩阵的字母按照第一列,第二列、第三列、第四列、第五列、第六列输出。
课程编号:05212002课程名称:密码学课程性质:专业基础必修总学时:63(授课学时48,实验15)学分:3适用对象:信息安全专业、信息与计算科学专业、电子信息工程专业、计算机科学与技术专业、通信工程专业《密码学》实验教学大纲一、教育目标通过这些实验题目,使学生对于《密码学》课程教学的一些重要环节获得切实的感性认识,由此达到真正理解和领会的地步,并引导学生动手、动脑,使他们的有关实践能力与创新能力得以养成和提高。
二、教学说明1. 密码学实验是密码学教学的一个重要的辅助环节,是为加强学生对于有关理论和原理的感性认识和启发学生创造性思维而设计的;它的先修课程为《C语言程序设计》或《汇编语言程序设计》,学生必须在打好相应基础的前提下开展本课程。
2. 辅导教师必须深入学生之中,了解他(她)们的实际动手情况,尤其要通过实际检查,使每位学生切实学会使用有关程序语言的调试工具、切实领会有关程序编制的实质性要点和要求。
三、内容和基本要求实验一随机全排列生成程序及其应用开发(一)实验内容:1.编制生成0~n(n≤255)的一个全排列的程序,可选择下列两个方法之一或自行设计另外方法:方法1:从一个随机文件读取n+1字节数据d0, d1, L, d n。
由预先取定的一个0~n的全排列P(比如,可为0~n的自然排列)开始,依次对i=n, n-1, L,1,计算:j=d i-1+d i (mod i)交换P的第i项第j项(在此注意我们假定P从第0项开始)。
方法2:用一个随机函数产生m(m>n)字节数据d1, d2, L, d m。
对d1(mod (n+1)), d2(mod (n+1)), L, d m(mod (n+1))依次考察,把后面出现的与前相同者去掉;在最后剩下的数据中,把没有出现的0~n依序补写于后面。
2.对第一步生成随机全排列的程序,自己设计一种应用并予以实现。
(二)实验要求:1.程序须对不超过255的正整数n都容易生成0~n的一个全排列;2.对较小的n,抓图显示随机全排列生成程序的计算结果(附页),数据不能出现明显错误;3.每位同学设计的“一种对于随机全排列生成程序的应用”须有个性化特点、不与别人雷同。
淮海工学院计算机工程学院实验报告书课程名:《网络安全技术》题目:常见的密码算法(DES、AES、RSA、MD5)班级:学号姓名:【实验目的】●理解对称加密算法的原理和特点●了解非对称加密机制●理解DES、AES算法的加密原理●理解RSA算法的加密原理【实验人数】每组1人【系统环境】Windows【网络环境】交换网络结构【实验工具】VC++6.0密码工具【实验步骤】一、DES算法1.DES加密解密(1)本机进入“密码工具”|“加密解密”|“DES加密算法”|“加密/解密”页签,在明文输入区输入明文:hello,world(2)在密钥窗口输入8(64位)个字符的密钥k,密钥k= 19940725 。
单击“加密”按钮,将密文导出到DES文件夹(D:\Work\Encryption\DES\)中,通告同组主机获取密文,并将密钥k告诉同组主机。
(3)单击“导入”按钮,从同组主机的的DES共享文件夹中将密文导入,然后在密钥窗口输入被同组主机通告的密钥k,点击“解密”按钮进行DES解密。
(4)将破解后的明文与同组主机记录的明文比较。
2.DES算法本机进入“密码工具”|“加密解密”|“DES加密算法”|“演示”页签,向64位明文中输入8个字符(8*8bit=64),向64位密钥中输入8个字符(8*8bit=64)。
点击“加密”按钮。
完成加密操作,分别点击“初始置换”、“密钥生成演示”、“十六轮加密变换”和“终结置换”按钮,查看初始置换、密钥生成演示、十六轮加密变换和终结置换的详细加密操作流程。
二、AES1.AES加密解密(1)本机进入“密码工具”|“加密解密”|“AES加密算法”|“加密/解密”页签,在明文输入区输入明文:hello,world(2)在密钥窗口输入16(128位)个字符的密钥k,要记住这个密钥以用于解密,密钥k=lijinyi123456789。
单击“加密”按钮,将密文导出到AES文件夹(D:\Work\Encryption\AES\)中,通告同组主机获取密文,并将密钥k告诉同组主机。
一、实验目的1. 了解密码学的基本概念和原理;2. 掌握常用的加密算法和解密算法;3. 学会使用密码学工具进行加密和解密操作;4. 培养学生的实践能力和创新思维。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 密码学库:PyCryptodome三、实验内容1. 加密算法实验1.1 实现DES加密算法1.2 实现AES加密算法1.3 实现RSA加密算法2. 解密算法实验2.1 使用DES解密算法解密加密数据2.2 使用AES解密算法解密加密数据2.3 使用RSA解密算法解密加密数据3. 密钥管理实验3.1 生成DES密钥3.2 生成AES密钥3.3 生成RSA密钥对4. 密码学工具使用实验4.1 使用PyCryptodome库进行加密和解密操作4.2 使用在线加密工具进行加密和解密操作四、实验步骤1. 加密算法实验1.1 实现DES加密算法1.1.1 导入PyCryptodome库中的DES模块;1.1.2 生成DES密钥;1.1.3 使用DES密钥对明文进行加密;1.1.4 输出加密后的密文。
1.2 实现AES加密算法1.2.1 导入PyCryptodome库中的AES模块;1.2.2 生成AES密钥;1.2.3 使用AES密钥对明文进行加密;1.2.4 输出加密后的密文。
1.3 实现RSA加密算法1.3.1 导入PyCryptodome库中的RSA模块;1.3.2 生成RSA密钥对;1.3.3 使用公钥对明文进行加密;1.3.4 输出加密后的密文。
2. 解密算法实验2.1 使用DES解密算法解密加密数据2.1.1 导入PyCryptodome库中的DES模块;2.1.2 使用DES密钥对密文进行解密;2.1.3 输出解密后的明文。
2.2 使用AES解密算法解密加密数据2.2.1 导入PyCryptodome库中的AES模块;2.2.2 使用AES密钥对密文进行解密;2.2.3 输出解密后的明文。
密码学实验指导目录实验一凯撒密码算法实验 1 实验二维吉利亚密码算法实验 5 实验三普莱费尔密码算法实验 9 实验四 IDEA密码算法实验 17 实验五 BCH纠错编码算法任务书 27实验一凯撒密码算法实验1 实验目的通过实验熟练掌握凯撒密码算法,学会凯撒密码算法程序设计,提高C++程序设计能力。
2 实验学时:2实验类别:验证实验■综合性实验□设计性实验□3 实验环境软件环境Windows Xp/Windows 2000Visual c++/Turbo c++ 3.0硬件系统Pentium 4 3.0G 512MRAM 计算机等4 算法原理按照a~z依次对应0~25编码,变量K存放密钥-正整数。
变量M存放一明文字符ASCII码,变量C存放M中的数据经加密后得到的一密文字符的ASCII码。
加密算法:C≡(M+K)mod 26,如此继续下去,实现逐个字符进行加密。
5 实验步骤与内容1)编写程序2)编辑录入3)记录调试及进行情况4)程序结构说明文档5)程序使用说明文档6 思考密钥K的有效的最小取值范围7 实验总结与体会8 要求提交完整的实验报告9 参考程序代码#include <iostream>#include <string>using namespace std;//获取密钥函数getKey()int getKey(){int key;cout<<"请输入密钥:";cin>>key;return key;}//将明文中的字符全部转化为大写的函数change()void change(char s[]){int i;for(i=0;i<strlen(s);i++){if(s[i]>96&&s[i]<122)s[i] = s[i]-32;}}//判断输入的明文格式是否有误的函数getError()//有误则返回0,否则就返回1int getError(char s[]){int i,error;for(i=0;i<strlen(s);i++){if((s[i]>65&&s[i]<=82)||(s[i]>96&&s[i]<=122)){error = 1;}else {error = 0;break;}}return error;}//将明文转化为密文的函数getCodevoid getCode(char s[],char ss[],int key) {int i,j;cout<<"译出的密文:";for(i = 0;i<strlen(ss);i++){for(j = 0;j<26;j++){if(ss[i]==s[j]){cout<<s[(j+key)%26];}}}cout<<endl;;}void main(){char ss[26],incode[1000];int i,key,asc=65;for(i = 0;i<26;i++){ss[i] = asc++;}key = getKey();cout<<"请输入密文:\n";getchar('\n');gets(incode);if(getError(incode)==0){cout<<"您的输入有误!请重新输入!\n";exit(1);}change(incode);getCode(ss,incode,key);}实验二维吉利亚密码算法实验1 实验目的通过实验熟练掌握维吉利亚密码算法,学会维吉利亚密码算法程序设计,提高C++程序设计能力。
密码学基础实验课程教学大纲
一、课程名称:密码学基础实验
二、课程性质:专业选修课
三、实验学时:18 学时
四、课程类型:非独立设课
五、课程适用专业:
六、教学目的:
1.使学生通过实验加强对课堂上所学的加密解密算法的理解,增强运用所学理论解决实际问题的能力。
2.培养学生实事求是的、严谨的科学态度,良好的科学素养及实验室工作习惯,培养学生合作能力,为后续课程及研究工作和参加实际工作奠定良好的基础。
3.培养学生良好实验习惯,课中认真观察并记录实验中遇到问题,进行分析,得出结论,认真书写实验报告;正确设计实验。
4.对于计算机专业的本科生,在具有一定的编程能力后,应当具备用其设计实现算法的能力。
七、实验教学项目表
八、实验报告要求:
认真写好实验报告,对所做的实验进行整理和归纳,作概要的描述和总结,培养学生分析问题和解决问题能力。
实验报告的内容和格式如下:
1.实验目的;
2.实验原理;
5.实验内容(实验步骤及对应的现象);
6.实验结果
7.讨论
九、实验成绩评定:
教师对学生在预习、实际操作能力、合作精神、实验报告等诸方面进行考察,并把这些作为学生学年评分的依据,学生最后的成绩:预习情况占10分,实际操作能力占60分,实验报告占30分。
十、教材及参考书:
1.《应用密码学教程》.胡向东魏琴芳.北京:电子工业出版社.2005。
密码学课程实验指导书一、密码学课程实验的意义当前,重视实验与实践教育是各国高等教育界的发展潮流,实验与实践教学与理论教学是相辅相成的,具有同等重要的地位。
它是在开放教育的基础上,为配合理论教学、培养学生分析问题和解决问题的能力以及加强训练学生专业实践能力而设置的教学环节;对于完成教学计划、落实教学大纲,确保教学质量,培养学生分析问题、解决问题的能力和实践操作技能更具有特别重要的意义。
密码学是信息安全与保密技术的核心,是一门实践性非常强的课程,实践教学是培养密码技术应用性人才的重要途径,实践教学质量的好环,实际上也决定了应用型人才培养质量的高低。
因此,加强密码学课程实践教学环节,提高实践教学质量,对培养高质量的应用型人才至关重要。
二、实验的目的与要求本实验指导书并不给出一些非常具体的实验步骤,让学生们照着做一遍的实验“指导书”。
这样的实验无法发掘这群充满活力的人群的智慧和创造性。
本书中的每个实验都是按照这种模式编写的:先给出有关的理论介绍,然后抛砖引玉地给出几范例,再给出一个简单的实验要求。
同时,希望每个实验都完成准备-预约-实验-答辩4个环节。
实验内容包含对称密码和公钥密码二个方面,以DES和RSA为代表通过具体实验使学生掌握这二类密码的结构、特性、攻击方法以及实际应用技术。
第一部分数据加密标准DES1.实验目的(1)掌握DES中各加密函数对其性能影响;(2)DES的特性分析,包括互补性和弱密钥;(3)DES的实际应用,包括各种数据类型的加/脱密、DES的短块处理。
2.实验原理信息加密根据采用的密钥类型可以划分为对称密码算法和非对称密码算法。
对称密码算法是指加密系统的加密密钥和解密密钥相同,或者虽然不同,但是可以从其中任意一个推导出另一个,更形象的说就是用同一把钥匙开锁和解锁。
在对称密码算法的发展历史中曾出现过多种优秀的算法,包括DES 、3DES 、AES 等。
下面我们以DES 算法为例介绍对称密码算法的实现机制。
密码学及应用实验指导实验1古典密码实验目的1.理解代替密码学加密过程2.理解置换密码学加密过程实验环境W i n d o w s和交换网络结构实验工具V C++6.0和密码工具实验原理一.C a e s a r(恺撒)密码C a e s a r密码是传统的代替加密法,C a e s a r加密变换是:c=(m+k)m o d26其中m是明文对应的数据,c是与明文对应的密文数据,k是加密用的参数,也为密钥。
很容易得到相应的C a e s a r解密变换是: m=D(c)=(c– k)m o d26二.单表置换密码单表置换密码也是一种传统的代替密码算法,在算法中维护着一个置换表,这个置换表记录了明文和密文的对照关系。
在单表置换算法中,密钥是由一组英文字符和空格组成的,称之为密钥词组。
例如当输入密钥词组:I L O V E M Y C O U N T R Y后,对应的置换表如下:实验步骤凯撒密码本练习主机A、B为一组,C、D为一组,E、F为一组。
首先使用“快照X”恢复W i n d o w s系统环境。
一.手动完成C a e s a r密码(1)在实验原理部分我们已经了解了C a e s a r密码的基本原理,那么请同学们写出当密钥k=3时,对应明文:d a t a s e c u r i t y h a s e v o l v e d r a p i d l y的密文: 。
(2)进入实验平台,单击工具栏中的“密码工具”按钮,启动密码工具,在向导区点击“C a e s a r密码”。
在明文输入区输入明文:d a t a s e c u r i t y h a s e v o l v e d r a p i d l y。
将密钥k调节到3,查看相应的密文,并与你手动加密的密文进行比较。
请根据密钥验证密文与明文对应关系是否正确。
二.C a e s a r加密(1)进入“加密解密”|“C a e s a r密码”视图,在明文输入区输入明文(明文应为英文),单击“加密”按钮进行加密。
《密码学基础》实验指导
20 / 20 学年第学期
班级:
组号:
组长:
实验地点:
指导教师:
计算机科学与工程学院
2009年10月
实验目录
实验一、熟悉CAP4 (1)
实验二古典密码算法Playfair密码 (3)
实验三古典密码算法仿射密码 (5)
实验四古典密码算法Vigenère密码 (7)
实验五、对称密码算法DES (9)
实验六、对称密码算法IDEA (11)
实验七、对称密码算法AES (13)
实验八、非对称密码算法RSA (15)
实验九、数字签名算法DSS (17)
实验十、HASH算法MD5 (19)
实验一、熟悉CAP4
实验二古典密码算法Playfair密码
实验三古典密码算法仿射密码
实验四古典密码算法Vigenère密码
实验五、对称密码算法DES
实验六、对称密码算法IDEA
实验七、对称密码算法AES
实验八、非对称密码算法RSA
实验九、数字签名算法DSS
实验十、HASH算法MD5。
实验二密码学实验实验目的1.掌握常用密码算法的设计思想及其安全性原理;2.能通过CAP进行常用密码算法的演示和分析。
3.掌握PGP软件的基本应用预习与实验要求1.预习实验指导书及教材的有关内容,并通过查阅文献,了解常用密码算法的基本原理和设计思想;2.在网上查阅有关PGP的相关资料;3.实验前认真听讲,服从安排。
尽可能独立思考并完成实验。
实验设备与器材1.设备:计算机;2.软件:PGP,CAP。
实验原理密码学是一门古老的科学,它是研究密码系统或通信安全的一门科学,分为密码编码学和密码分析学。
密码编码学的目的是研究如何书写好的密码方法,保护信息不被侦察,即伪装消息。
对给定的有意义的数据进行可逆的数学变换,将其变为表面上杂乱无章的数据,只有合法的接收者才能恢复数据。
密码分析学是研究攻破一个系统的途径,恢复被隐蔽起来的消息的本来面目,即研究如何破译加密的消息。
密码学的分类有多种,按加密密钥与解密密钥是否相同,可分为对称密码与非对称密码。
对称密码体制的安全性体现在密钥的安全性上,优点是安全性高,加密速度快。
缺点是随着网络规模的扩大,密钥管理成为难点;无法解决消息确认问题;没有自动检测密钥泄露的能力。
典型代表是DES算法。
公钥密码体制不需专门通道来传送密钥,优点是简化了密钥管理问题,可有数字签名等新功能。
缺点是算法复杂,加解密速度慢。
代表是RSA。
此外,还有HASH算法,如MD5、SHA等。
这些算法在当今网络环境下都有着非常广泛的应用。
实验内容一. 常用密码算法的演示及分析1.经典加密法经典加密法是以单个字母为作用对象的加密法。
这里以关键词加密法来演示和分析。
(1)原理及演示A. 选择一个关键词,若关键词中有重复字母,则去除第一次出现之外的所有相同字母。
如选定关键词“good”,则使用“god”。
B. 将关键词写在字母表下方,并用字母表的其他字母按标准的顺序填写余下的空间。
a b c d e f g h i j k l m n o p g o d a b c e f h i j k l m n p显然,从字母p开始,所有的字母都不再替换。
计算机科学与技术系实验报告专业名称网络工程课程名称计算机网络安全技术项目名称密码学班级 13网工(1)班学号 1304031030姓名余世光同组人员无实验日期 2016/5/8实验一密码学密码学数学基础实验一、实验内容:使用运算器工具完成大数运算、素性测试、模幂、原根、求逆和二次剩余的计算。
二、实验原理:1、大数运算大多数运算器只支持小于64位的整数运算,无法进行加密算法的运算。
为满足加密算法的需要,可通过建立大整数运算库来解决这一问题。
通常通过以下两种方式进行处理:(1)将大整数当作字符串处理,即将大整数用10进制字符数组表示;这种方式便于理解,但效率较低。
(2)将大整数当作二进制流进行处理;计算速度快。
2、素性测试Monte Carlo算法和Las Vegas算法均为素性测试的算法。
(1)Monte Carlo算法Monte Carlo算法又称为概率素性检测算法,算法描述如下:输入:p为一个正整数;输出:若p为素数,输出YES;否则输出NO。
Prime_Test(p)flag=0;重复次:在(1,p-1]区间上均匀随机的选取x;如果gcd(x,p)>1或,return(NO);如果flag=0且,flag=1;结束重复;如果flag=0,即在重复中没有出现过,return(NO);return(YES)。
(2)Las Vegas算法Las Vegas算法又称为素性证明,算法描述如下:输入:p为一个正基数;q1,q2,…,qk为p-1的全体素因子,其中k≤;输出:若p为素数,输出YES;否则输出NO。
Prim_ Certify(p,q[k])在区间[2,p-1]上均匀随机的选取gfor(i=1,i++,k)do如果,输出NO_DECISION并终止程序;如果,输出NO并终止程序;输出YES并终止程序。
2、模幂对于b,c<m,模幂b c mod m按照整数幂的通常定义,b自乘c次,但要模m;模幂算法描述如下:输入:整数b、c、m,其中b>0,c≥0,m>1;输出:b c mod mmod_exp(b,c,m)if(c=0) return (1);if (c mod 2=0) return(mod_exp(b2mod m,c/2,m));其中c/2表示c除以2取整;return (b·mod_exp(b2 mod m,c/2,m))。
《密码学基础》实验指导
20 / 20 学年第学期
班级:
组号:
组长:
实验地点:
指导教师:
计算机科学与工程学院
2009年10月
实验目录
实验一、熟悉CAP4 (1)
实验二古典密码算法Playfair密码 (3)
实验三古典密码算法仿射密码 (5)
实验四古典密码算法Vigenère密码 (7)
实验五、对称密码算法DES (9)
实验六、对称密码算法IDEA (11)
实验七、对称密码算法AES (13)
实验八、非对称密码算法RSA (15)
实验九、数字签名算法DSS (17)
实验十、HASH算法MD5 (19)
实验一、熟悉CAP4
实验二古典密码算法Playfair密码
实验三古典密码算法仿射密码
实验四古典密码算法Vigenère密码
实验五、对称密码算法DES
实验六、对称密码算法IDEA
实验七、对称密码算法AES
实验八、非对称密码算法RSA
实验九、数字签名算法DSS
实验十、HASH算法MD5。