密码学是一门古老而深奥的学科,是研究计算机信息加密、解密及其变换的科学,是数学和计算机的交叉学科,也是一门新兴的学科[1]。早在四千年前,古埃及人就开始使用密码来保密传递消息。两千多年前,罗马国王Julius Caesar(恺撒)就开始使用目前称为“恺撒密码”的密码系统。长期以来,密码学仅在很小的范围内使用,直到20世纪40年代以后才有重大突破和发展。随着计算机网络和通信技术的发展,密码学得到前所未有的重视并迅速普及发展起来,深入到数据处理过程的各个环节。

密码学相关科学大致可以分为3个方面:密码学(Cryptology)是研究信息系统安全保密的科学;密码编码学(Cryptography)是研究对信息进行编码,实现对信息隐藏;密码分析学(Crypt analytics)是研究加密消息的破译或消息伪造。其发展经过3个阶段:

第一阶段是1949年之前,密码学是一门艺术,这阶段的研究特点是:①密码学还不是科学,而是艺术;②出现一些密码算法和加密设备,比如:转轮密码机ENIGMA;③简单的密码分析手段出现,数据的安全完全基于算法的保密。

该阶段具有代表性的事件是1883年Kerchoffs第一次明确提出了编码的原则,即加密算法应建立在算法的公开且不影响明文和密钥的安全的基础上。这个原则成为传统密码和现代密码的分界线。

第二阶段是1949-1975年,密码学成为一门独立的科学,其主要特点:数据安全基于密钥而不是算法的保密。

第三阶段是1976年以后,密码学中公钥密码学成为主要研究方向,这阶段的主要特点是:公钥密码使得发送端和接收端无密钥传输的保密通信成为可能。

本文针对密码学进行了深入研究,分析了这一领域中的两种主流加密体制以及对应的典型加密算法,通过程序开发对算法进行实现,并总结了加密技术在现实生活中的应用。

2.主流加密体制

密码算法也叫密码函数,是用于加密和解密的数学函数[2]。如果算法本身是保密的,这种算法称为受限制的算法。受限制的密码算法不能进行质量控制或标准化,但对低密级的应用来说还是很流行。

现代密码学则用密钥解决了这个问题,加、解密运算都依赖于密钥,用KE表示加密密钥,KD表示解密密钥,用C表示密文,M表示明文。

2.1对称密钥密码体制

如果KE=KD,或KE和KD可以相互推导,则加解密函数表达为:

加密:EK(M)=C;解密:DK(C)=M;整个过程:DK(EK(M))=M

这种方式称为对称密钥密码体制。对称密[文秘站-您的专属秘书!]钥密码体制的优点在于加解密速度快,安全强度高、加密算法比较简便高效、密钥简短和破译困难;便于硬件的实现和大规模使用。缺点是密钥的分配必须通过保密安全的信道,无法用来进行数字签名和抗抵赖。

2.2非对称密钥密码体制

如果加密和解密使用不同的密钥(Kp,Ks),把加密密钥公开,解密密钥保密,则加解密函数表达为: C= EKp(M);M= DKS(C);整个过程:DKS(EKp(M))=M

这种方式称为非对称密钥密码体制,或公开密钥密码体制。其优点在于极大地简化了密钥管理;密钥的分配不必保持信道的保密性,可用来签名和抗抵赖。缺点主要是加密速度慢,不便于硬件实现和大规模使用。

3.加密算法

3.1 DES算法原理

DES算法是对称密钥密码体制中的典型算法,目前,DES算法在国内POS、ATM、磁卡及智能卡、加油站等领域被广泛应用。算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密/解密[3]。Mode为加密,则用Key把数据Data加密,生成Data的密码形式作为输出结果;Mode为解密,则用Key把密码形式的数据Data解密,还原为Data的明码形式作为输出结果。

DES算法实现加密需要3个步骤,加密原理见图1。

①:变换明文。对给定的64位的明文x,首先通过一个置换IP表来重新排列x,从而构造出64位的X0,X0=IP(X)=L0R0,其中L0表示X0的前32位,R0表示X0的后32位。

