您当前的位置:t7t8网 >  范文大全 >  心得体会 >密码学论文优秀8篇(密码学相关论文题目)

密码学论文优秀8篇(密码学相关论文题目)

更新时间:2023-08-03 21:20:32 点击: 来源:yutu

随着网络空间竞争与对抗的日益尖锐复杂,安全问题以前所未有的深度与广度向传统领域延伸。随着移动互联网、下一代互联网、物联网、云计算、命名数据网、大数据等为代表的新型网络形态及网络服务的兴起,安全需求方式已经由通信双方都是单用户向至少有一方是多用户的方式转变。如果你想深入了解这方面的知识,可以看看以下密码学论文。以下是人见人爱的小编分享的8篇《密码学论文》,如果能帮助到您,t7t8美文号将不胜荣幸。

密码学CrackMe之RSA512算法CM分析 篇一

【文章标题】: 'RSACrackMe512分析过程及汇编注册机源码

【文章作者】: coolstar14

【使用工具】: IDA, BigInterCalc, RDLP

【软件名称】: RSACrackMe512

【软件大小】: 40KB

【下载地址】: attachmentid=7447&d=1187671766

【软件介绍】: 用RSA512作为校验算法的CrackMe,

【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

--------------------------------------------------------------------------------

详细过程:

IDA反汇编, 字符串参考, 直接定位到关键代码:

.text:00402F18

.text:00402F18 loc_402F18:                            ; CODE XREF: DialogFunc+140j

.text:00402F18                lea    eax, [ebp+dst_buffer]

.text:00402F1E                lea    ecx, [ebp+rsa_n]

.text:00402F24                push   eax            ; dst_buffer

.text:00402F25                push   ecx            ; rsa_n

.text:00402F26                lea    edx, [ebp+input_sn]

.text:00402F2C                push   offset s_10001 ; “10001”

.text:00402F31                push   edx            ; input_sn

.text:00402F32                mov    [ebp+var_4], 0

.text:00402F39                call   sub_402BC0     ;关键函数, 跟进

.text:00402F39

.text:00402F3E                test   eax, eax

.text:00402F40                jnz    short loc_402F68   ; eax不等于0, 跳转到后续判断, 否则就提示失败

.text:00402F40

.text:00402F42                push   40h            ; uType

.text:00402F44                push   offset Caption ; “注册提示”

.text:00402F44

.text:00402F49

.text:00402F49 loc_402F49:                            ; CODE XREF: DialogFunc+1D8j ;注册提示

.text:00402F49                push   offset s_VSIAGm ; “注册码错误,继续加油!”

....

.text:00402F64                mov    esp, ebp

.text:00402F66                pop    ebp

.text:00402F67                retn

.text:00402F67

.text:00402F68 ; ---------------------------------------------------------------------------

.text:00402F68

.text:00402F68 loc_402F68:                            ; CODE XREF: DialogFunc+190j

.text:00402F68                lea    eax, [ebp+dst_buffer]

.text:00402F6E                lea    ecx, [ebp+String2]

.text:00402F74                push   eax            ; lpString1

.text:00402F75                push   ecx            ; lpString2

.text:00402F76                call   sub_402CE0     ;比较函数, 可以通过内存查看, eax, ecx分别为解密sn后获得的缓冲区和我们输入的用户名

.text:00402F76

.text:00402F7B                add    esp, 8

.text:00402F7E                cmp    eax, 1

.text:00402F81                push   40h            ; uType

.text:00402F83                push   offset Caption ; “注册提示”

.text:00402F88                jnz    short loc_402F49   ;前面比较函数返回值 eax不等于1跳转到失败, 否则注册成功。

.text:00402F88

.text:00402F8A                push   offset s_ZUgmVSI ; “恭喜你,注册码正确!”

.text:00402F8F                push   esi            ; hWnd

.text:00402F90                call   ds:MessageBoxA

.text:00402F96                xor    eax, eax

函数 402F39, 参数4个, 通过查看内存可以确定, 有一个为我们输入的序列号, 一个为10001的字符串, 它是RSA公钥对中最常用的e , 还有一个长度为128的字符串, 这个很容易就可以怀疑它是RSA公钥对中的n. 另外一个会在下面的比较函数中用它, 它就是结果输出缓冲区了。

函数:sub_402BC0

.text:00402BC0 ; Attributes: bp-based frame

.text:00402BC0

.text:00402BC0 ; int __stdcall sub_402BC0(int input_sn,int rsa_e_10001,int rsa_n,LPSTR dst_buffer)

.text:00402BC0 sub_402BC0     proc near              ; CODE XREF: DialogFunc+189p

.text:00402BC0

.text:00402BC0 String2        = byte ptr -2088h

.text:00402BC0 var_88         = dword ptr -88h

.text:00402BC0 var_big_e      = dword ptr -64h

.text:00402BC0 var_big_n      = dword ptr -44h

.text:00402BC0 var_big_sn     = dword ptr -20h

.text:00402BC0 var_10         = dword ptr -10h

.text:00402BC0 var_C          = dword ptr -0Ch

.text:00402BC0 var_4          = dword ptr -4

.text:00402BC0 input_sn       = dword ptr 8

.text:00402BC0 rsa_e_10001    = dword ptr 0Ch

.text:00402BC0 rsa_n          = dword ptr 10h

.text:00402BC0 dst_buffer     = dword ptr 14h

.text:00402BC0

.text:00402BC0                push   ebp

.text:00402BC1                mov    ebp, esp

.text:00402BC3                push   0FFFFFFFFh

.text:00402BC5                push   offset loc_406973

.text:00402BCA                mov    eax, large fs:0

.text:00402BD0                push   eax

.text:00402BD1                mov    large fs:0, esp

.text:00402BD8                push   ecx

.text:00402BD9                mov    eax, 2078h

