软件安全中混合加密算法

2024-05-25 版权声明 我要投稿

软件安全中混合加密算法(精选4篇)

软件安全中混合加密算法 篇1

但是怎样才能达到使信息系统的机密信息不能够被泄漏,或者即使被窃取了也很难被识别,以及即使被识别了也极难修改,这一系列的要求已经成为IT业界的热点研究课题。

加密技术就是目前电子商务采取的基本安全技术手段。

采用信息加密技术不仅可以满足信息保密性的安全需求,而且还可以避免重要信息泄漏的安全威胁。

软件安全中混合加密算法 篇2

目前, 根据不同软件系统所应用的领域, 比较常见的加密算法有DES加密算法、RSA加密算法、Base64加密算法和维热纳尔加密算法等。针对不同算法的各自特点, 本文首先自定义一种简单的初始加密算法, 再对维热纳尔加密算法进行了优化改进, 最后结合Base64加密算法共同组成混合加密算法, 在很大程度上提高了加密算法的安全性。

2 基础加密算法

2.1 初始加密算法

初始加密算法是根据明文信息中的字符组成, 再借助字符的ASCII码, 进行相应的变换运算, 从而使原有的真实信息进行伪装, 避免被轻易的破解, 提高了系统加密保护的安全系数。

在一般的软件系统加密过程中, 组成明文信息的字符一般可以分为大写英文字母、小写英文字母、阿拉伯数字和其他特殊字符等四部分。因此, 在定义初始加密算法时, 需要根据不同种类的字符进行一定的变换运算处理。

具体如下:第一类变换:明文信息的字符是英文字母时, 明文在[A, M]范围内, 密文为明文的ASCII码值加45;明文在[N, Z]范围内, 密文为其ASCII码值加19;明文在[a, m]范围内, 密文为其ASCII码值减19;明文在[n, z]范围内, 密文为其ASCII码值减45。第二类变换:明文信息的字符是阿拉伯数字时, 明文在[0, 4]范围内, 密文等于明文乘以2再加1;明文在[5, 9]范围内, 密文等于明文乘以2再减10。第三类:当明文信息是其他特殊字符时, 密文与明文相同。

2.2 Base64加密算法

Base64加密算法主要的考虑了三个问题, 第一为是否加密;第二为加密算法复杂程度和效率;第三为如何处理传输。加密是必须的, 但是加密的主要目的不是让用户发送非常安全的Email。而是要达到一眼望去完全看不出内容就行。基于这个目的加密算法, 其复杂程度和效率也就不能太大或太低。

2.3 改进的维热纳尔加密算法

维热纳尔密码是一个非常著名的多码加密法, 主要是通过采用定义好的维热纳尔方阵, 以及自定义的密钥对明文信息进行加密。以前对于维热纳尔方阵的定义, 是通过以二十六个大写英文字母为依据, 依次循环不断改变排列顺序, 组成26×26级的方阵。为了提高此算法的复杂度, 同时提高保密性能, 本文在二十六个大写英文字母的基础之上, 再将十位阿拉伯数字随机插入到英文字母序列中, 最终构建成36×36级的改进维热纳尔方阵。

在维热纳尔加密算法中, 除了维热纳尔方阵之外, 还需要明文字符集和密钥。明文字符集主要是用来记录组成维热纳尔方阵所需要的字符。密钥是用来在对明文信息加密过程中, 指定字符所对应的加密字符。因此, 在改进的维热纳尔加密算法中, 改进维热纳尔方阵、明文字符集和密钥, 分别记为A、M和K。

改进微热纳尔方阵的明文字符集M定义为:

密钥K定义为:

因此, 针对上述定义的密钥K, 对明文信息字符串“H I S E N S E 2 011”进行加密变换, 得到的密文是“ILY4UD7K49G”。

3 混合加密算法的设计