②:按照规则迭代。规则为:Li=Ri-1,Ri= LiF(Ri-1,Ki),(i=1,2,3, …,16)。符号表示数学运算“异或”,F表示一种置换,由S盒置换构成,Ki是由密钥编排函数产生的比特块。

③:对L16R16利用IP-1作逆置换,就得到了密文Y0。

图1:DES加密原理

图1:DES算法原理图

DES加密过程中,有4个关键点,分别为IP置换表和IP-1逆置换表,函数F,子密钥Ki和S盒,功能具体如下:

①IP置换表和IP-1逆置换表。输入的64位数据按IP表置换进行重新组合,并把输出分为L0和R0两部分,每部分各32位。

②函数F有两个输入:32位的Ri-1和48位Ki,其中变换规则根据E位选择表,从Ri-1的32位中选取某些位,构成48位,即将32位扩展为48位。

③假设密钥为K,长度为64位,但是其中所有8的倍数位用做奇偶校验位。K的下标i的取值范围是1到16,用16轮来构造。16个子密钥是同一个64比特的密钥源=k1k2…k64循环移位产生的。

④S盒的工作原理:S盒由8张数据表组成,以6位作为输入,以4位作为输出。

DES算法自身的强度实践证明是安全可靠。而56位的密钥已显得过短,128位密钥可达到更高的保密程度。另外,DES算法中只用到64位密钥中的56位,即DES的安全性是基于除了8,16,24,…,64位外的其余56位的组合变化才得以保证的。在实际应用中,应使用这56位作为有效数据位,才能保证DES算法安全可靠。否则会留下了安全隐患。

3.2 RSA算法原理

RSA算法是非对称密钥密码体制中的应用最广泛的加密算法,也是第一个既能用于数据加密也能用于数字签名的算法[4],是一种基于大数不可能质因数分解假设的公钥体系。

RSA体制的加密过程由3个数e,d,n来实现。加密时:y=xe(mod n),即将明文x自乘e次,然后除以模数n,余数便是密文

y;解密时:x=yd(mod n),即将密文y自乘d次,然后除以模数n,余数便是明文x。 用户可将加密密钥(e,n)公开,而将解密密钥(d,n)和构成n的两个因子p、q保密。任何其他人都可以公开密钥(e,n)对该用户通信,只有掌握解密密钥的人才能解密。

①与DES算法相比,速度一直是RSA算法的缺陷,一般来说RSA算法只用于少量数据加密。

②RSA算法的安全性依赖于大数分解。分解n是最显然的攻击方法,因此,模数n应该根据具体情况选大一些。

③既能用于数据加密也能用于数字签名,被普遍认为是目前最优秀的公钥方案之一。

