密码学网络安全论文优秀10篇

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

密码学网络安全论文 篇1

1. 引言

随着国家网络信息化建设的飞速发展,越来越多的人通过Internet网络来学习与工作,但是,由于因特网的全球性,开放性。无缝连通性,共享性和动态发展,任何人都可以自由的介入,使得人们在享受网络提供的更加开放的空间和丰富资源的同时,也面临着前所未有的网络安全的威胁。愈演愈烈的黑客攻击事件以及非法信息的不断蔓延、网络病毒的爆发、邮件蠕虫的扩散,也给网络蒙上了阴影。因此,网络安全问题已逐渐成为世人关注的社会问题。

2. 密码学的涵义和特点

密码学是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。

密码学的基本要素是加密算法和密钥管理,密码就是一组含有参数k的变换E。设已知信息m,通过变换E得到密文c。即c=Ek(m)这个过程称之为加密,参数k称为密钥。不是所有含参数k的变换都可 从密文c恢复明文m的过程称之为解密。解密算法D是加密算法E的逆运算,解密算法也是含参数k的变换。

密码体制从原理上可分为两大类,即单钥体制和双钥体制。单钥体制的加密密钥k和解密密钥k相同,采用双钥体制的每个用户都有一对选定的密钥:一个是可以公开的,称为公钥;另一个则是秘密的,称为私钥。

3. 密码学如何促进网络安全(里面可包含几个小点)

密码学是计算机网络安全的基础,计算机网络与分布式系统的安全包含两个主要内容:保密性――即防止非法地获悉数据;完整性――即防止非法地修改数据,要想解决这些问题,就需要用到现代密码学。

下面就为大家介绍密码学在网络安全中的常见应用。

3.1 对称加密方式

对称密码算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。只要通信需要保密,密钥就必须保密。最具有代表性是AES对称密码体制。

AES算法概要:

AES的设计原则:能够抵御已知攻击,硬件实现容易且速度快,设计简单。

3.2 非对称加密方式

在非对称加密体系中,密钥被分解为一对(即公开密钥和私有密钥)。公开密钥用于加密,私有密钥用于解密,私有密钥只能由生成密钥的双方掌握,公开密钥可公布给大家,但它只对应于生成密钥的那方。非对称加密方式可以使通信双方无须事先交换密钥就可以建立安全通信,这种加密方式广泛应用于身份认证、数字签名等信息交换领域。非对称加密体系一般是建立在某些已知的数学难题之上,是计算机复杂性理论发展的必然结果。最具有代表性是RSA公钥密码体制。

RSA算法是Rivest、Shamir和Adleman于t977年提出的第一个完善的公钥密码体制,其安全性是基于分解大整数的困难性。在RSA体制中使用了这样一个基本事实:到目前为止,无法找到一个有效的算法来分解两大素数之积。

RSA算法概要:

1:Bob选择保密的素数p和q,并计算n=pq;2:Bob通过gcd(e,(p-1)(q-1))=1来选择e;3:Bob通过de=1(mod(p-1)(q-1))来计算d;4:Bob将n和e设为公开的,p、q、d设为秘密的;5:Alice将m加密为c=me(modn),并将c发送给Bob);6:Bob通过计算m=cd(modn)解密。

3.3 数字签名方式:Digital Signature

传统签名的基本特点有:(1)签名是可信的:能与被签的文件在物理上不可分割;(2)签名是不可抵赖的:签名者不能否认自己的签名;(3)签名不能被伪造:除了合法者外,其他任何人不能伪造其签名;(4)签名是不可复制的:对一个消息的签名不能通过复制的方式变为另外一个消息的签名;(5)签名是不可改变的:经签名的消息不能被篡改;(6)容易被验证。而数字签名是传统签名的数字化,它具有:(1)能与所签文件“绑定”;(2)签名者不能否认自己的签名:(3)容易被自动验证:(4)签名不能被伪造等特点。

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

【文章标题】: '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

序列号:5BC6E01B6C7D34455FDB584A6B5352187CF9ECCB29FD28E4FFFF3FB33D4A6B27191285FFB23451FA9DDA95EA44909D2B9D54BBC77841F668CD9F6F3BC

密码学网络安全论文 篇3

威胁网络安全的主要因素

数据库管理系统的不安全

数据库管理系统是基于分级管理的理念而建立,本身就存在缺陷。因此,由于数据库的不安全因素的存在就会将用户上网浏览的痕迹泄漏,用户在网上存储和浏览的信息,通过这些用户的账号,密码都会被泄漏,这样就会大大威胁到用户的财产隐私安全。

网络中存在的不安全

用户可以通过网络自由发布和获取各类信息,因此,网络的威胁也来自方方面面。这些威胁包括传输线的攻击及网络协议的攻击以及对计算机软件或硬件的攻击。在这些威胁中最主要的是在计算机协议中存在的不安全性因素,计算机协议主要包括: FTP、IP/TCP协议、NFS等协议,这些协议中如果存在漏洞网络入侵者就能够根据这些漏洞搜索用户名,可以猜测到机器密码口令,攻击计算机防火墙。