.text:00402BDE                call   sub_4034A0

.text:00402BDE

.text:00402BE3                push   ebx

.text:00402BE4                push   esi

.text:00402BE5                push   edi

.text:00402BE6                lea    ecx, [ebp+var_88]

.text:00402BEC                mov    [ebp+var_10], esp

.text:00402BEF                call   sub_402900

.text:00402BEF

.text:00402BF4                xor    ebx, ebx

.text:00402BF6                lea    ecx, [ebp+var_big_sn]

.text:00402BF9                mov    [ebp+var_4], ebx

.text:00402BFC                call   sub_401060

.text:00402BFC

.text:00402C01                mov    eax, [ebp+rsa_e_10001]

.text:00402C04                lea    ecx, [ebp+var_big_e]

.text:00402C07                push   eax

.text:00402C08                mov    byte ptr [ebp+var_4], 2

.text:00402C0C                call   sub_4028F0       ; 大数转换, 只有一个参数为大数的字符串表示。 之前有几个函数调用, 像是初始化之类的东西, 具体没弄明白。

.text:00402C0C

.text:00402C11                mov    ecx, [ebp+rsa_n]

.text:00402C14                push   ecx

.text:00402C15                lea    ecx, [ebp+var_big_n]

.text:00402C18                call   sub_4028F0

.text:00402C18

.text:00402C1D                mov    edx, [ebp+input_sn]

.text:00402C20                lea    ecx, [ebp+var_big_sn]

.text:00402C23                push   edx

.text:00402C24                call   sub_4028F0

.text:00402C24

.text:00402C29                mov    ecx, 800h

.text:00402C2E                xor    eax, eax

.text:00402C30                lea    edi, [ebp+String2]

.text:00402C36                rep stosd

.text:00402C38                lea    eax, [ebp+var_big_sn]

.text:00402C3B                lea    ecx, [ebp+String2]

.text:00402C41                push   eax

.text:00402C42                push   2000h

.text:00402C47                push   ecx

.text:00402C48                lea    ecx, [ebp+var_88]

.text:00402C4E                call   sub_402A40       ;大数转换完, 下一步自然是计算, 这个函数很麻烦, 需要跟进, 验证序列号有一部分在这里面。

.text:00402C4E

.text:00402C53                mov    eax, [ebp+dst_buffer]

.text:00402C56                lea    edx, [ebp+String2]

.text:00402C5C                push   edx            ; lpString2

.text:00402C5D                push   eax            ; lpString1

.text:00402C5E                call   ds:lstrcpyA       ;将结果复制到目的缓冲区, 可以由这儿中断, 然后直接修改内存使eax指向内在为我们输入的用户名, 继续后可以看到, 会提示注册成功, 所以后面调用的函数我们就可以不用关心了。

.text:00402C64                lea    ecx, [ebp+var_big_sn]

...............

.text:00402C96

.text:00402C96 sub_402BC0     endp

IDA有个很实用的功能, 它可以让你修改参数名字, 它会在整个函数体里统一替换, 在自己确定了某个参数和变量的含义后可以修改它为好记的名字, 方便之后的阅读和理解。 上面的函数的参数为我跟踪替换后的样子,比最初版本肯定是要好些的。

回到分析上, 在大数的处理上, 不清楚这个CM用的什么大数库或者为自己写的吧。 上面瓢的大数的参数, 比如说var_big_e, 是个内存地址, 其+4后的地址指向malloc出来存放转换出来大数的地址。

函数:sub_402A40 其中

.text:00402A78

.text:00402A7D                lea    edi, [esi+44h]

.text:00402A80                add    esi, 24h

.text:00402A83                push   edi            ; big_n

.text:00402A84                push   esi            ; big_e_10001

.text:00402A85                lea    ecx, [esp+38h+var_AfterDeBuff]

.text:00402A89                push   ebx            ; big_sn

.text:00402A8A                push   ecx            ; out is powmod=sn^10001 (mod n)

.text:00402A8B                call   sub_402670

通过查看 402670 调用前后各参数地址的变化, 发现只有ecx指向的缓冲区有变化, 使用 BigIntCalc代入各参数计算, 发现ecx的结果恰巧是powmod操作。 由此可以确定第一步, 这个cm是把序列号转为大数, 用公钥解密了的。 那么没有私钥好像是不能继续下去了, 分解512 好像很花时间, 我们采用替换公钥对n的方法继续下面的分析, IDA 查看字符串参数, 找到公钥串所在偏移 4080e0, 相对文件偏移80e0(ida可以在状态栏看到的), Ultraedit打开exe, 直接定位并使用我们自己产生的公钥对中的n替换它。 这样我们就可得到一个知道私钥的修改版本。

重新截入修改后的版本, 在402a8b下断, 使用私钥加密我们输入的用户名, 加密后的结果做为序列号输入, 点击注册, 断下, 单步运行一下, 可以看到ecx指向的大数, 加密前的用户名的逆序。 ecx为指针, 它指向的大数实际地址为其地址+4, 然后再做为地址, 如:

0012d508 14 71 40 00 70 05 8f 00 则其指向的大数实际为8f0570, 查看这个地址, 可以看到调用402670前为我们输入的序列号, 调用后变为了我们输入的用户名的逆序。 本来以为这样应该算是注册了, 结果运行仍然弹出注册失败。 看来并不是简单的用户名私钥加密形成序列号。 继续。

mov    eax, [esp+30h+arg_2000]

lea    edx, [esp+30h+var_AfterDeBuff]

push   2

push   edx            ; addr after powmod

push   eax

push   ecx            ; addr String2

call   sub_402B10

402b10, 它有个参数为我们期望的外层比较函数将要使用的地址, 跟进它。