混合加密算法是在上述基础加密算法的基础上, 由初始加密算法、改进优化的维热纳尔加密算法以及Base64加密算法共同组成的, 并且其实现的过程必须按照固定的顺序依次进行, 即先使用自己定义的初始加密算法, 再使用改进优化的维热纳尔加密算法, 最后使用Base64加密算法。以明文信息字符串“chongq”为例, 应用混合加密算法进行加密处理, 具体的实现步骤如下:

第一步:字符串“chongq”经过初始加密算法之后, 得到的加密字符串为“PUBATD”。

第二步:将改进优化的维热纳尔加密算法中的所使用的密钥K设定为:K={9, D, 7, F, 6, I}。

利用密钥K对字符串“PUBATD”继续进行加密处理, 得出的加密信息字符串为“QZF7B3”。

第三步:使用Base64加密算法继续对字符串“QZF7B3”进行加密换算, 得到加密字符串为“UVpGN0Iz”。

在计算机网络信息飞速发展的时代, 信息加密算法已经成为研究软件安全的一个重要领域, 取得了大量的研究成果。本文中所设计的混合加密算法, 是由三种加密算法组成的, 也可以在此基础之上, 再增加几种著名的加密算法或自己设计的新算法, 只有跟随时代发展而同步进步的技术才有更广阔的的应用空间和更长的生命周期。

摘要:随着计算机技术的飞速发展和Internet的广泛普及, 人们的生活正在发生着巨大变化。但是怎样才能达到使信息系统的机密信息不能够被泄漏, 或者即使被窃取了也很难被识别, 以及即使被识别了也极难修改, 这一系列的要求已经成为IT业界的热点研究课题。加密技术就是目前电子商务采取的基本安全技术手段。采用信息加密技术不仅可以满足信息保密性的安全需求, 而且还可以避免重要信息泄漏的安全威胁。因此, 加密技术是认证技术以及其它许多安全技术的基础, 也是信息安全的核心技术。

关键词:软件安全,混合加密算法

参考文献

[1]何茗.加密解密算法的实现及改进[J].西南民族大学学报 (自然科学版) .2010.1.

[2]徐荣峰.加密算法及其应用研究[D].西北工业大学.2006.

[3]刘玉珍, 王丽娜, 傅建明, 等, 译.密码编码学与网络安全原理与实践[M].第三版, 北京:电子出版社.2004.

软件安全中混合加密算法 篇3

【关键词】密码学;加密算法;网络信息安全

网络信息安全是一门涉及信息安全技术、密码技术、计算机科学、网络技术、通信技术、信息论、应用数学、数论等多种学科的综合性学科。网络安全主要指的是网络系统中的数据不会因为偶然或者恶意的因素而遭到破坏、更改、泄露,软硬件受到保护,网络服务不被中断,系统正常地连续可靠地运行。信息网络随着电子通讯技术和计算机以及互联网的飞速发展,已经成为推动社会发展的重要力量。同时各种窃密的黑客技术也得到前所未有的发展。对各类电子信息进行加密,在其传送、处理、存储以及交换过程中实施保护,是保证信息安全的有效措施。在现今的网络环境中,如果要保证重要的信息在网络上传递时,不被人窃取、伪造、篡改或窃听,那我们就必须在传输前对数据使用加密算法进行必要的加密处理。

1.加密算法

加密算法的理论与实现研究是信息安全研究的基础,如果从数学的角度来看加密算法的话,我们可以用一个函数变换C=F(M,Key)来表示。其中C是加密后获得的字符序列,表示密文;M是待加密的字符序列,代表明文;Key就是密钥,指代的是一个秘密选定的字符序列。如果想要得到明文信息,只能是有解密密钥的收信人对密文进行解密。加密算法包括很多内容,不过它的核心是密码技术。通常我们又把密码技术称为密码学,它是结合诸多学科于一身的交叉学科,比如数学、电子通讯学、计算机科学等等。密码技术除了有对信息加密的功能外,还具有维护系统安全、身份验证、数字签名等功能。

