作业. (第三讲,第二大题,适合2年级)使用python的pycrypto加密库,完成以下练习(1至4题必须做在作业
本上):
1.
明文plaintext1为你的姓名的汉语拼音(如果不够8字符的整数倍,则用下划线填充),密钥为字符串24062406
,使用DES算法对其进行加密和解密操作,密文用变量名ciphertext1表示,将其显示的值以便于阅读的16进制
形式表示。请写出每一步输入的指令,以及其运行显示的结果。
2.明文plaintext2为你的姓名的汉语拼音(如果不够8字符的整数倍,则用下划线填充),密钥为字符串240624
06,使用DES算法对其进行变换操作,本题中先进行decrypt方法的调用,再进行encrypt方法的调用,密文用变
量名ciphertext2表示,将其显示的值以便于阅读的16进制形式表示。请写出每一步输入的指令,以及其运行显
示的结果。(注意:加密,解密算法不是绝对的,从本题可以看出:实际上decrypt起到了加密的作用,而encr
ypt起到解密的作用)
3.将DES算法改为Blowfish算法,重做第1小题。
4.简单描述DES算法的互补性。(0的补为1,1的补为0,即取反的运算)。
通过实验,请说明S-DES算法是否具有互补性(S-DES算法的源码附后,可以在dev-c++环境中进行测试)。
测试数据为plaintext: 11110000 , key: 1010101111. 请写出具体测试过程。
5.(选作题)如果不是在解释器中练习,而是运行编写的python程序,该如何操作?
6.(预习)第4章,第5章。了解其他算法(AES及其候选算法)的特点。理解各种分组密码的加密模式。要在pycr
ypto加密的过程中使用这些模式,可以用这样的语法: obj = DES.new('12345678', DES.MODE_ECB)
7.(思考)对1题中,使用汉字形式的姓名,encrypt再decrypt后能够得到原来的明文吗?
8.(探索)利用python+pycrypto,如何对文件(而不仅仅是一个字符串)进行加密,解密。
-------------------------------------------------------------------------------------------------------------------------------
附:S-DES 的C语言源码
http://www.google.com/notebook/public/13329100837428676645/BDQRcIgoQqsCT4uIh
或 其原出处:
http://www.sci.brooklyn.cuny.edu/~sdexter/cis729/HW/sdes.c
2210

被折叠的 条评论
为什么被折叠?