402b10 调用 4024a0, 这个函数对解密后的数据做了进一步的判断, 如果不符合要求, 就返回一个 负数, 解密出来的内容并不会复制到我们期望的String2的地址中, 这个函数我没分析出来, 后来在密码学CM主帖中看到一个RSA1024有效的注册码, RSA1024那个CM与512这个反汇编后除了公钥n长度不一致外其它倒是一样。 所以看到powmod后的地址的结果, 从而猜测出解密后数据应该的内容继而得出4024a0函数各参数的意义和作用。

4024a0, 它判断了解密后数据的长度, 然后符合长度限制的它复制了指定偏移指定位的数据到目的地址。 其4个参数分别为:

源地址, 目的地址, 偏移位置, 复制字节数。

402b10 3次调用4024a0, 分别做了如下操作, 1复制并检查powmod解密后数据倒数第二个字节为2, 2复制获得powmod解密后数据倒数3,4字节做为有效数据长度xlen, 3以第二步取到长度复制偏移0长度xlen的数据到目的缓冲区。

最后, 可以看到sn产生的办法, 取这样一个串, user 256-4-ulen的任意字符 两字节ulen 02 任意结尾。 最后将这个串逆序 得到 加密前原文, 该串以私钥加密即得到序列号。 因为填充字符的存在, 所以相同用户名是可以有很多匹配的序列号的。

结束:

验证用工具使用了 readyu 大侠提供的, RDLP, BigInterCalc.

下载位置:

bbs1t=47934&highlight=RDLP

bbs1t=49005&highlight=RDLP

附一组修改公钥n后验证成功的注册码

替换的公钥n:

C1E8FDD98735103BCCEC2032A319FB8ADB1E79D5663486116CF54EE96CE3CB8988974330DEBB3639DC41C0FC0680F0549D94E90410D1B01A58E9D0F265008FD9

加密用私钥d:

41A1C0B9EDBF921D0B81286CBB33C225FF8053305D858D933C53D33FC2B15F6437E7D80333B01EE6DF23D3BF378F6FAAF366BC5398CF9E74B4E6836174894A59

加密前源串:

01020a00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFeeFFFFFFFFFFFFFFFFFF00636F6F6C737461723134

用户名:coolstar14

序列号:5BC6E01B6C7D34455FDt7t8美文号www.t7t8美文号B584A6B5352187CF9ECCB29FD28E4FFFF3FB33D4A6B27191285FFB23451FA9DDA95EA44909D2B9D54BBC77841F668CD9F6F3BC

《密码学》课程教学方法和设计的探索论文 篇二

《密码学》课程教学方法和设计的探索论文

论文关键词:密码学 教学设计 信息安全

论文摘要:密码技术作为信息安全的核心技术之一,能有效保障信息的私密性、认证性、完备性和不可否认性。针对本科密码学课程的特点,结合南京工业大学信息与计算科学专业教学的实际,讨论课程的教学方法问题:首先分析了密码学课程的内容和特点;其次从知识体系、实践环节、考核方式等几个方面对教学方法和课时安排进行了探讨和设计,并将其应用到密码学课程的实际教学中,取得了较好的教学效果,为同行提供了一定的参考价值。

近年来,随着信息安全技术的逐步深入人们的日常生活,对信息安全的理论和应用研究逐渐升温。密码技术作为信息安全的理论核心,也为越来越多的人所认可,因此近年来《密码学》成为各类高等院校本科生信息类相关专业相继开设的课程。我校也在面向信息与计算科学专业级及其以后年级学生开设了《密码学》的选修课程。本文通过总结作者近6年来在《密码学》课程的教学经验,从知识体系、实践环节、考核方式等几个方面对教学方法和课时安排进行了探讨和设计,给出了教学总结和建议。

1密码学课程的内容和特点

1.1密码学课程的特点

密码学作为一门比较新兴的课程,是集数学、计算机科学以及通信与信息系统等多学科一体的交叉学科,涉及到的内容非常广泛。从内容的联系上讲,密码学可以说是多个学科的一个交汇点,这些学科包括:应用数学、通信、计算机应用、信息处理和电子电路技术等。从应用数学的角度看,密码学是数论、抽象代数、计算复杂度等理论的一种应用;从通信的角度看,密码学是保密通信和通信网络安全的研究内容;从计算机应用的角度看,密码学是数据安全、计算机安全和网络安全的研究内容;从信息处理的角度看,密码是信息处理的一种形式。密码学的研究内容决定了它的交叉性和广泛性,这使密码学从不同的方面得到研究,从而得以不断发展。

1.2密码学课程的内容

就密码学内容而言,密码学主要由密码编码学和密码分析学两部分组成。考虑到本科生的实际情况,我们选择了相对偏重密码编码学的教材。我校采用的是由武汉大学出版社出版,张福泰教授主编的《密码学教程》一书,该书是信息安全系列教材中的一个部分。

密码学教材不论是外文版还是中文版在内容设置上主要包含两大模块:加密、认证J。加密部分主要分为古典密码、私钥密码体制和公钥密码体制;认证部分主要包括数字签名和杂凑函数、密码协议等。各部分体系除了介绍相关的数学知识之外,主要介绍各种典型的密码算法,比如:私钥密码体制主要以数据加密标准(DES)和高级加密标准(AES)为主;而公钥密码体制中,主要以基于大数分解困难问题的RSA算法、基于离散对数困难问题的E1Gamal算法和基于椭圆曲线(ECC)的密码体制;在数字签名方面,主要以RSA数字签名、El―Gamal数字签名和数字签名标准(DSS)为主;密码协议主要以密钥管理协议、密秘分享协议和认证协议为主。这些内容涉及的知识背景和应用背景多,覆盖面广,实践性强,如何合理处理好这些知识点,既要注意点到面,又要重点突出、深入浅出,这就为我们的教学提出了要求。

2教学实践