常用的加密算法主要有两种类型:一种是对称式,另外一种是非对称式。

对称式加密又叫单钥密码体制,即一个密钥同时用作加密和解密之用。在现代网络通信条件下,该体制的一个关键问题是如何将密钥安全可靠地分配给通信的双方,并且保证密钥不被泄密。但通常如果是在网络上传输加密文件,把密钥告诉对方是件冒风险的事情,无论用什么方法告之密钥都有可能被窃听。

非对称式加密我们通常也称为双钥密码体制,即在加密和解密时不使用同一个密钥,一般情况下有两个密钥——“公钥”和“私钥”。要打开加密文件,公、私钥需配对使用。“公钥”可以对外公布,而“私钥”则不能,仅限持有人自己知道。而这正是非对称式加密的优点。因为它拥有两个密钥,而“公钥”可以公开,别人知道了也无妨,收件人解密时仅需使用自己的私钥,这样就很好地规避了密钥传输安全性的风险。

2.在网络信息安全中的应用

信息安全的基本特征发挥其作用是网络信息安全最根本的保障。它的基本特征是指数据的保密性、完整性、可用性和可控性。随着因特网的发展,特别是随着网络银行、电子支付、数字货币等各种网络金融业务的兴起,人们在享受科技给生活带来便利的同时也在担心自己的账户会不会被窃取、篡改或破坏等等。保护信息安全的问题越来越受到人们的重视。解决网络信息安全的关键在于“信息加密技术”,其核心是使用加密算法对信息进行加密。一般来讲加密算法越复杂,得到密文就越安全。

2.1 在数字签名中的应用

数据加密的目的是防止信息在传输过程中被截获,但想要确定发送人的身份,这时就需要使用数据签名技术。为了进一步提高数据传输的安全性,可以配合使用这二者。最常用的非对称加密算法为RSA算法。虽然现在有很多种的非对称加密技术,但是RSA非对称加密算法算法是当前XML安全标准中规定的加密方案,所以RSA可以说是当前XML信息安全方案中非常重要的组成部分。所以,下面我们来看一下这种算法在数字签名中的工作过程:

首先要生成一个信息摘要,发送方先对发送的信息进行函数运算;然后发送方利用非对称加密算法用他的私钥,将得到的信息摘要进行数字签名;第三,通过互联网络,将摘要、被数字签名的信息和信息本身发送给接收方;第四,接收方把收到的信息进行运算,重新生成信息摘要。在这个运算当中需要使用和發送方之前相同的函数;第五,接收方用发送方提供的公钥,对收到的信息摘要进行解密;第六步,将新生成的信息摘要和解密后的信息摘要进行对比,判断信息在传送过程中有没有被修改过。

一般情况下数字签名和加密紧密结合,想要封装一个加过密且签过名的文档,可以先对文档进行签名,然后将原始文档和签名封装在一起,最后对封装后的文件进行加密。密钥分发问题、否认问题和数据完整性问题在整个封装过程中都得到了解决。

RSA签名一般是从两个方面来提供否认和数据完整性。签名者有私钥,也是唯一能产生签名的人。也就是说,签名者非否认用他的私钥对消息的签名。非否认可以提供签名者的真实身份,前提是签名用密钥和实际的个人有精确的绑定。而通过组合使用RSA算法和杂凑函数可以保障文档数据的完整性,对输入文档中的微小差异都很敏感,哪怕只是1比特的不同也会导致签名的失败。

要想保证信息传输过程中数据传输的完整性,可以利用数字签名。通过认证发送者的身份,防止信息交换过程中发生抵赖现象。根据用户个人特征进行确认的高级身份认证是一种难于伪造的、可信度较高的验证方法。

2.2 在无线网络中的应用

随着人们对无线网络安全性的不断研究,相继推出了很多的安全机制。目前主流的协议叫IEEE 802.11i,它是经过国际标准组织批准的当前安全无线协议的基础。在数据加密方面,IEEE802.11i定义了三种加密机制,分别是TKIP、CCMP和WRAP。