计算机操作系统存在的不安全

计算机的整个支撑软件是它的操作系统,电脑中的所有程序运行都靠支撑软件为其提供环境。一旦网络入侵者控制了操作系统,那么用户口令就会被泄露,用户在各个程序中残留的信息就会被入侵者截取。另外,如果计算机的系统掌管了内存,CPU的程序存在漏洞,在这种情况下通过这些漏洞入侵者就可以使得服务器或计算机瘫痪。如果在安装程序的过程中出现漏洞,那么用户加载、上传的文件就会被网络入侵者通过间谍程序监视。这是因为这些不安全的程序,才让入侵者有机可趁,所以用户应该尽量避免使用这些不了解的软件。除此之外,系统还能够对守护进程进行远程调用,这些都是网络入侵者可以利用的薄弱环节。

密码技术在网络安全中的运用

数据加密工具的运用

第一种是硬件加密工具,它是在被用在计算机USB接口或并行口的加密工具,它可以在使用过程中对数据和软件进行加密,能够对用户的信息、信息安全及知识产权等进行有效的保护。

第二种是光盘加密工具,这种工具可以修改镜像文件的可视化度,对光盘中的镜像文件进行隐藏,放大普通文件,改变文件目录的性质,以此来对光盘中的隐私信息和机密文件起到保护作用,对光盘进行加密操作简单,用户使用起来比较方便。

第三种是解压压缩包密码,用户一般都会采用压缩包的形式传输大容量的文件,使用最频繁的两种压缩包是RAR和ZIP,这两种压缩包软件都可以进行解压密码设置,即需要有密码才能对文件进行解压,从而获取压缩包内的信息,这样对于一些重要文件,就避免了第三方窃取信息的可能性。

身份识别

保护数据系统和网络系统的安全往往都是通过识别用户身份来实现的。比如银行的自动取款机只有识别正确的持卡账号才能实现吐钞,在安全地带对于出入和放行的人员也只有通过准确的身份识别才可以进行。当前,我们处在电子信息社会,有不少学者试图利用电子化生物识别信息,但这种技术的成本较高、准确性低且传输速度慢,因此,被认为不适合判断和读取计算机信息,在使用的时候只能辅助其他技术。而密码技术,尤其是公钥密码技术,能够对较高安全性的协议进行识别设计,这种方法受到人们的广泛关注。过去人们通过通行字来识别用户身份,但通行字短、固定、易暴露、规律性强、安全性差。现在的密码技术可以进行交互式询答,只有在密码正确的时候用户才算合法的,才能通过询答。目前已经用于身份认证的数字证书、IC 卡、一次性口令等,它们都运用了密码技术。

安全服务器

安全服务器主要针对一个局域网内部信息传输、存储的安全保密问题,其实现功能包括管理和控制局域网资源,管理局域网内部用户,以及审计和跟踪局域网中所有安全相关事件。

虚拟专用网()

虚拟专用网是通过采用数据加密技术和访问控制技术,在公共数据网络上实现两个或多个可信内部网之间的互联。构筑虚拟专用网通常都要求采用具有加密功能的防火墙或路由器,以实现数据在公传输渠道上的可信传递。

用户认证产品

在IC卡技术的日益成熟和完善的今天,IC卡被更为广泛地用于用户认证产品中,用来识别用户的有效身份和储存用户的个人私钥。同时,利用IC卡上的个人私钥与数字签名的结合技术,还可实现数字签名机制。随着模式识别技术的发展,诸如视网膜、脸部特征、指纹等高级的身份识别技术也被广泛使用,并结合数字签名等现有技术,使得对用户身份的认证和识别更趋完善。

安全操作系统

采用安全操作系统可以给计算机系统中的关键服务器提供安全运行平台,构成安全FTP服务、安全WWW服务、安全SMTP服务等,并且它能够监视各类网络安全产品,随时确保这些安全产品在运行时的自身安全。

密码技术是能够保障信息安全的一门核心技术。它是集计算机科学、数学、通信与电子等诸多学科于一身的综合性学科。密码技术不仅能够对机密性信息进行加密,而且能够完成身份验证、系统安全、数字签名等功能。因此,密码技术的运用不仅可以保证信息的机密性,而且可以保证信息的确证性和完整性,防止信息被截取、篡改和假冒,能有效保障人们生活和工作的网络安全。

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

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

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

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

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

4总结

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

离散数学的代数系统理论在密码学中的应用论文 篇5

离散数学的代数系统理论在密码学中的应用论文

【摘要】本文分析了离散数学中的代数系统理论与密码学课程之间的关系,阐述了离散数学在密码学领域的实际应用。

【关键词】离散数学;密码学;教学

一、引言

离散数学是计算机专业的基础课,为计算机专业的后续课程提供专业的数学理论基础。该课程可以全方位培养学生的抽象思维能力和解决实际问题的能力,为学生学习其它专业课程建立数学的思想。

该课程包括数理逻辑、集合论、代数系统、图论四个大部分。每个部分与数据结构,数据库,人工智能,数字逻辑,编译原理等课程都密切相关。