目前的密码学体系主要是建立在代数学知识基础之上的,考虑到我校信息与计算科学专业的已经学过高等代数和离散数学,对群、环、域的知识已经比较熟悉,所以在密码学课程的数学基础介绍部分就会省下不少的课时。正是因为如此,我们的理论教学就更关注于如何让学生建立密码学的基本概念、基本模型以及基本理论,并最终达到信息安全的立体体系的建立。

我校信息与计算科学专业深知密码学对信息学科的重要性,安排了48学时的教学,其中理论教学32学时,上机实验12学时。下面就是我校《密码学》课程教学内容和课时分配的安排方案。

2.1理论教学

大致教学内容可以分为以下部分:

(1)密码学概述(2学时)。这部分的主要内容包括:密码学的基本概念、密码学的体系结构、发展简史和密码学的应用等等。本部分目的是形成对密码学整体框架的初步印象,为今后的学习打下基础。在这一环节笔者认为让学生对密码学要产生兴趣非常重要,所以对与密码学的。应用部分笔者采用了播放纪录片“密码在二战中的重要作用”。事实证明,效果非常好。

(2)古典密码体制(2学时)。这一章节的学习通过让学生描述如果你古代的一个密码学家,对于秘密信息的隐藏你会如果去做展开。从而引出代换密码和置换密码这两大主线。实践表明,这种让学生自主创新的教学方法引起了学生特别大的学习兴趣。

(3)现代分组密码(10学时)。主要内容包括分组密码的设计方法;DES、AES和IDEA加密算法。本部分首先在介绍完本章所需数学知识(有限域上的求模逆运算)的基础上,笔者对与DES算法的学习采用了将学生4人一组的方式,并且选出小组负责人。让他们先自习,如有疑问先小组内部讨论,要求画出DES算法的数据结构图。小组内部解决不了的,再拿出来大家一起讨论。这种学习方式有效的提高了学生的积极性,同时更培养和提高了他们的自学能力。

(4)流密码(4学时)。主要内容包括流密码的原理、有限状态自动机、线性反馈移位寄存器、RC4和流密码算法SNOW2.0。本部分目的是介绍流密码的基本思想和方法。可事先准备好相关代码材料,课堂演示线性和非线性反馈移位寄存器等的实现,效果很好。

(5)公钥密码体制(6学时)。主要内容包括公钥密码的原理;数学基础知识;RSA公钥密码体制;E1Gamal公钥密码体制;D.H密钥协商方案和椭圆曲线密码体制。本部分主要介绍公钥密码的基本思想――单向函数的概念和应用和几个加密算法。由于涉及数论中离散对数、大数分解、平方剩余概念的初步知识,而且相关的数学理论公式繁多,理解起来有一定难度。但这些数学理论应用到加密算法后,都有相应的快速算法,如RSA加密算法中有模密快速算法、大数分解算法,E1Gamal有简单的离散对数算法,并且这些快速算法的程序代码都已经很成熟,仍采用“结合代码讲解算法”的方法,从而利于学生的理解和接受。 (5)密钥管理和Hash函数(4学时)。主要内容包括密钥分配的模式;密钥传送;密钥协商;密钥托管;秘密共享以及Hash函数。这部分的重点是(t,n)门限秘密分享方案。需要讲清楚多项式插值公式。

(6)数字签名和杂凑函数(4学时)。内容包括:数字签名的基本概念;RSA数字签名方案;E1一Gamal数字签名;Schnorr数字签名;数字签名标准(DSS)和椭圆曲线上的数字签名方案。本部分目的是介绍数字签名的原理和各种常见的基本算法。涉及的数学基础与公钥密码相同。课堂实例教学过程中进行现场演示数字签名的使用。另外,可以结合不同的应用环境,给学生多介绍不同的数字签名,如代理签名、盲签名、群签名等等,以更好地理解签名的认证作用,同时也可以让学生了解该研究方向的前沿知识。

(7)身份识别(2学时)。身份识别的概念;强调身份识别;身份识别协议;本部分目的是介绍身份识别的基本思想和常见协议。具体实验是:验证码的使用,使学生感受到密码学的思想其实就一直在我们身边。

(8)认证理论与技术(2学时)。认证模型;认证常见的攻击和对策;认证协议;Kerberos系统。本部分目的:介绍常见的认证攻击、对策和具体实例。要求学生比较各种协议的优缺点。

2.2实践教学与毕业设计

密码学是信息安全的基础理论课程,同时又是一门实践性很强的学科。在实践教学方面,主要是以实验和课程设计为主,其目的是让学生了解各种密码算法的设计和实现,通过编程实现相应的密码算法,深入理解密码算法的步骤、设计思想,以及每一步对效率的影响。这其中尤其要求学生注意实际实现算法和理论算法之间的差距所在,以及在编程实现中应该注意的问题。

我校的实践教学分为以下四个实验环节:

实验一:Euclid算法实验(2学时);

实验二:DES算法实验(4学时);

实验三:RSA算法实验(3学时);

实验四:Difie―Hellman密钥交换算法实验(3学时)。

这些基础实验环节的实现过程,主要采用的是“一题一验收”的方法。对于每个题目而言,学生在进行实验之前都必须提前交好预习报告;在实验完成之后,统一检查,并形成验证结果报告。对于工作量相对较多的实验(二),笔者将学生分成4人一小组(和教学环节的小组是同一组),自由分工合作完成同一个实验。这样既提高了学生密码学的知识热情,也培养了学生的团体协作精神以及掌握软件开发知识的兴趣。在验收实验结果时,要求每组选出一个主答辩人进行答辩,而且还抽查小组其他成员在设计中的具体分工。最后根据理论课表现和实验设计成绩综合评定学生成绩。这种方法模拟了今后学生毕业后工作的模式,让学生提前充分体验,以做好应对以后工作的挑战。