计算机密码学思路,密码学中加密算法的研究和实现相关推荐

  1. 建筑制图计算机辅助设计,计算机辅助设计AutoCAD建筑制图中绘制技巧研究.doc

    PAGE PAGE 1 计算机辅助设计AutoCAD建筑制图中绘制技巧研究 摘要建筑设计是一项创造性很强的工作,它的最终成果是以图纸的形式形象和直观地表达出来.AutoCAD技术与建筑设计的结合是计算 ...

  2. 计算机伦理问题案例分析,基于网络环境的案例教学在《计算机伦理学》中的实践研究...

    摘要: 在信息化浪潮及多种网络信息文化的影响下,加强信息伦理道德教育,提高大学生的职业道德修养,使他们能有效识别和履行其社会责任和道德责任,具有十分重要的意义.而案例教学法作为一种比较成熟的教学方法, ...

  3. 计算机在热处理上有何应用,计算机在热处理领域中的应用

    计算机在热处理领域中的应用 廖海洪!梁敏洁 "华北工学院 材料工程系!山西 太原 #$##%&' 摘 要(本文根据国内外有关文献提供的研究结果!总结了计算机在热处理领域的应用研究现状 ...

  4. 计算机密码学综述,计算机密码学中的混沌研究

    2003年信息通信网络技术委员会年会征文论文编号No.11 计算机密码学中的混沌研究 蒋华1赵耿1郑德玲2 (1.北京电子科技学院通信工程系,北京,100070:2.北京科技大学信息工程学院,北京,1 ...

  5. 计算机信息安全密码学研究,密码学是对信息安全各方面的研究,能够解决所有信息安全的问题。() - 试题答案网问答...

    相关题目与解析 密码学作为信息安全的关键技术,其安全目标主要包括三个非常重要的方面:保密性.完整性和可用性.()是指所有资源只能由授权方式以授权的方式进行修改,即信息未经授权不能进行改变的特性. 密码 ...

  6. 计算机多媒体就业难点,【计算机专业论文】信息技术在计算机教学中的新研究(共3002字)...

    摘要:随着时代的发展和科学技术的进步,多媒体资源在课堂中的运用范围越来越广,多媒体信息技术也因其生动直观的特点广受教师的青睐.因此,本文从中职计算机课程学习中,运用多媒体信息技术的必要性出发,探讨如何 ...

  7. 中职计算机专业课题,《中职计算机教学中激励机制的研究》课题开题报告

    <中职计算机教学中激励机制的研究>课题开题报告 江苏省海门中等专业学校主持人:宣露露 一. 课题研究的意义 "十一五"期间,我国把发展职业教育纳入国民经济和社会发展的规 ...

  8. 中职计算机专业选修课程,中职学校计算机专业选修课开设的实践与研究

    中职学校计算机专业选修课开设的实践与研究 在中职学校开设计算机专业选修课已成为中职学生技能培养和能力提升的迫切需求.计算机专 (本文共1页) 阅读全文>> 机务类专业选修课是民航院校的特色 ...

  9. 密码学 区块链中的应用专栏 【简介】

    密码学 & 区块链中的应用 By Blake chen ​ 专栏内容总览(Mindmap) ​ 目录及其组织结构 1 密码学 1.1 什么是密码学 1.2 密码学的发展阶段和简史 1.3 古典 ...

最新文章

  1. hung-yi lee_p12_深度学习简介
  2. c语言中 printf(quot;nquot;),关于C语言 printf(quot;%d\nquot;,printf(quot;%dquot;,printf(quot;%dquot;...
  3. python多线程logger_python多线程logger_Dblogger:一个Python语言实现支持多进程和多线程日志打印高效Python日志库......
  4. C语言实训作业PPT,C语言实训作业.docx
  5. “鸡肋”的百度,掉队了 BAT? | 畅言
  6. [小技巧]为Atlas AutoComplete加上滚动条
  7. java messagedigest_Java MessageDigest.getInstance返回的实例非线程安全
  8. 如何通过软件编辑自己想要的点阵图片
  9. 2021-02-15 大数据课程笔记 day26
  10. (第三天)磁盘分区----LVE逻辑卷
  11. kubelet报错:Orphaned pod “$Pod“ found, but volume paths are still present on disk
  12. 干货|Android免Root最全Hook插件(免Root Hook任意App)
  13. 苹果开发者注册设备异常记录
  14. mysql 嵌入式 稳定性_常用的嵌入式数据库的比较
  15. VMware 12 Exception 0xc0000005
  16. 你只需要做你一个让世界随之起舞的枭雄
  17. 双非本科小渣渣的字节跳动Android岗面试题分享(已拿offer,分享攒人品~)
  18. python爬虫: 使用knn算法破解猫眼动态字体反爬
  19. 支付公司如何预防和治理重复出款的风险
  20. 使用条件分布模态流进行多变量概率时序预测

热门文章

  1. 使用arcpy求取地形起伏度的最佳统计单元
  2. 浪潮信息边缘服务器测试,浪潮边缘服务器支持中国联通首批5G白盒UPF测试
  3. 酷睿i5 11400h什么水平 i5 11400h参数 i511400h相当于什么级别
  4. 西联汇款加快全球数字扩张
  5. mysql时间戳13小时_为什么存入mysql数据库中的timestamp,晚了13或14个小时
  6. 美化 cmd 和 PowerShell 的字体
  7. 出行大数据绘制的“城市星云图”是怎样的?我们还总结出了5种城市结构
  8. Java解析html文件数据
  9. Adams与Matlab的机器人联合仿真【附源文件】
  10. Ce6-Hydrazide 二氢卟吩-酰基 Ce6-PEG-Hydrazide