2.2.1 AES算法应用于CCMP中

CCMP是一种增强的数据加密封装机制,基于CC-M和AES双标准。CCMP是IEEE 802.11i标准的具体实现型式,是一种为无线局域网设计的安全协议,它的出现提高了无线网络的安全程度。CCMP加密技术中的一个重要组成部分叫MIC“信息完整性检查码”。MIC和WPA之间有这样一个公式:WPA=802.1x+EPA+MIC+TKIP。WAP是IEEE 802.11i的一个子集,核心是IEEE 802.1x和TKIP。CCMP先用CC-M数据源认证模式对消息中的负载、明文头计算出一个MIC,之后使用计数模式对负载和MIC进行加密,得到一个128bit的密匙。计数模式是这个过程的关键步骤,它的核心算法就是AES。

2.2.2 AES算法应用于WRAP中

WRAP这种加密机制是基于OCB模式的AES加密算法,WRAP是包含在802.11i安全标准中的一个加密协议。OCB用AES算法对块进行加密。这个过程中,它先将明文分成m个数据块,长度都是128bit;然后对这m个数据块进行AES加密运算和异或,一直到生成m个加密数据块后停止。然后拼接这m个加密数据块在一起,将加密数据块与MIC、重放计数器一同组成加密数据负载,完成加密明文数据。另外,在WRAP对数据处理的过程中同样主要依靠的也是AES算法。由此可见,AES作为核心算法不论是在初始时的数据加密,还是在密钥生成后的解封过程中,都起到了关键的作用,這种加密算法的应用提高了无线网络的安全性。

2.3 在电子支付中的应用

在电子支付方面,体现在AES在电子支付平台的交易安全协议和密码协议中的应用。比如,将AES应用在SSL协议中。在传输数据之前,发送方需要先通过身份认证,之后使用AES算法对实时数据加密,并用SSL安全通道发送AES密钥给接收方。最后通过互联网使用UDP协议来发送经过加密的实时数据给接收方。这样接收方在收到数据后,可以用同时接收到的AES密钥进行解密,近而得到具体的实时数据,从而保证数据的安全性和准确性。

3.结束语

计算机网络的应用对我们现代社会经济、文化等诸多方面的发展产生了很多的影响,但是网络信息安全也成为了一个阻碍网络发展和推广焦点问题。借助于现代高性能的计算机软硬件资源,将其他领域的相关技术和现有的密码学研究成果相结合,从应用的角度,继续拓展数据加密的领域和方式,从而获得更新的可靠的加密技术,是网络信息安全的发展方向。

参考文献:

[1]张金辉,郭晓彪,符鑫.AES加密算法分析及其在信息安全中的应用[J].信息网络安全,2011(5):28-36.

[2]王建川.加密算法简析[J].彭城职业大学学报,2003(05).

[3]甘佺.浅析AES加密算法[J].硅谷,2009(08).

[4]王红珍,张根耀,李竹林.AES算法及安全性研究[J].信息技术,2011(09).

[5]张秀娟.基于AES加密算法的实现与应用[J].数字技术与应用,2011(11).

软件安全中混合加密算法 篇4

现在绝大多数的共享软件都会采用注册码方式进行保护, 这种方式便于在互联网上进行交易, 而且没有额外的成本。在软件没有注册前, 一般来说都会对软件的功能、时间、次数等进行限制。软件作者构造的注册算法也不尽相同。

一般来说, 注册码保护方式都是根据机器的硬件设备 (比如利用CPU、硬盘、网卡等等设备) 的唯一编号, 然后构造算法来生成注册码, 或者利用输入的用户信息构造算法来生成注册码等。在构造注册算法时, 大多数的软件作者由于没有加密算法的基础, 所以编写出的算法相对比较简单, 保护效果不好, 很容易被解密。我们以MD5算法为例, 介绍MD5加密算法在注册保护方式中的应用。