3课程考核

既然密码学是一门专业选修课,这样就有利于我们能够采用灵活多样的考核方式来对学生进行考核。我校这门课程的考核体系大体可分为这样几个部分:实践环节(30%),科研能力(撰写论文或报告情况)(20%),平时作业(10%),期末考试(40%)。我们通过这种方法全方位考察学生学习的综合水平,从而带动了学生整体素质的进一步提高。

4小结

本文针对本科现代密码学课程的特点,结合我校信息与计算科学专业教学的实际,讨论了本课程的教学方法问题:首先分析了密码学课程的内容和特点;其次从知识体系、实践环节、考核方式等几个方面对教学方法和课时安排进行了探讨和设计,并将其应用到我校密码学课程的实际教学中,取得了较好的教学效果,为同行提供了一定的可参考价值。

本科类院校密码学实践课程教学研究论文 篇三

针对密码学课程的现状,以及出现此状况的原因进行了深入的研究与分析后,在此基础上,本文针对本校计算机科学与技术专业开设的密码学课程进行了一系列的改革,取得了一定的成效。其改革的内容主要为:

1)密码学的核心教学内容由密码算法组成,对这些密码学算法的理解和分析是课堂教学的重点。因此,为了实现使学生对各类算法本质的深入理解,要求学生用自己熟悉的高级程序设计语言编程实现经典密码学算法,关键部分的程序代码,可布置作业,让学生编程实现。网络上有很多经典密码学算法的代码资源,在讲解算法的过程中,可以提醒学生注意对这些资源的理解和借鉴。

2)组织课题组或兴趣小组,吸引更多的学生参加,最大化激发学生的兴趣,并大力支持学生创新活动。选择优秀本科生进入课题组,是研究型大学培养学生的一种重要方式。同时要求教师在授课过程中,将前沿技术问题适时加入到授课内容之中,鼓励学生进行创新思维,并为其提供必要的经费、实验环境,如建立创新实验室、实训大本营等。

3)结合课程内容,由学生参加制作密码算法教学演示系统,并可延伸到毕业设计。在编写完成密码算法后,利用演示系统分步实现密码算法的过程,使学生更深入、更细致地理解和掌握密码算法的实质。

4总结

信息安全作为一门新兴专业,信息安全类课程的基础理论体系仍不完善,目前还没有与密码学相适应的课时适中,内容合理的标准化实验教材。因此下一步工作意在开展标准化实验教材的编写工作,以配合理论教学。另外课程网络资源的建设与更新,积极鼓励学校与企业开展项目合作,加强与国内外的高校、研究机构的交流,也是值得努力的方向。

基于现代密码学的加密算法验证系统的设计与实现的论文 篇四

基于现代密码学的加密算法验证系统的设计与实现的论文

摘要:针对现代密码学课程中理论与实践存在的差距,特意设计并开发了此款加密算法验证系统。本系统以AES、RSA、RC4、IDEA等几个经典的加密算法为例,采用JAVA技术体系与SWING界面元素开发,保证跨平台性与良好的用户体验,通俗易懂地展示了现代密码学理论魅力。本系统各个版块保持相对独立,每个版块侧重特定加密算法,提供一个以算法为基本模块的流程验证系统。实践证明,使用此系统有利于学生深刻剖析算法原理过程,从而加深理论理解。

关键词:现代密码学;AES;RSA;RC4;IDEA;验证系统;EAVS

1引言

现代密码学理论是安全类本科专业极其重要的一门专业课,但由于密码理论本身的抽象性特点,导致教学过程中易出现理论与实践脱节,理论概念模棱两可的情况。目前各个高校信息安全教学主要分为两个方向:一个是数学系的信息安全,主要研究密码学数学基础,偏重理论;二是计算机系的信息安全,主要研究安全编程技术,偏重实践。随着研究的深入,我们发现两者没有一个很好的平台联系起来,导致学生知识掌握不全面,不能适应工作和深层次科研的需求。

2密码算法的选择

为了深入结合本科教学培养方案,特选取几个经典的加密算法:AES、RSA、RC4、IDEA。

2.1AES算法

