安企神电脑监控软件 在线试用
扫码咨询客服
安企神电脑监控软件、局域网监控软件
首页
功能对比
下载中心
购买咨询
客户列表
关于安企神

双向流式加密算法

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


本文简介:由于在很多加密应用中,要求加密后的信息具有抗反向分析(例如,破解者知道明文的前若干个字符,在此基础上力图反推出密钥,并解密其余的信息)的能力。本文提出了一种等长双向流式加密算法,经此算法加密的信息,其中的数据有全局的信息相关性,具有极强的抗反向分析以及差分分析的能力。算法思路:将加解密对象看成一个Byte数组A[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]+A[i-1]) xor Key1 => A[i] ——正向遍历
(A[i]+A[i+1]) xor Key2 => A[i] ——反向遍历

让我们再仔细看看遍历过程,不难发现,在每次遍历中,都有一个位于起点的元素的值不会发生变化(正向遍历中的A[1]以及逆向遍历中的A[N])——这显然是一个切入点——于是,我们在数组的两端再各放一个“隐含元素”(A[0]、A[N+1]),也就是继前面的Key1、Key2之后的第三个和第四个密钥(它们的当然也是一个字节),让它们在两次遍历开始时分别作用于本来在遍历中不会改变的起始元素值:

A[1]+Key3 => A[1] ——正向遍历
A[N]+Key4 => A[N] ——反向遍历

现在,密钥的复杂度达到了四个字节,即32Bits,能够满足一般的加解密要求(考虑到本算法的加密对象是以字节为单位的,比起那些以定长(64Bit或者更大)数据块为加密对象的分块加密算法,本算法的密钥较之简单一些是可以理解的),为了获得更大的密钥空间,用户完全可以采用多次加密或者多层加密的方法(考虑到本算法的简单性、易实现性,执行速度较一般的分块加密算法快很多,多层嵌套加密是一个很好的选择)。需要指出的是,由于本算法每次的加密对象都是整个明文,而不是某个定长区块,因此,多次嵌套加密后,所有的密钥信息都会被密文均匀的包容(除非密钥的信息量已经大于明文的信息量——例如:用总共1024Bit的密钥加密两个字节的信息?!),而不是在固定长度的区块中相互混迭(嘿嘿,如果你用DES进行嵌套加密的话就会发生这种情况)。

在下面的算法具体代码中,我不但实现了上面的算法,还将多次加密直接封装到了加解密过程之中。

{
名称:双向流式加密算法
作者:creation_zy
时间:2004-4
备注:
适当的增大参数Times(加密次数)可以极大的提高密文的难解性,但是耗时也会成比例增加,对于长度在1KB以内的文本,建议将其控制在1-1024之内。如果采用嵌加密的话,可以进一步控制在1-8之间。
}
procedure SeqEnc(var Str:String;Key:Integer;Times:Integer);
var
i,c,n:Integer;
Key1,Key2,Key3,Key4:Byte;
begin
n:=Length(Str);
if n=0 then
exit;
Key4:=Byte(Key shr 24);
Key3:=Byte(Key shr 16);
Key2:=Byte(Key shr 8);
Key1:=Byte(Key);
for c:=Times-1 downto 0 do
begin
Str[1]:=Char(Byte(Str[1])+Key3);
for i:=2 to n do
Str[i]:=Char((Byte(Str[i-1])+Byte(Str[i])) xor Key1);
Str[n]:=Char(Byte(Str[n])+Key4);
for i:=n-1 downto 1 do
Str[i]:=Char((Byte(Str[i+1])+Byte(Str[i])) xor Key2);
end;
end;
procedure SeqDec(var Str:String;Key:Integer;Times:Integer);
var
i,c,n:Integer;
Key1,Key2,Key3,Key4:Byte;
begin
n:=Length(Str);
if n=0 then
exit;
Key4:=Byte(Key shr 24);
Key3:=Byte(Key shr 16);
Key2:=Byte(Key shr 8);
Key1:=Byte(Key);
for c:=Times-1 downto 0 do
begin
for i:=1 to n-1 do
Str[i]:=Char(Byte(Str[i]) xor Key2-Byte(Str[i+1]));
Str[n]:=Char(Byte(Str[n])-Key4);
for i:=n downto 2 do
Str[i]:=Char(Byte(Str[i]) xor Key1-Byte(Str[i-1]));
Str[1]:=Char(Byte(Str[1])-Key3);
end;
end;

使用范例:
var
Str:String;
begin
Str:='名称:双向流式加密算法 作者:creation_zy';
SeqEnc(Str,6,927506813); //用密钥927506813执行6次加密
//Str已被加密
SeqEnc(Str,2,200498157); //用密钥200498157执行2次加密
//Str已被二次加密...
SeqDec(Str,2,200498157); //用密钥200498157执行2次解密
//解密第一层...
SeqDec(Str,6,927506813); //用密钥927506813执行6次解密
//解密第二层——Str已被还原
end;

加密效果例子:
Str: "VarPool.SetValue('TableStr',Str1);"
Key: 927506813
Times: 5

以十六进制显示的加密结果:
"5FC4305B6A2ABFA0B13DD4F5253AC697092853741E12175C2886C7682EB3F41D1AF3"

将明文Str中的 "1" 替换成 "2" 之后的加密结果(以十六进制显示):
"AA57C2B25A07C30EC1C955074C62A7D2CAB10709E89D2D907210FEEC2F9DB75AEDF2"

立即下载试用

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

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

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

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

一、解决方案:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

四、总结

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


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