双向遍历加密算法_安企神电脑终端安全管理监控软件
安企神电脑监控软件 在线试用
扫码咨询客服
安企神电脑监控软件、局域网监控软件
首页
功能对比
下载中心
购买咨询
客户列表
关于安企神

双向遍历加密算法

更新时间:2022-10-28 15:42:17


本文简介:一、算法原理我们可以将明文看成一个Byte数组A[N],加解密过程就是对这个数组的运算。首先,我们从头到尾对它进行一次正向的遍历,在遍历的同时将每次遇到的元素的值与前一个元素的值叠加,并写回到数组中。即A[i]+A[i-1]=>A[i](i从2递增到N)。这样执行了遍历相加运算后,除了第一个元素之外,其余所有元素的值都会依赖于它之前的元素的值。不难发现,进行一遍遍历,只能让数组中下标大的元素

双向遍历加密算法

一、算法原理

我们可以将明文看成一个Byte数组A[N],加解密过程就是对这个数组的运算。首先,我们从头到尾对它进行一次正向的遍历,在遍历的同时将每次遇到的元素的值与前一个元素的值叠加,并写回到数组中。即A[i]+A[i-1]=>A[i](i从2递增到N)。这样执行了遍历相加运算后,除了第一个元素之外,其余所有元素的值都会依赖于它之前的元素的值。不难发现,进行一遍遍历,只能让数组中下标大的元素对下标小的元素形成依赖,而反过来则不成立,而理想中的情况应该是混合型的依赖。为了解决这个缺陷,我们可以使用反向遍历——思路与正向遍历相同,只是起止点对调了:A[i]+A[i+1]=>A[i](i从N-1递减到1)。经过了正反两次叠加遍历,数组中的每个元素的值都变得和其它所有元素的值相关了——由此,本算法也就相应的具备了抗反向分析以及差分分析的能力。

在解决了信息相关性的问题之后,接下来要做的就是将密钥置于在计算过程之中。首先,在正反遍历的求和计算过程中加入了两个长度为一个字节的密钥,分别作用于求和前和求和后的数组元素值,于是,加密过程就变成了:

正向遍历:((A[i]XOR K11)+A[i-1])XOR K12=>A[i]

反向遍历:((A[i] XOR K21)+A[i+1])XOR K22=>A[i]

虽然有了上面的两次遍历过程,但是,不难发现——在每次遍历中,都有一个位于起点的元素的值不会发生变化(正向遍历中的A[1]以及逆向遍历中的A[N])——为了避免这两个元素成为破解的切入点,必须对其进行进一步处理。于是,我们对数组两端的元素再进行一次加密,让它们在正反两次遍历开始时分别作用于相应的起始元素:

正向遍历前:((A[1] XOR K31)+K32=>A[1]

反向遍历前:((A[N] XOR K41)+K42=>A[N]

在完成了加密算法的设计后,接下来就是解密算法——上面的双向遍历叠加过程可以很容易的逆向为双向解密过程,具体见后面的代码,在此不再赘述。同时,不难发现解密密钥就是加密密钥,因此,本加密算法属于对称加密算法。

现在,密钥的复杂度达到了8个字节,即64Bits,能满足一般的加解密要求。为了获得更大的密钥空间,用户完全可以采用多次加密或者多层加密的方法。需要指出的是,由于本算法每次的加密对象都是整个明文,而不是某个定长区块,因此,多次嵌套加密后,所有的密钥信息都会被密文均匀的包容,而不是在固定长度的区块中相互混迭。

二、算法实现

下面是算法的Pascal代码实现(在此,我们使用字符串S作为加解密的对象):

procedure TwoWayEnc(var S:String;const K1,K2:Integer);

var

i,n:Integer;

K11,K12,K21,K22,K31,K32,K41,K42:Byte;

begin

n:=Length(S);

if n=0 then exit;

K11:=K1;K12:=K1 shr 8;

K21:=K1 shr 16;K22:=K1 shr 24;

K31:=K2;K32:=K2 shr 8;

K41:=K2 shr 16;K42:=K2 shr 24;

S[1]:=Char(Byte(S[1])xor K31+K32);

for i:=2 to n do

S[i]:=Char((Byte(S[i])xor K11+Byte(S[i-1]))xor K12);

S[n]:=Char(Byte(S[n])xor K41+K42);

for i:=n-1 downto 1 do

S[i]:=Char((Byte(S[i])xor K21+Byte(S[i+1]))xor K22);

end;

procedure TwoWayDec(var S:String;const K1,K2:Integer);

var

i,n:Integer;

K11,K12,K21,K22,K31,K32,K41,K42:Byte;

begin

n:=Length(S);

if n=0 then exit;

K11:=K1;K12:=K1 shr 8;

K21:=K1 shr 16;K22:=K1 shr 24;

K31:=K2;K32:=K2 shr 8;

K41:=K2 shr 16;K42:=K2 shr 24;

for i:=1 to n-1 do

S[i]:=Char((Byte(S[i])xor K22-Byte(S[i+1]))xor K21);

S[n]:=Char((Byte(S[n])-K42)xor K41);

for i:=n downto 2 do

S[i]:=Char((Byte(S[i])xor K12-Byte(S[i-1]))xor K11);

S[1]:=Char((Byte(S[1])-K32)xor K31);

end;

三、总结

通过实际测试,本算法在主频为2.0GHz的CPU上完成对10MB文本的加密及解密运算只需要0.11秒,平均每个字节的加密或解密运算量小于11个时钟周期,和得到广泛应用的加密算法相比,效率优势非常明显(大多数对称加密算法对每个字节的加解密都需要数十个时钟周期,非对称加密算法的耗时则更长)。基于这一点,完全可以进行多次加密运算以获得更高的安全性,而不会有太大的性能负担。

立即下载试用

如何加密电脑文档,电脑加密软件哪个最好用

如何加密电脑文档,电脑加密软件哪个最好用

不久前,一家知名科技公司的核心研发文件被非法泄露,给公司造成了巨大的经济损失。据调查发现,这是由一名离职员工在离职前通过非法手段获取文件,并将其出售给外部人员所致。这起事件不仅给公司带来巨大的经济损失,更暴露了公司在内部文件保护方面的漏洞。那么、企业在文件保护方面应该怎么做呢?

如何加密电脑文档,电脑加密软件哪个最好用

一、解决方案:

在如今信息高度流通、竞争激烈的商业环境中,保护企业核心数据的重要性不言而喻。我们可以使用专业数据数据加密软件对企业数据进行加密保护,通过加密软件,企业可以对重要的文件和数据进行加密,确保只有授权的人员可以访问和使用这些信息。这样可以有效减少泄露风险,保护企业核心数据的安全。

如何加密电脑文档,电脑加密软件哪个最好用

二、电脑加密软件哪个最好用?

安企神软件以其高效的加密功能和简洁的操作界面受到用户的喜爱。它支持多种加密算法,并提供了灵活的加密设置选项,能够满足不同用户的需求。

安企神软件作为一款国内知名的电脑加密软件,该具有强大的文件加密功能,可以对文件夹、文件进行全盘加密,有效防止数据泄露。

软件采用了先进的透明加密模式,日常使用无感知,但当被非法外发到企业外部电脑后,会自动变成乱码无法使用状态。

如何加密电脑文档,电脑加密软件哪个最好用

三、软件是如何加密电脑文档的

安企神软件通过以下方式加密电脑文档,从而保障数据的安全性:

1、透明无感知加密: 软件采用透明无感知加密技术,即在打开或编辑指定文件时,系统会自动对未加密的文件进行加密,对已加密的文件自动解密。用户在操作过程中无需额外操作,加密过程对用户是透明的,不会改变用户的正常工作习惯和文件使用方式。

2、精细的权限管理: 管理员可以为不同用户或用户组设置不同的文件访问权限,确保只有授权人员能够访问和使用加密文件。这有助于防止未经授权的访问和数据泄露。

3、批量加密与一键操作: 一旦加密策略配置完成,管理员可以通过安企神软件的管理端一键触发批量加密操作。软件将自动扫描企业局域网中所有电脑上的文件,并按照预设的策略进行加密。这大大提高了加密操作的效率和便捷性。

如何加密电脑文档,电脑加密软件哪个最好用

4、审计与追踪功能: 安企神软件能够实时记录文件的加密操作、访问历史以及修改、删除等操作,为管理员提供全面的审计和追踪功能。这有助于管理员及时发现异常行为并采取相应措施,确保数据的安全性。

5、防拷贝与防截图功能: 为防止文件内容被非法复制或截图,安企神软件提供防拷贝和防截图功能。这确保了即使文件被非法获取,其内容也不会被轻易泄露。

6、自动备份与恢复: 软件支持定期备份加密文件,以防数据丢失或损坏。同时,它也提供快速恢复功能,确保在紧急情况下能够迅速恢复文件,减少因数据丢失带来的损失。

如何加密电脑文档,电脑加密软件哪个最好用

四、总结

总的来说,加密电脑文档是保护数据安全的重要措施之一,安企神软件通过其强大的加密功能和丰富的安全管理特性,为用户提供了一个全面、高效的电脑文档加密解决方案。这有助于保护用户的数据安全,防止未经授权的访问和数据泄露。


本文为收集整理,文章部分观点不代表本站观点,如有侵权或其它问题请反馈客服。/cjwt/16187.html

~article_body_code~