高级加密标准,又称高级加密标准Rijndael加密法,属于经典的`现代加密算法,是美国联邦政府采用的一种区块加密标准。由于此算法为对称加密算法,故通常用来加解密,用来替代原先的DES,已经被广泛使用。

AES很好地融合了混淆与扩散,因为信息的内容是以128位长度的分组为加密单元的。加密密钥长度有128,192或256位等多种选择。

AES算法加密过程:密钥扩展→初始轮→重复轮→最终轮

2.2RSA算法

1977年Rivest,Shamir和Adleman提出了RSA公钥算法,它是应用最广泛的公钥密码系统。不仅可以用于信息的加解密,还可用于数字签名。该算法为非对称加密算法,其理论基础是大整数因数分解问题。

c.计算整数

d.将整数c转换成密文信息

e.将密文信息发送给A

2.3RC4算法

RC4是RonRivest在1987年为RSA数据安全公司开发的可变密钥长度的序列密码,广泛应用于商业密码产品中。RC4是一种序列密码,面向字节流。用从1到256个字节(8到2048位)的可变长度密钥初始化一个256个字节的状态矢量S,S的元素记为S[0],S[1],…,S[255],从始至终置换后的S包含从0到255的所有8比特数。

2.4IDEA算法

IDEA是80年代提出的“过渡性”的“postDES”算法,它在1990年正式公布并在以后得到增强,是一种对称密码算法。这种算法是在DES算法的基础上发展出来的,类似于三重DES,和DES一样IDEA也是属于对称密钥算法。IDEA的密钥为128位,这么长的密钥在今后若干年内应该是安全的。不过IDEA中有大量弱密钥,并且难以直接扩展到128位块。

3EAVS的体系结构

3.1EAVS的实现结构

4系统实现的关键技术

5系统运行实例

6总结

6.1本文在对现代密码学基础算法理论深入研究的基础上,针对目前课题教学中理论与实践、抽象与具体中存在的不足,详细论述了一种沟通理论与实践的经典密码算法验证系统。

6.2基于C/S的整体系统,可视化的UI使得系统具有良好的交互性。用户通过客户端图像化操作,可以细致了解密码算法的加密解密流程,并将中间结果反馈给用户,加深对理论知识的全面理解。

6.3本系统目前只实现了一些经典算法,实际应用于整体课堂教学仍存在不足,下一步须要丰富算法模块,使其形成密码学整体实践验证体系。

参考文献:

[1][美]加内特,吴世忠等。密码学导引[M].北京:机械工业出版社,.

[2]李杰凤等。基于Linux的操作系统实验平台的设计与实现[D].计算技术与自动化,2010.

[3][美]旋奈尔,吴世忠等。应用密码学协议。算法与C源程序[M].北京:机械工业出版社,2003.

[4]李继国,余纯武等。信息安全数学基础[M].武汉:武汉大学出版社,.

信息安全专业中密码学课程的教学研究论文 篇五

信息安全专业中密码学课程的教学研究论文

摘要:密码学作为一门数学、计算机科学与通信的交叉学科,是信息安全专业的核心课程,也是数学在信息科学中的重要应用。该文从密码学的特点出发,对密码学课程目前所存在的问题进行分析,并从教材选择、理论教学和实验教学的角度给出自己的几点建议。

关键词:密码学;信息安全;理论教学;实验教学;教学方法

中图分类号:G642.3文献标识码:A文章编号:1009-304426-0138-02

随着计算机网络的广泛应用和深入发展,电子商务和电子政务以及网络银行和各种移动支付已经成为人们生活的一部分。在方便人们生活的同时,也带来越来越多的信息安全问题。因此,信息安全受到社会各界的高度重视,已成为信息社会急需解决的问题。密码技术作为信息安全的核心技术,获得越来越多的关注。密码学已成为各类高校信息安全专业的核心课程。目前,我国有80多所高校开设信息安全专业,100多所高校开设密码学课程[1]。由于密码学是一门集数学,计算机科学与通信科学等于一身的交叉学科,不同专业、不同学科,在教材的选择、教学内容以及教学方法等诸多方面的认识很难统一,给密码学课程的教学造成诸多困难,同时也是密码学课程教学中值得关注和探讨的问题。

1密码学课程的特点

1)密码学所涉及的知识面广,数学基础要求高。密码学课程前期需要学习信息论、计算复杂度和一些数学知识[2]。其中数学除高等数学和线性代数以外,还包括数论、抽象代数、代数编码、概率论、有限域等相关内容,这些数学知识的难度也相对较大。

2)理论教学和实验教学的侧重点难以把握。由于密码学是一门交叉学科,对于不同专业的学生,学习的侧重点也是不一样的。例如数学科学学院应用数学专业的学生,大多数侧重理论教学,主要讲授密码算法的理论计算,对数学基础要求比较高。而对于计算机学院信息安全专业的学生,又是以实验教学为主,对编程语言和计算复杂度要求较高。

3)密码学课程本身所涉及的内容较多,学习难度大。密码学的主要内容包括古典密码、对称密码、公钥密码、哈希函数、数字签名、密钥管理、密码协议等。古典密码与对称密码要求学生对置换、代换、有限域方面要深入理解与掌握;公钥密码、数字签名对数论、概率论方面要求又比较高。对于其他的内容,主要是一些密码应用等,则要求灵活使用公钥密码、数字签名、哈希函数等。

4)密码学知识更新速度快。自从1978年麻省理工学院的Rivest、Shamir和Adleman三人提出RSA公钥密码算法以来,密码学家又提出Rabin、Elgamal、ECC、NTRU等经典的公钥密码体制。近年来,由于其他学科的进步与发展,又出现一些新的密码技术,如量子密码、混沌密码、DNA密码等。

2密码学课程所存在的问题以及解决方法

2.1教材选择

密码学教材种类繁多,而作者编写教材的侧重点也不相同,有的侧重于密码算法的介绍,有的侧重于密码技术的应用。不同学科专业学生的基础不同,在选择教材方面也有所差异,并且前置基础课程与培养目标也存在差异,所以选择教材的时候要充分考虑前置课程的安排和培养目标的设置。对于理科专业,如数学专业,应该选用理论性较强的教材,而对于工科专业,如通信专业,信息安全专业,应该选择实践性较强的教材。

2.2理论教学

目前大多数高校的密码学教学是以理论讲授为主,配合多媒体演示。理论教学是密码教学的主要手段。而密码学是一门交叉性很强的学科,课程所涉及的内容很多,各个知识点之间既相互独立又联系紧密。面对信息安全专业密码学课程这些特点,如何转变教学理念、创新教学思路、找准教学放方法,是密码学课程理论教学关键。

2.2.1教学理念

密码学课程内容多,算法的逻辑推理性强,学生难以掌握所有的算法。密码学课程的教学理念不应该是让学生记住密码算法,而是培养学生正确的密码学思维方式,使学生理解密码学的设计思想。如:分组密码算法的设计思路是使用置换密码与代换密码的组合,利用迭代的方式产生,在设计的过程中要满足混淆与扩散原则;公钥密码体制的设计则是按照形式化的定义、精确的安全假设与严格的安全性证明三个原则来设计。为实现这个教学目标,需要在各章节详细介绍少量经典的密码算法,使学生了解每一步算法的来龙去脉与密码学家设计密码算法的思路,这就要求老师对密码学所涉及的内容融会贯通,并且深刻理解密码学的设计思路与精髓。

2.2.2教学思路

对于主流的密码学教材,主要内容一般包括古典密码、对称密码、公钥密码、哈希函数、数字签名、密钥管理、密码协议等[3]。这些内容表面上看起来是松散的,实际上是紧密相连的要使学生能够清晰地理解并掌握这些内容,首先要有明确的教学思路。密码技术是信息安全的核心技术,能够实现消息的保密性、完整性、认证性、不可否认性等安全属性,这些安全属性是整个密码学知识体系发展的出发点和归宿。可以按照这个思路建立密码学知识结构的基本框架模型,然后进行讲授。

2.2.3教学方法

传统的教学方式是老师在讲台上讲,学生在下面听、记笔记。这种方式只能让学生记住所讲授的密码算法,而无法使学生理解密码学的思想。对于不同的教学内容应该采用不同的教学方法,如互动启发式、小组讨论式等方法,这些方法可以让学生主动参与到教学活动中[4]。还要留给学生充分的思考空间和时间,让学生在思考的过程中形成主动探索、分析问题和寻求解决问题方法的习惯。

1)互动启发式教学。互动教学方法是大多数课程所讨论并采用的教学方法,可以让学生参与到问题的解决过程中。孔子曰:不愤不启,不悱不发,强调的就是学习的启发式教学。启发式教学的'关键是调动学生的学习积极性,激发学生的学习兴趣。很好地运用互动启发式教学方法,可以培养学生分析问题、解决问题的能力,通过经历问题的解决过程,激发学生的自主学习热情,提高学习兴趣。例如,在讲授序列密码时,讲到序列密码的安全性是由種子密钥所产生密钥序列的性质决定的,可以通过互动启发式方法,让学生思考:密钥序列具有何种性质才能保证安全性?是否满足随机性和不可预测性就安全了?密钥序列和种子密钥之间有什么关系?通过解决问题,使学生理解序列密码的设计思想。

2)小组讨论式教学。小组讨论式教学方法可以开拓学生的思维,提高学生的创新能力,使学生尝试从不同的角度与观点来解决问题,而且还可以培养团队合作能力。密码学对学生而言是陌生的,而密码思想更是学生所欠缺的。通过小组讨论,能够使学生从自身角度思考密码算法满足安全性的条件,以及明文、密文与密钥之间的关系,密文统计特性应满足的概率分布等问题。通过小组讨论并不一定能达到完全解决问题的目的,但是这种方法极大的开拓学生的思维,提高学生的创新能力,并且可以使學生深刻理解密码学的设计思想。

2.3实验教学

密码技术是解决信息安全问题的核心技术,密码学的特点决定它是一门实践性很强的课程。实验教学环节能够使学生在理解算法原理的基础上进行程序设计,并根据需要进一步进行综合设计,提高学生的综合应用能力。目前,在密码学课程的实验教学方面,还存在密码实验工具选择不合理与密码实验项目类型不明确的问题。

1)密码实验工具的选择。密码实验工具一般包括密码分析软件、密码实验教学软件、密码设计软件、密码算法的代码库等。在密码实验教学之前要确定密码实验的工具。当前,密码学的实验教学中大都要求学生运用计算机语言实现一些经典的密码算法,而密码学实验教学的目的是加强学生对密码算法的理解,以及掌握密码算法在信息安全中的应用,不是简单地锻炼学生的编程能力,这种做法很难提高学生的综合素质。密码学课程的实验教学应根据实验要求选择密码实验工具,才能体现密码学实验教学的目标。比如对于古典密码算法,这些密码算法已经被破译,对于学生来说只起到一个借鉴的作用,因此可以选择具有验证和分析作用的密码工具。CAP4软件就是一款合适的密码分析软件。对于DES,AES等对称密码算法,其加密流程比较复杂,学生难以理解。这时可以选择具有可视化功能的密码工具,CrypTool的可视化演示功能能够使学生更好的理解加解密运算的每一个流程。对于算法设计,不能只把实验项目给学生之后,让学生去编写代码。应该引导学生使用密码算法库,例如OpenSSL、Miracl、Boten,NTL等[5]。

2)密码实验项目与类型的确定。实验项目类型一般分为演示或验证型、设计或综合型、研究或创新型三个层次。合理安排实验项目类型可以加深对密码算法的理解以及提高创新能力。目前,多数高校的密码学实验项目类型都是简单的验证,老师在教师机演示,学生在学生机重新验证一遍。或者项目类型都是设计型,老师把实验项目发给学生,让学生自己编程。这两种简单的方式都不能很好地提高学生的综合能力。因此,密码学的实验类型要由实验项目来确定。安排密码实验项目时,应该由浅入深,首先安排简单的验证项目,比如古典密码算法,其次安排综合型项目,如RSA的实现等,最后安排研究型项目。研究型项目由老师确定一个具有新颖性和创新性的实验项目范围,由学生根据兴趣自主选题。研究型项目选题可以依托学科竞赛来确定,比如全国大学生信息安全竞赛等。

3结束语

密码技术是信息安全的核心技术,密码学也是信息安全专业的核心课程,研究密码学课程的理论与实验教学有着重要的意义。在信息安全专业密码学理论与实验课程,以及密码学前置课程的多年教学实践的基础上,结合信息安全竞赛的一些经验,针对信息安全专业密码学教学在教材选择、教学理论和实验教学方面存在的问题,从教学理念、教学思路和教学方法三个方面给出教学改进方案,教学实践表明这些改进方案能够取得更好教学效果。

参考文献:

[1] 王后珍,张焕国。 密码学课程建设及教学方法探讨[J]. 高教学刊,(7):79-79.

[2] 丁勇。 信息与计算科学专业密码学教学研究[J].桂林电子科技大学学报,,28(2):131-133.

[3] 李梦东。 《密码学》课程设置与教学方法探究[J].北京电子科技学院学报,,15(3):61-66.

[4] 贾伟峰,杨礼波。 密码学的课程特点及教学方法探讨[J]. 华北水利水电学报:社科版,,26(3):169-170.

[5] 申丽君,王金双,陈融,等。CrypTool在密码学教学中的应用[J]. 计算机工程与科学,,36(A1):208-211.

本科类院校密码学实践课程教学研究论文 篇六

摘要:密码学是信息科学类信息安全及其相关专业的一门十分重要的专业基础课。该文以本科类院校的密码学课程教学为背景,就密码学课程在实践教学中存在的若干问题,进行深入研究与分析,并提出了对应的解决方案,在提升学生的专业学习兴趣和改善实践类课程的教学效果方面,提供了一定的参考。

关键词:密码学;实践课程;教学改革;演示系统

1引言

信息安全是近年来发展起来的一门新兴学科,它与计算机科学与技术、通信工程、信息计算等学科相融,是一门综合性要求较高的学科。密码学不管是作为信息安全专业的专业基础课程,还是计算机科学与技术专业的重要选修课程,都有着十分重要的学科地位。随着计算机网络的普及,密码学的应用也日益广泛,从研究领域扩展到了电子政务、电子商务等应用领域。因此,除需在本科院校的计算机、通信等相关专业开设密码学的理论教学以外,开展其相应的实践课程教学更是十分必要。

本科类院校密码学实践课程教学研究论文 篇七

由于密码学课程的教学内容重点是对各种流行的密码算法进行介绍,因此,在教学中,理论上的知识安排较多。由于课程本身内容的综合性,仅仅靠结合课堂的理论教学内容,学生难将理论知识与实际应用进行连接。主要面临的困难有:

1)不知如何用所学理论知识来解决实际问题,并且遇到实际问题时,没有好的解决方案,缺乏指导。

2)受到硬件、软件、环境等因素的制约。

3)对纯理论知识的学习缺乏兴趣。

通过针对密码学教学情况的调查研究,发现学生在学习密码学课程时的积极性普遍不高,对纯理论教学,或者少量的实践教学模式多数持有异议。

分析其现象的主要原因有以下几个方面:

1)教学方式多样性不够。主要是课堂教学讲授,以多媒体演示或者板书为主。而密码学是一门实践性非常强的课程,要对其内容真正理解需要结合实际的应用才行,以往的教学模式无法实现这一点,因此无法得到学生的认同。

2)实践课程安排不合理。在密码学课程的`安排上,有实践课程的安排,也注意了理论课程和实践课程的分配,但是对实践课程的实验安排存在不合理现象。比如对密码算法的选择不合理,除了某些经典算法外,不能适时的安排一些新型的密码算法,内容上无法与时俱进。