本文我们将阐述离散数学中的代数系统理论部分与密码学的相关性,并且分析该理论在密码学领域的若干应用。

二、代数系统理论与密码学的相关性及在密码学的应用

离散数学中的代数系统理论包括代数系统的一些基本概念、半群与独异点、群、环与域、格与布尔代数。代数系统与密码学联系非常紧密,为密码学提供非常重要的数学基础。现将代数系统理论在密码学中的若干应用列举如下:

密码学中,凯撒密码是一种最简单且最� 凯撒密码将明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文,其中固定数目的偏移量为加解密密钥。例如当偏移量为3,字母A将被替换成D,B变成E,其它的字母按此规则类推。在代数系统理论中群是一种典型的代数系统,具有封闭性、可结合性、含单位元以及每个元素都有逆元等性质。从本质上来说凯撒密码就是一个特殊的群,是建立在26个字母之上,字母与密钥进行运算的剩余模群。通过对于群理论的学习可以帮助学生更好的理解凯撒密码的本质。

在密码学中有一个重要的公钥加密算法的RSA,该算法是目前最安全的公钥加密算法,可以抵抗目前已知的绝大多数密码攻击。数论中的费马小定理为RSA提供数学上的安全性保证。通过对于费马小定理的原理和正确性的理解可以更好的理解RSA算法的安全性,在实际中更好地使用RSA算法。

在密码学中的椭圆曲线密码是基于椭圆曲线的一种公钥密码算法,该密码安全性基于椭圆曲线离散对数的困难性上,是一个有限域上椭圆曲线的`阿贝尔群。对于在代数系统理论中群和域的概念以及性质进行认真学习和理解可以用于椭圆曲线密码的学习。

三、离散数学在计算机其他学科中的应用

离散数学在计算机研究中的作用越来越大,计算机科学中普遍采用离散数学中的一些基本概念、基本思想、基本方法,使得计算机科学越趋完善与成熟。离散数学在计算机科学和技术中有着广泛应用,除了在上述提到的领域中发挥了重要作用外,在其他领域也有着重要的应用,如离散数学中的数理逻辑部分在计算机硬件设计中的应用尤为突出,数字逻辑作为计算机科学的一个重要理论,在很大程度上起源于离散数学的数理逻辑中的命题与逻辑演算。利用命题中各关联词的运算规律把由高低电平表示的各信号之间的运算与二进制数之间的运算联系起来,使得我们可以用数学的方法来解决电路设计问题,使得整个设计过程变得更加直观,更加系统化。集合论在计算机科学中也有广泛的应用,它为数据结构和算法分析奠定了数学基础,也为许多问题从算法角度如何加以解决提供了进行抽象和描述的一些重要方法,在软件工程和数据库中也会用到。代数结构是关于运算或计算规则的学问,在计算机科学中,代数方法被广泛应用于许多分支学科,如可计算性与计算复杂性、形式语言与自动机、密码学、网络与通信理论、程序理论和形式语义学等,格与布尔代数理论成为电子计算机硬件设计和通讯系统设计中的重要工具,图论对开关理论与逻辑设计、计算机制图、操作系统、程序设计语言的编译系统以及信息的组织与检索起重要作用,其平面图、树的研究对集成电路的布线、网络线路的铺设、网絡信息流量的分析等的实用价值显而易见。

四、结束语

通过上面的分析,我们可以发现离散数学中的代数系统理论在密码学领域的作用非常重要,离散数学不仅是计算机技术迅猛发展的支撑学科,更是提高学生逻辑思维能力、创造性思维能力以及形式化表述能力的动力源,离散数学课程所传授的思想和方法,广泛地体现在计算机科学技术及相关专业的诸领域,从科学计算到信息处理,从理论计算机科学到计算机应用技术,从计算机软件到计算机硬件,从人工智能到分布式系统,无不与离散数学密切相关。在现代计算机科学中,如果不了解离散数学的基本内容,则在计算机科学中就寸步难行了。

参考文献

[1]任勋益。离散数学与计算机安全结合改进教学[J].软件导刊,(12)

[2]刘宏月,张行进等。面向信息安全学科的离散数学教学探究[J].计算机教育,(15):23-26

[3]屈婉玲,耿素云等。离散数学[M].北京:高等教育出版社,

[4]丁宝康主编。数据库原理[M].经济科学出版社,

[5]冯登国,裴定一编著。密码学导引[M].科学出版社,

[6]魏献祝主编。高等代数[M].华东师范大学出版社,

[7]华东师范大学数学系编。概率论与数理统计教程[M].高等教育出版社,1983

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

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

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

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

中图分类号: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.

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

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

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

1引言

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

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

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

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

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

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

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

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

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

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

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

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

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

摘要:针对现代密码学课程中理论与实践存在的差距,特意设计并开发了此款加密算法验证系统。本系统以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].武汉:武汉大学出版社,.

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

首先说说字母概率。我们随便找一个英语单词,比如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。利用这种方法,可以将加密电文中最常用的冠词、介词、连词、代词、动词等破译出来,但破译整篇加密电文还不可能,需要配合其它方法。

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

一键复制全文保存为WORD
相关文章