2、MD5加密算法简介

MD (Message Digest) 5算法是一种单向散列函数算法 (也称Hash算法) , MD5算法对输入的意长度的消息 (字符) 进行运算, 产生128位散列值。由于MD5算法的复杂性和不可逆性, 在注册保护方式中应用, 就可以加大软件被解密的难度, 这样就可以更好地保护软件。

2.1 算法原理

2.1.1 数据填充

首先填充消息使数据长度恰好为一个比512的倍数小64位的数。填充方法是附一个1在消息后面, 后接所要求的多个0, 然后在其后附上64位的消息长度。这两部分的作用是让消息长度恰好位512位的整数倍, 同时确保不同的消息在填充后不同。

2.1.2 初始化变量

用到4个变量, 分别为A、B、C和D, 均为32位长。初始化为:A=0×01234567, B=0×89abcdef, C=0×fedcba98, D=0×76543210, 它们始终参与运算并形成最终的散列结果。

2.1.3 数据处理

首先定义4个辅助函数:

其中, &是与运算, |是或运算, ~是非运算, ^是异或运算。

这4轮函数是对进入主循环的512位消息分组的16个32位字分别进行如下操作:将A、B、C、D的副本a、b、c、d中的3个经F、G、H、I运算后的结果与第4个相加, 再加上32位字和一个32位字的加法常数, 并将所得之值循环左移若干位, 最后将所得结果加上a、b、c、d之一, 并回送至A、B、C、D, 由此完成一个循环。

所用的加法常数由这样一张表T[i]来定义, 其中为1至64之中的值, T[i]是i的正弦绝对值之4294967296次方的整数部分, 这样做是为了通过正弦函数和幂函数来进一步消除变换中的线性。

2.1.4 输出

当所有的512位分组都运算完毕后, A、B、C、D的级联将被输出为MD5算法的结果。

3、MD5加密算法的应用

3.1 构造算法和函数比较

构造一个注册算法, 将MD5算法引入到注册算法当中, 例如:取用户名的MD5加密算法结果的前8位, 异或用户名ASCII码值的前8位, 结果就是注册码。

在构造算法的最后就要对注册码的真假进行判断比较了, 这时最好不要用变量直接进行比较, 而是再构造一个算法, 让用户名和注册码作为变量参与计算, 利用构造的算法进行变换比较。也就是不要让“注册码=F (用户名) ”, 而是“F (注册码, 用户名) ”。

比如a为用户名, b为假注册码, 在判断比较时, 不要使用“if f (a) =b”这样的变量比较;而是最好采用if (a, b) =c这样的函数比较。变量比较也称为明码比较, 在程序运行的某一个时期, 在内存中会出现正确的注册码, 这样的话, 即使算法再复杂, 也会很容易被解密;算法比较也就是暗码比较, 不会在内存当中出现正确的注册码, 从而加大解密的难度。

3.2 用VB语言实现算法

本例用VB语言来实现, 其中DigestStrToHexStr () 函数就是MD5加密算法函数, 本例构造的窗体和注册算法如下:

本例中采用了函数比较, 而没有采用变量比较, 避免在程序执行过程中出现正确的注册码值, 增加了解密分析的难度。

4、MD5加密算法应用中的问题

MD5加密算法的特点非常明显, 很容易被发现, 如果采用MD5算法, 在数据初始化的时候必然会用到以下4个常数:

在构造注册算法时, 为了避免MD5加密算法被轻易解密, 我们可以使用其它的密码学算法来配合MD5来构造更加复杂的算法。

5、结束语

利用MD5加密算法来构造软件注册保护方式的算法, 比单纯的普通的注册算法安全性更高, 保护效果也更好, 相对更难被解密, 能够增加软件的升级周期, 更好地保障软件作者和软件厂商的利益。

参考文献

[1]段钢.加密与解密第三版。北京:电子工业出版社, 2008.

上一篇:班级庆元旦活动总结下一篇:无人送行优美散文