3)实验设置的难易程度不合理。在实验课程的安排中,在实验内容的设置上,实现难度较大,在有限的实验时间里,学生无法轻松地,甚至无法完成相应的实验,从而使学生对实验失去信心,继而不愿参与到实验中。

与英语 关的两个密码学小知识 篇八

首先说说字母概率。我们随便找一个英语单词,比如cat,将每个字母向后移动一位,cat变成dbu,将每个字母向后移动两位,cat变成ecv,等等,这就是一种最原始、最简单的加密方法,19世纪以前曾在欧洲广泛使用。对于这种加密电文,我们只要知道英语字母的概率(probability),就可以很容易地破译出来。什么是字母概率呢?您可以找一篇英文文章,仔细观察一下,就会发现,字母e出现的次数最多,大多数单词中都包含它,因而我们说字母e的概率最高,与此相反,字母q出现的次数最少,只有少数单词中包含它,因而我们说字母q的概率最低。下面是英语字母的概率表,概率值由高到低排列。

e(57) a(43) r(39) i(38) o(37) t(35) n(34) s(29) l(28) c(23) u(19) d(17) p(16) m(15) h(15) g(13) b(11) f(9) y(9) w(7) k(6) v(5) x(1) z(1) j(1) q(1)

有了这个字母概率表,我们可以看看加密电文中,哪个字母出现的次数最多,假如h出现的次数最多,那我们可以断定h就是e,原文的每个字母都向后移动了三位(e-f-g-h),我们只要将每个字母向前移动三位,即可看到明文。

