远程网络cad的加密算法的制作方法

文档序号:7594044阅读:211来源:国知局
专利名称:远程网络cad的加密算法的制作方法
技术领域
本发明属于编码学,密码学和计算机安全等技术领域,是一种利用魔尺编码技术实现加解密的数据处理方法及其器件.对本发明的描述,我们将使如下术语■明文具有特定含义的文本,程序,图象和声音等数据。
■密文一串看似无任何含义,但可通过某种方式得到的有意义的数据。
■密钥一不定长的随机字符串。
■加密算法在密钥控制下,将明文转化为密文的算法。
■解密算法在密钥控制下,将密文转化为明文的算法。
■密码算法在密钥控制下,将明文转化为密文,又能密文转化为明文的算法。
■熵编码无信息丢失的编码方法。
■块密码按块进行分组加解密的密码算法■流密码按比特位进行加解密的密码算法■模型一种概率统计方法。
自二战以来,美国就一直主导着密码技术的研究和应用领域,并把其高强度的密码技术列入国家精端武器类,对外则实行限长密钥控制制度.1997年,美国首先推出了用于商业系统的数据加密标准(Data Encryption Standard)DES.DES系统的设计相当完善,它首先由IBM的两位学者在1976年提出,后经美国国家安全局的修改出笼.历经密码学界十几年的攻击,尚未完全破译.在服役的十年中,DES为美国政府部门输送了大量的秘密资金,与之相关的安全产品有100种之多.1998年美国终止了DES的服役期限,并非因为它被破译了,而是因为其56比特密钥已无法抵御强大的计算能力.1998年5月,美国EFF(ElectronicFrontier Foundation)宣布,用一台价值20万美圆的专用解密机,强力攻击了56小时就找到了DES密钥,由此可见,在目前的计算能力下,低于64比特的密码体制已经不安全了。
1997年4月,美国开始征集(Advance Encryption Standard)AES的侯选者,欧洲,日本和韩国的学者也参与了竞争,这些算法有美国的HPC、MARS、RC6、SAFER+和TWOFISH;加拿大的CAST和DEAL;澳大利亚的LOKI 97;比利时的RIJNDAEL;哥斯达黎加的FROG;法国的DFC;德国的MAGENTA;日本的E2;韩国的CRYPTON以及由英国、以色列和挪威联合设计的SERPENT。这些算法都是采用分块体制和轮回迭代,分组长度为128比特,密钥长度为128/196/256比特不等。然而,限长密钥将最终导致DES的命运,即无论多优秀的设计,随计算能力的提高都会丧失安全性,从而淡出历史舞台.
本发明则采用了非分块方式的流机制且其密钥无限长。从操作上看也只是简单的算术加法和移位,因此特别适应于低成本的硬件开发。同时还能对明文做大约50%左右的压缩,增强了统计安全性,节约了存储成本,开辟了压缩与加密相结合的典范。该密码的另一个重要的优点是密文随加密环境而改变,从而大大提高了加密强度。
对本发明的描述,我们采用了如下附图附