下面再说说单词概率。如果我们不采用上面这种字母移位的加密方法,而是用胡编乱造的单词,代替真正的英语单词,比如用tnqkv代替the,用hxdsj代替and,等等,这也是一种19世纪以前欧洲常用的加密方法。对于这种加密电文,我们必须知道英语单词的概率,也就是在一般性的英语文章中,哪些单词出现的次数最多。下面是英语常用单词的概率表,概率值由高到低排列。

the - of - and - a - to - in - is - that - it - was - he - for - as - on - with - his - be - at - you - i - are - this - by - from - had - have - they - not - or - one

有了这个单词概率表,我们可以看看加密电文中,哪个(胡编乱造的)单词出现的次数最多,假如tnqkv出现的次数最多,那我们可以断定tnqkv就是the。利用这种方法,可以将加密电文中最常用的冠词、介词、连词、代词、动词等破译出来,但破译整篇加密电文还不可能,需要配合其它方法。

当然,这里介绍的只是最基础的密码学知识,现在已经很少有这样简单的加密电文了,但这些基础知识,是我们掌握高级知识的基础,所以我希望这个帖子能够引起您的兴趣。

读书破万卷下笔如有神,以上就是t7t8美文号为大家带来的8篇《密码学论文》,希望可以对您的写作有一定的参考作用,更多精彩的范文样本、模板格式尽在t7t8美文号。

转载请备注原文地址:https://www.t7t8.net/xindetihui/885950.html
移动端网站原文地址:https://m.t7t8.net/xindetihui/885950.html