图1显示魔尺编码与测量问题的联系附图2显示魔尺编码器的控制逻辑与流程附图3显示魔尺解码器的控制逻辑与流程附图4显示统计模型的记数逻辑与流程附图5显示魔尺加密器的控制逻辑与流程附图6显示魔尺解密器的控制逻辑与流程附图7显示自反馈魔尺加密器的控制逻辑与流程附图8显示自反馈魔尺解密器的控制逻辑与流程本发明包括算法部分和硬件设计部分,算法部分的基础是魔尺编码,如图1所示。这里所谓的正规尺就是各种刻度等距的尺,如同我们使用的米尺;只不过这里的尺无单位,且具有无限精度。所谓的变形尺则是各种刻度不等距的尺,同样具有无限精度。所谓的魔尺,不仅各种刻度不等距,其标号也是杂乱无章的。
魔尺编码过程类似于测量问题,如说明书付图1所示。任何信息可以看成
上的一个实数用正规尺测量的结果,魔尺编码则是利用魔尺测量的结果。魔尺的刻度则是根据符号的统计概率来构造的。如果统计模型足够好,魔尺编码将会有效地压缩被编码数据。如果我们不公开构造魔尺的刻度,那么编码算法就变成了一种加密过程。当然,利用变形尺编码,也可以实现数据保密;但由于没有采用乱刻度,其安全性能会有所下降。
在理论上,魔尺编码可100%逼近信息熵,因此是一种最优的编码器。实际上,由于魔尺编码涉及无限精度算术运算,具有很高的实现难度。为此,本设计提供一种新型有限精度魔尺编码算法,该编码算法只对二元符号流进行操作。实现细节如下假设A,C是二个N位无符号变量,C0,C1是两个大小为M(M<=N)比特的记数器变量。这里的魔尺是二进制的,C0和C1表征了各层刻度的划分;C是编码变量,A是魔尺区间长度变量;R是大小为1比特的混乱变量,通过它来调节刻度值的随机位置。为描述简单,我们在此采用C语言中的一些符号,!表示求反,<<=1表示左移一位,~表示二进制补,++表示累加1,^表示异或。
魔尺编码算法1.输入符号S(逻辑0或1),C0,C1和R(0或1)2.如果C0>C1,交换C0和C1的值,S=!S3.若A<=C1,循环执行a)输出C最高比特位.
b)C<<=1,A<<=1.
c)若A>~C,则A=~C+1.
4.如果R为0,则C0=A-C0,S=!S。
5.如果S=0,A=C0;否则A=A-C0,C=C+C0。
编码算法中变量A和C的初值可以任选。由于算法按比特输出,在计算过程中需要把比特流打包成字或字节,编码结束需要把变量C的所有位输出。
相应的解码算法与编码算法类似,但需要一个额外的解码变量V来存储待解码流,其长度与变量C相同。其程序列表如下
魔尺解码算法1.输入C0,C1和R(1或0)2.S=逻辑03.如果C0>C1,交换C0和C1的值,S=!S4.若A<=C1,循环执行a)C<<=1,A<<=1,V<<=1.
b)V|=读入下一比特c)若A>~C,则A=~C+1.
5.如果R为0,则C0=A-C0,S=!S。
6.如果V-C<C0,A=C0;否则A=A-C0,C+=C0,S=!S。
解码算法中没有最后的清理步,其参数的各种限制和取法必须与编码算法一致且V=0,否则解不出正确的编码流。但从上述算法不难发现,明文的长度在编码时必须保存,以便通知解码算法何时结束。
尽管上述编码算法采用了流机制,每次只能编码一个二元符号,通过多次编码也可以实现字符机制或块机制。在通常的实现中采用字符接口,为了实现该接口,需要一个结构记载编码的当前状态,这不是本发明的实质,故不多赘述。
魔尺编解码算法,需要很多控制参数,譬如C0,C1和R,对于C0和C1需要一种专门的统计算法模型来实现,才能达到压缩的目的。为此,我们需要引进两块K位统计数组,P0和P1和一个L位地址变量W,P0和P1的长度为2L,则统计算法如下模型统计算法1.输入S(0或1)2.C0=P0[W],C1=P1[W];3.如果S为0,则P0[W]++;否则P1[W]++4.W左移一位,W|=S;5.输出C0和C1为了避免0概率问题P0和P1每个单元的初值必须为1,但W的初值可以任意定义。
利用魔尺编码算法和统计模型可以很好地实现数据压缩与加密,密钥控制是用上述编码算法实现数据加密的关键。在本设计中最长密钥不限。密钥的作用是随机地初始化编码算法的统计缓冲P0和P1以及缓冲指针变量W和伪随机数发生器,因此密钥控制是在编码和解码初始化阶段完成的。加解密过程可描述如下魔尺加密算法1.用户按比特输入密钥序列K1,K2,...,Kn2.机器产生与密钥等长的随机序列R1,R2,...,Rn
3.初始化地址变量W,初始化编码算法的其他参数。
4.初始化伪随机数发生器产生R的流5.对j=1,2,...,n循环执行a)如果Kj=0;P0[W]++;否则P1[W]++b)对Kj调用模型统计算法,输出C0和C1c)在编码算法当前状态下,利用R的输出,C0和C1编码Rj.
d)利用Rj作为输入,调用模型统计算法6.在编码算法当前状态下,利用R的输出并调用模型算法依次编码所有明文比特a)在模型当前状态下,利用R的输出,取C0=P0[W]和C1=P1[W],利用魔尺编码算法编码当前明文比特b)利用当前明文比特,调用模型统计算法修改模型当前状态。
不难发现,加密算法在密钥控制下,首先编码一段随机数,从而导致一个刻度不确定的魔尺,同时也把所有编码变量初试化为随机状态。只有通过密钥才能恢复编码状态和魔尺的刻度,从而恢复明文。
注意不论是初始化还是编码过程,混乱变量R的内容由伪随机序列产生,每编码一个符号R的值都会改变。可以利用编码输出作为伪随机序列,从而产生带反馈的加密算法。
魔尺解密算法1.用户按比特输入密钥序列K1,K2,...,Kn2.初始化地址变量W,初始化解码算法的其他参数。
3.初始化伪随机数发生器产生R的流4.对j=1,2,...,n循环执行a)如果Kj=0;P0[W]++;否则P1[W]++b)对Kj调用模型统计算法,输出C0和C1c)在解码算法当前状态下,利用R的输出C0和C1,解码Rj.
d)利用Rj作为输入,调用模型统计算法。
5.在解码算法当前状态下,利用R的输出并调用模型算法依次解码所有明文a)在模型当前状态下,利用R的输出,取C0=P0[W]和C1=P1[W],利用魔尺解码算法解码当前明文比特b)利用当前明文比特,调用模型统计算法修改模型当前状态。
在上述加解密过程中使用了随机序列,在软件实现中可用鼠标事件模拟,在硬件实现中可采用密钥流比特倒置来实现。编码寄存器C和W的初值可以任选或用密钥控制,但必须保持编解码一致,否则得不到正确结果。加解密器所使用的伪随机序列必须相同。
本发明各种算法的实现需要借助于一个物理实体,该实体可能是一台PC机或者是一个专用芯片,或者是一个通讯媒体或者是一个数字信号。
图2显示了魔尺编码乘载的物理实体的结构图,这个实体至少包含8个部件,即主处理器5,输入寄存器1,混乱寄存器2,两个计数器3和4,输出缓冲6,编码寄存器7和控制寄存器8.主处理器5,至少可以完成三个功能,即寄存器加减,寄存器移位和简单逻辑判断。该实体的置动需执行如下操作1.输入寄存器1,混乱寄存器2,两个计数器3和4同时输入主处理器52.两个计数器3和4进入主处理器5的判决器,如果计数器3的值大于计数器4的值,交换二者的内容,同时倒置输入寄存器1的内容。即如果输入寄存器1的值为0,则倒置后的值为1;如果输入寄存器1的值为1,则倒置后的值为0。
3.计数器4和控制寄存器8同时送入主处理器5的判决器,如果计数器4的值大于或等于控制寄存器8的值,循环执行a)编码寄存器7的高位输出到输出缓冲6,(如果输出缓冲6满,产生满中断),b)编码寄存器7和控制寄存器8同时送入主处理器5的移位器,产生一位左移。
c)如果控制寄存器8的值大于编码寄存器7值的补码,则把编码寄存器7值的补码并加1送入控制寄存器8。
4.循环执行完,混乱寄存器2送入主处理器5的判决器。如果混乱寄存器2的值为0,倒置输入寄存器1的内容,把计数器3和控制寄存器8送入主处理器5的加法器,制寄存器8的值减去计数器3的值,其结果放入计数器3。
5.把输入寄存器1的值送入主处理器5的判决器,如果为0,复制计数器3的值到控制寄存器8;否则,把编码寄存器7、计数器3和控制寄存器8同时送入主处理器5的加法器,制控制寄存器8的值减去计数器3的值,其结果放入控制寄存器8,编码寄存器7的值加上计数器3的值,其结果放入编码寄存器7。
图3显示了魔尺解码乘载的物理实体的结构图,这个实体至少包含9个部件,即主处理器15,输入缓冲11,混乱寄存器12,两个计数器13和14,输出寄存器16,编码寄存器17,控制寄存器18和解码寄存器19.主处理器15,至少可以完成三个功能,即寄存器加减,寄存器移位和简单逻辑判断。该实体的置动需执行如下操作1.输出寄存器16置0,混乱寄存器12,两个计数器13和14同时输入主处理器152.两个计数器13和14进入主处理器15的判决器,如果计数器13的值大于计数器14的值,交换二者的内容,同时倒置输出寄存器16的内容。
3.计数器14和控制寄存器18同时送入主处理器15的判决器,如果计数器14的值大于或等于控制寄存器18的值,循环执行a)把输入缓冲11的当前位送入解码寄存器19,(如果输入缓冲16空,产生空中断。
b)解码寄存器19,编码寄存器17和控制寄存器18同时送入主处理器15的移位器,产生一位左移。
c)如果控制寄存器18的值大于编码寄存器17值的补码,则把编码寄存器17值的补码并加1送入控制寄存器18。
4.循环执行完,混乱寄存器12送入主处理器15的判决器,如果混乱寄存器12的值为0,倒置输出寄存器16的内容,把计数器13和控制寄存器18同时送入主处理器15的加法器,控制寄存器18的值减去计数器13的值,其结果放入计数器13。
5.把解码寄存器19,编码寄存器17和计数器13的值同时送入主处理器15的判决器,如果解码寄存器19的值减去编码寄存器17的值小于计数器13的值,复制计数器13的值到控制寄存器18;否则,倒置输出寄存器16的值,把编码寄存器17、计数器13和控制寄存器18同时送入主处理器15的加法器,制寄存器18的值减去计数器13的值,其结果放入控制寄存器18,编码寄存器17的值加上计数器13的值,其结果放入编码寄存器17。
图4显示了模型统计算法乘载的物理实体的结构图,这个实体至少包含6个部件,即输入寄存器21,地址寄存器22,两个存储器23和24,两个输出计数器25和26。该实体的置动需执行如下操作1.地址寄存器22是指向两个存储器23和24的地址,两个输出计数器25和26则分别是两个存储器23和24在地址寄存器22的映射。
2.如果输入寄存器21的值为0,则地址寄存器22所指的存储器23的存储单元的值加1,否则地址寄存器22所指的存储器23的存储单元的值加1。
3.地址寄存器22左移一位,然后加上输入寄存器21的值。
图5显示了魔尺加密算法乘载的物理实体的结构图,这个实体至少包含7个部件,即明文33,密文32,魔尺编码器35,随机数发生器37,伪随机数发生器34,统计模型36和密钥31。该实体的置动需执行如下操作1.密钥31控制随机数发生器37,产生与之等长的随机序列,该随机序列作为编码输入流进入魔尺编码器35,每一个密钥位通过统计模型36控制模型中当前内存单元值的改变,然后编码一个随机比特。执行如下a)如果当前密钥位0,则模型中当前内存单元0位置加1,否则1位置加1。
b)魔尺编码器35把当前的密钥位送入统计模型36,同时取回两个统计计数C0和C1,从伪随机数发生器34获取一个伪随机数比特,利用这些参数,编码一个随机数比特,输出到密文32,然后用该随机比特调整统计模型36。
2.一旦密钥位输入完毕,魔尺编码器35利用当前编码参数按如下顺序编码每个明文比特a)对于每个明文比特33,编码器35利用统计模型36,并从伪随机数发生器34获取一个伪随机数比特做编码并输出到密文32。
b)利用当前明文比特33,修正统计模型36。
图6显示了魔尺解密算法乘载的物理实体的结构图,这个实体至少包含6个部件,即明文43,密文42,魔尺解码器45,伪随机数发生器44,统计模型46和密钥41。该实体的置动需执行如下操作1.输入密文42到魔尺解码器45,并初始化解码器的寄存器。
2.密钥41的每一个密钥位通过统计模型46控制模型中当前内存单元值的改变,然后解码一个随机比特,并丢掉。具体执行如下a)如果当前密钥位0,则模型中当前内存单元0位置加1,否则1位置加1。
b)魔尺解码器45把当前的密钥位送入统计模型46取回两个统计计数C0和C1,再从伪随机数发生器44获取一个伪随机数比特,利用这些参数,解码一个随机比特,同时把解码出的比特送入统计模型46。
3.一旦密钥位输入完毕,魔尺解码器45利用当前解码参数按如下顺序解码密文。
a)解码器45利用统计模型46取回两个统计计数C0和C1,并从伪随机数发生器44获取一个伪随机数比特做解码得到明文比特43。
b)利用当前明文比特43,修正统计模型46。
上述物理实体可以组合为一体,以共享存储器,寄存器和处理器,降低成本;也可分体工作,使用各自独立的存储器和处理器,完成不同的任务要求。另外考虑到伪随机数产生的需要额外成本,结合加密输出流的高度随机性,我们采用了输出反馈的方式,实现伪随机序列的输入。为此我们引进了一个反馈移位寄存器,因此该模式也称为自反馈模式。
自反馈加密装置如图7所示,它包含7个单元。该装置的制动原理如下1.密钥49控制随机数发生器48,产生与之等长的随机序列,该随机序列作为编码输入流进入魔尺编码器51,每一个密钥位通过统计模型52控制模型中当前内存单元值的改变。如果当前密钥位0,则模型中当前内存单元0位置加1,否则1位置加1。魔尺编码器51把当前的密钥位送入统计模型36,同时取回两个统计计数C0和C1,再用它编码一个随机比特,并用当前随机比特修正统计模型52。直到密钥位输入完毕。
2.对于每个明文比特47,先输入编码器51。编码器51利用反馈移位寄存器50的最高位作为伪随机比特,通过统计模型取得两个记数,对明文比特47进行编码。
3.编码器51的输出通过反馈移位寄存器50,依次从低位进入,高位移出到密文53。
4.编码器51把明文比特47通过统计模型52,做模型调整。
自反馈解密装置如图8所示,它包含6个单元。该装置的制动原理如下1.密文54同时输入解码器57和反馈移位寄存器56,并初始化解码器。
2.密钥55控制统计模型58,解出随机比特,并丢掉。
3.密文54通过反馈移位寄存器56,依次从低位进入,高位移出。
4.解码器57利用反馈移位寄存器50的最高位作为伪随机比特,通过统计模型取得两个记数解码一个明文比特59。
5.最后解码器57明文比特57通过统计模型58,做模型调整。
本装置可以用于远程网络CAD的,提供快速数据压缩和加密处理。由于其算法简单,兼顾了软件和硬件的实现,为远程网络CAD的安全提供了保障。
权利要求
1.一种对称密钥加密装置,使用户通过密钥把明文信息转换为密文信息,其特征在于该加密装置包含一个魔尺编码器,一个模型统计器,一个伪随机数发生器和一个随机数发生器;密钥控制随机数发生器,产生与之等长的随机序列,该随机序列作为编码输入流进入魔尺编码器,每一个密钥位通过模型统计器控制模型中当前内存单元值的改变。魔尺编码器把当前的密钥位送入模型统计器,同时取回两个统计计数,再从伪随机数发生器获取一个伪随机数比特,利用这些参数编码一个随机比特,并用当前随机比特修正模型统计器,直到密钥位输入完毕,然后编码明文;对于每个明文比特,先输入编码器,编码器利用一个伪随机比特,通过模型统计器取得两个记数,对明文比特进行编码;编码器把明文比特通过模型统计器,做模型调整。
2.一种对称密钥解密装置,使用户通过密钥把密文信息转换为明文信息,其特征在于该装置包含一个魔尺解码器,一个模型统计器,一个伪随机数发生器;密钥的每一个密钥位通过模型统计器控制模型中当前内存单元值的改变;魔尺解码器把当前的密钥位送入模型统计器取回两个统计计数,再从伪随机数发生器获取一个伪随机数比特,利用这些参数,解码一个随机比特,同时把解码出的比特送入模型统计器,做模型调整;一旦密钥位输入完毕,魔尺解码器利用当前解码参数按如下顺序解码密文,解码器利用模型统计器取回两个统计计数,并从伪随机数发生器获取一个伪随机数比特做解码得到明文比特,然后利用当前明文比特,修正模型统计器。
3.如上述权利要求1和2所述之加解密装置,其特征在于模型统计器包含一个输入寄存器,一个地址寄存器,左右两个存储器,左右两个输出计数器;每统计一个符号,按顺序把地址寄存器指向的左右两个存储器的内容分别输出到左右两个计数器;如果输入寄存器的值为0,则地址寄存器所指的左存储器的存储单元的值加1,否则地址寄存器所指的右存储器的存储单元的值加1;地址寄存器左移一位,然后加上输入寄存器的值。
4.如上述权利要求1和2所述之加解密装置,其特征在于密钥位对模型统计器的控制按如下操作,如果当前密钥位为逻辑0,则模型中当前内存单元0位置加一个常数,否则1位置加一个固定常数。
5.如上述权利要求1和2所述之加解密装置,其特征在于伪随机数发生器可由一个反馈移位寄存器取代,它是密文比特流上的一个滑动窗,依次从低位进入,高位移出,每次编解码所需的伪随机比特,可通过反馈移位寄存器的最高位得到。
6.如上述权利要求1所述之加密装置,其特征在于魔尺编码器包含一个输入寄存器,一个混乱寄存器,左右两个计数器,一个输出缓冲,一个编码寄存器和一个控制寄存器;其特征在于每编码一个符号,按顺序计算如果左计数器的值大于右计数器的值,交换二者的内容,同时倒置输入寄存器的内容;如果右计数器的值大于或等于控制寄存器的值,循环执行编码寄存器的高位输出到输出缓冲;编码寄存器和控制寄存器同时产生一位左移;如果控制寄存器的值大于编码寄存器值的补码,则把编码寄存器值的补码并加1送入控制寄存器;循环执行完,如果混乱寄存器的值为0,倒置输入寄存器的内容,控制寄存器的值减去左计数器的值,其结果放入左计数器;如果输入寄存器为0,复制左计数器的值到控制寄存器;否则,制控制寄存器的值减去左计数器的值,其结果放入控制寄存器,编码寄存器的值加左上计数器的值,其结果放入编码寄存器。
7.如上述权利要求2所述之解密装置,其特征在于魔尺解码器包含一个输入缓冲,一个混乱寄存器,左右两个计数器,一个输出寄存器,一个编码寄存器,一个控制寄存器和一个解码寄存器;每解码一个符号,按顺序计算如果左计数器的值大于右计数器的值,交换二者的内容,同时倒置输出寄存器的内容;如果右计数器的值大于或等于控制寄存器的值,循环执行把输入缓冲的当前位送入解码寄存器;解码寄存器,编码寄存器和控制寄存器同时产生一位左移;如果控制寄存器的值大于编码寄存器值的补码,则把编码寄存器值的补码并加1送入控制寄存器;循环执行完,如果混乱寄存器的值为0,倒置输出寄存器的内容,控制寄存器的值减去左计数器的值,其结果放入左计数器;如果解码寄存器的值减去编码寄存器的值小于左计数器的值,复制左计数器的值到控制寄存器;否则,倒置输出寄存器的值,制寄存器的值减去左计数器的值,其结果放入控制寄存器,编码寄存器的值加上左计数器的值,其结果放入编码寄存器。
全文摘要
随着远程网络CAD的发展,密码技术受到了普遍的重视。本发明利用魔尺编码技术提出了一种无乘法编码方法,并在此基础上发展了一种新型的数据加密算法和相应装置,如摘要附图1所示。该算法不是块体制,而是一种基于统计编码的流加密技术。其特征在于密文比明文短50%左右,可有效地节约存储空间和信道,特别适用于数据的安全保存和传输;加法和移位操作,使硬件设计相当简单;变长密钥技术,则使加密强度完全依赖于密钥长度。
文档编号H04L9/06GK1741446SQ200410053938
公开日2006年3月1日 申请日期2004年8月23日 优先权日2004年8月23日
发明者江启成 申请人:江启成
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1