CN1109423C - 排列码加密解密方法及其排列码加密解密器 - Google Patents
排列码加密解密方法及其排列码加密解密器 Download PDFInfo
- Publication number
- CN1109423C CN1109423C CN99107969A CN99107969A CN1109423C CN 1109423 C CN1109423 C CN 1109423C CN 99107969 A CN99107969 A CN 99107969A CN 99107969 A CN99107969 A CN 99107969A CN 1109423 C CN1109423 C CN 1109423C
- Authority
- CN
- China
- Prior art keywords
- key
- door
- input
- permutation code
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
一种排列码加密解密方法及其排列码加密解密器,排列码加密解密器由排列码加密器和排列码解密器构成。其中密钥处理器相同。排列码加密解密的方法是在密钥寄存器(Rs)的输入端输入密钥(Key)后,通过运算器(ALU)的运算,密钥(Key)与译码控制寄存器的输出构成排列码;在加密处理器中,其排列码控制译码器使(D11′)、(D12′)、…、(D1n′)是(D11)、(D12)、…、(D1n)的一个排列;在解密处理器中,其排列码也控制译码器使(D21)、(D22)、…、(D2n)是(D21′)、(D22′)、…、(D2n′)的一个排列。本发明加密强度高,速度快,密钥更换容易,破译难,成本低。可用于任何数字数据传输和存储的地方。
Description
本发明的技术领域
本发明属于一种在数据传输或存储过程中应用的加密解密方法及其加密解密器,特别涉及一种排列码加密解密方法及其排列码加密解密器。
本发明的背景技术
在《当代密码学引论》《通信保密》(1990.3)中介绍了一种DES加密解密器,其加密强度仅为1017。中国电子部三十所的密码王加密强度仅为1019(中国电子部三十所在Internet网发布的密码王的信息),FEAL-4、FEAL-8、国际数据加密器IDEA、EES的加密强度都小于2128(在《引人注目的快速数据加密算法FEAL》《通信保密》1990.4,《网络世界》1998.12.7第56版可知)。而且加密速度低,从明文到密文的变换DES要经过16次,FEAL-4经过4次、FEAL-8经过8次。只能用于文本加密,不能用于实时性很高的声音和图象加密。其密钥都是很长的数字串,都需要用计算机管理,因而增加了不安全因素。
在US4935961专利文件中,公开的是使用DES算法,对密钥加密,它属于DES算法的特定应用。CN1148453A专利文件中公开的是使用一种预定的加密算法对密钥加密。CN1183685A专利文件中公开的是用已有的加密算法对密钥加密解密。上述专利文件都没有提高加密强度和加密速度,都与本发明不同。
本发明的技术内容
本发明的目的在于克服现有技术中的不足之处而提供一种加密强度高、加密速度快、设备简单经济、密钥可是任意的数字串或文字串,记忆与输入密钥简单容易的排列码加密解密方法及其排列码加密解密器。
本发明的技术解决方案如下:
排列码加密解密器的结构是在盒体1内装着由密钥处理器电路、加密处理器电路、解密处理器电路组成的电路板。明文输入线x和明文输出线x′穿过盒体1的一个侧面板分别与盒体内的加密处理器电路和解密处理器电路连接;密文输出线y和密文输入线y′穿过盒体1的另一个侧面板分别与盒体内的加密处理器电路和解密处理器电路连接;密钥输入线Key穿过盒体的正面板与密钥处理器电路连接;密钥处理器电路分别与加密处理器电路和解密处理器电路连接。这里也可认为x是加密前输入的明文,x′是解密后输出的明文,它们的数据内容相同,所区别的仅是时间差。y是加密后输出的密文,y′是解密前输入的密文,它们的数据内容也相同,所区别的也仅是时间差。
排列码加密解密器是由排列码加密器和排列码解密器构成,排列码加密器是由密钥处理器和加密处理器构成,排列码解密器是由密钥处理器和解密处理器构成。排列码加密器和排列码解密器可分别各用一个密钥处理器,也可共用一个密钥处理器。
密钥处理器的电路连接关系是密钥输入线Key接密钥寄存器RS的输入端,密钥寄存器RS的输出端接运算器ALU的一个输入端,常数寄存器Uc的输出端接运算器ALU的另一个输入端,运算器ALU的输出端接译码控制寄存器Ryc1、Ryc2、…、Rycn和密钥寄存器RS的输入端。
加密处理器的电路连接关系是译码控制寄存器Ryc1、Ryc2、…、Rycn的输出端分别接译码器Y11、Y12…、Y1n的输入端,译码器Y11、Y12、…、Y1n的输出端分别对应连接与门组U11、U12、…、U1n中每一个与门的输入端,明文数据线x接数据缓冲寄存器RD1的输入端,数据缓冲寄存器RD1的输出线D11、D12、…、D1n(该线实际传送的是明文数据)分别对应连接与门组U11、U12、…、U1n中每一个与门的一个输入端,与门组U11、U12、…、U1n中每一个与门的输出分别对应连接或门U101、U102、…、U10n的一个输入端,或门U101、U102、…、U10n的输出线D11′、D12′、…、D1n′(该线实际传送的是密文数据)接输出缓冲寄存器RO的输入端,输出缓冲寄存器RO的输出端接密文输出线y。
解密处理器的电路连接关系是译码控制寄存器Ryc1、Ryc2、…Rycn的输出端分别接译码器Y21、Y22、…、Y2n的输入端,译码器Y21、Y22、…、Y2n的输出端分别对应连接与门组U21、U22、…、U2n中每一个与门的输入端,密文数据线y′接输入缓冲寄存器RI的输入端,输入缓冲寄存器RI的输出线D21′、D22′、…、D2n′(该线实际传送的是密文数据)分别连接与门组U21、U22、…、U2n中的一个与门的一个输入端,与门组U21、U22、…、U2n的输出分别对应连接或门U201、U202、…、U20n的输入端,或门U201、U202、…、U20n的输出线D21、D22、…、D2n(该线实际传送的是明文数据)接数据缓冲寄存器RD2的输入端,数据缓冲寄存器RD2的输出端接明文输出线x′。
加密处理器的电路连接关系还可在明文输出线D11、D12、…、D1n和与门组U11、U12、…、U1n连接的任意一个与门的输入端或各组与门U11、U12、…、U1n中的任意一个与门的输出端或或门U101、U102、…、U10n的任意一个输入端连接非门;解密处理器的电路连接方法还可在密文输出线D21′、D22′、…、D2n′和与门组U21、U22、…、U2n连接并与加密处理器对应的与门的输入端或各组与门U21、U22、…、U2n中与加密处理器对应的与门的输出端或或门U201、U202、…、U20n的与加密处理器对应的输入端连接非门。
在加密器中,U11、U12、…、U1n分别是由n个两输入端与门组成的与门组,U101、U102、…、U10n分别是一个有n个输入端的或门。Ryc1、Ryc2、…、Rycn是译码控制寄存器,用于存储运算器ALU的计算结果,其输出控制译码器Y11、Y12、…、Y1n,根据其不同的值由数据缓冲寄存器RD1输出的明文数据D11、D12、…、D1n,再按照与门组U11、U12、…、U1n和或门组U101、U102、…、U10n的逻辑关系产生不同的密文数据D11′、D12′、…、D1n′。因表达同一个组合逻辑表达式的方案是指数级的,这里仅给出的是一种代表。
在解密器中,U21、U22、…、U2n分别也是由n个两输入端与门组成的与门组,U201、U202、…、U20n也分别是一个有n个输入端的或门,Ryc1、Ryc2、…、Rycn也是译码控制寄存器,用于存储运算器ALU的计算结果。其输出也是控制译码器Y21、Y22、…、Y2n,根据其不同的值由输入缓冲寄存器RI的输出密文数据D21′、D22′、…、D2n′,再按照与门组U21、U22、…、U2n和或门组U201、U202、…、U20n的逻辑关系产生不同的明文数据D21、D22、…、D2n。因表达同一个组合逻辑表达式的方案是指数级的,这里也仅给出的是一种代表。
排列码加密解密方法是,在上述加非或不加非的排列码加密解密器中,在密钥寄存器RS的输入端输入密钥Key后,通过运算器ALU的运算,密钥Key与译码控制寄存器Ryc1、Ryc2、…、Rycn的输出构成排列码,在加密处理器中,译码控制寄存器Ryc1、Ryc2、…、Rycn的输出控制译码器Y11、Y12、…、Y1n使D11′、D12′、…、D1n′是D11、D12、…、D1n的一个排列;在解密处理器中,译码控制寄存器Ryc1、Ryc2、…、Rycn的输出也控制译码器Y21、Y22、…、Y2n使D21、D22、…、D2n是D21′、D22′、…、D2n′的一个排列。
在数据传输或存储过程中的加密解密方法,还可通过用排列码加密解密方法编制的软件来实现,其方法步骤如下:
(1)、读入密钥Key及加密/解密状态;
(2)、根据密钥Key产生密钥Key1、Key2…Keyn;
(3)、将当前分组数据按照密钥Key1、Key2…Keyn进行加密/解密;
(4)、是否存在待处理数据,若有,则当前分组数据指向下一组数据,根据密钥key重新再产生密钥Key1、Key2…Keyn,然后返回步骤3;若不存在待处理数据,加密/解密结束。
一个排列码由一个密钥与一个n比特的排列一起构成。有一定顺序的n比特信息,称为原排列,重新调换它们的顺序,又形成一个n比特的新的排列,共有n!个排列。输出的n比特的排列是输入的n比特的重新排列,或重新排列后若干比特加非或求反。按原排列传送、存储的信息是明文,按新排列传送、存储的信息是密文。
排列码编码方法是,n比特信息的全排列有n!个,那么就有n!个排列码,n!个排列码即为排列码编码,n!个排列码对应n!个密钥,对n!个排列码进行全排列,有(n!)!个排列码编码,因此有(n!)!种排列码编码方法。
上述所说的加密解密方法中,密钥可以是一个整数或数字串,还可以是任意的文字串,可定长、可变长,如一个成语,一段诗词,某本书中的一段话。因加密解密速度快,可用于实时语音和实时图象的实时加密。
密钥寄存器RS兼做中间结果寄存器。密钥可以是整数或数字串,还可以是任意的文字串,可定长、可变长,可长、可短,只要以2进制数格式存入RS中,就可以当一个2进制数使用,如果2进制数的比特数少于RS的比特数,则将此2进制数存入RS的低位中,未存入数据的RS的高位添0;如果2进制数的比特数多于RS的比特数,则将此2进制数的低k比特存入RS中(k是RS的比特数),多余的高比特自动丢失。比如一个成语,一段诗词,某本书中的一段话的机器内码就可以当一个密钥使用。
常数寄存器Uc能向运算器ALU提供n!以内的计算排列码所需的常数。
运算器ALU可以是通用的运算器,还可以是现有计算机通过软件实现,只要是通过密钥Key和需要的常数计算出n个不同的值存入译码控制寄存器Ryc1、Ryc2、…、Rycn即可。不同的密钥Key,它们的值都不完全相同,共有n!个不同的组合。根据排列码理论至少有(n!)!种算法,再加上因逻辑设计、硬件设计、软件设计的多样性,它的实现方案是多种多样的,我们仅给出几种设计方案做代表。
本发明与现有技术相比有如下优点:
1、加密强度高,其加密强度(对文本文件加密)可达(n!)4*2n*n。以(n!)2*2n*n为例,当n等于128时,(128!)2*2128*128等于105365,是DES的105348倍。本发明的加密强度远远高于目前已知所有加密器的加密强度。
2、加密及解密速度快,可以达到仅仅是一个与门加一个或门再加一个非门的延迟时间,是ns数量级,比其它方法快106倍以上。其它的加密解密方法不能用于实时语音和实时图象的实时加密解密。该加密解密方法及加密解密器可以用于实时语音和实时图象的实时加密解密。
3、密钥可以是数字串,还可以是任意的文字串,可定长,可变长。比如一个成语,一段诗词,某本书中的一段话。密钥便于人记忆,可以仅仅当事人知道。
4、密钥更换容易,破译难。密钥可随时更换。即使有解密器,且知道第1个n比特的密文和明文也无法知道其余的明文。
5、成本低、实用范围广。就目前的技术可以做成一个单片机,也可以做成一个软件模块,装到普通电话、移动电话、MODEM、计算机、数据库中及Internet网上,以及任何使用数字传输和存储的地方。
附图的图面说明如下:
图1是本发明排列码加密解密器外形示意图;图中1是盒体,x为加密前的明文输入线,x′为解密后的明文输出线,y为加密后的密文输出线,y′为解密前的密文输入线,Key为密钥输入线;
图2是通用的密钥加密系统简单原理示意图;图中x为明文,y为密文,Key为密钥,2为加密器,3为解密器;
图3是本发明排列码加密器电气原理图;
图4是本发明排列码解密器电气原理图;
图5是本发明加非门的排列码加密器电气原理图(2n*n种类型的一个代表);
图6是本发明加非门的排列码解密器电气原理图(2n*n种类型的一个代表);
图7是本发明当n=3,一种排列码表中Key=2时,一个排列码的加密解密原理示意图;
图8是本发明当n=5,一种排列码表中Key=42时,一个排列码的加密解密原理示意图;
图9是本发明当n=6,一种排列码表中Key=168时,一个排列码的加密解密原理示意图;
图10是本发明当n=7,一种排列码表中Key=668时,一个排列码的加密解密原理示意图;
图11是本发明加非门后当n=7,一种排列码表中Key=668时,一个排列码的加密解密原理示意图;
图7、8、9、10、11中a为加密部分,b为正常传输部分,c为解密部分;
图12是从左向右传输模拟数据加密解密示意图,图中K1、K2为开关;
图13是从右向左传输模拟数据加密解密示意图,图中K3、K4为开关;
图14是正常数据存储示意图,图中4为内存储器、5为外存储器;
图15是接上加密解密器后的数据存储示意图,图中2为加密器、3为解密器、4为内存储器、5为外存储器。
本发明的具体实施方式如下:
排列码加密解密器的结构是在盒体(1)内装着由密钥处理器电路、加密处理器电路、解密处理器电路组成的电路板,明文输入线x和明文输出线x′穿过盒体(1)的一个侧面板分别与盒体内的加密处理器电路的数据缓冲寄存器RD1和解密处理器电路的数据缓冲寄存器RD2连接,密文输出线y和密文输入线y′穿过盒体(1)的另一个侧面板分别与盒体内的加密处理器电路的输出缓冲寄存器RO和解密处理器电路的输入缓冲寄存器RI连接,密钥输入线Key穿过盒体的正面板与盒体内的密钥处理器电路的密钥寄存器RS连接。在这里也可认为x是加密前输入的明文,x′是解密后输出的明文,它们的数据内容相同,所区别的仅是时间差;y是加密后输出的密文,y′是解密前输入的密文,它们的数据内容也相同,所区别的也仅是时间差。
排列码加密解密器是由排列码加密器和排列码解密器构成,排列码加密器是由密钥处理器和加密处理器构成,排列码解密器是由密钥处理器和解密处理器构成。排列码加密器和排列码解密器可分别各用一个密钥处理器,也可共用一个密钥处理器。
排列码加密器的结构如图3所示,由密钥处理器和加密处理器构成,其电路的连接关系是密钥输入线Key接密钥寄存器RS的输入端,密钥寄存器RS的输出端接运算器ALU的一个输入端,常数寄存器Uc的输出端接运算器ALU的另一个输入端,运算器ALU的输出端接译码控制寄存器Ryc1、Ryc2、…、Rycn和密钥寄存器RS的输入端。译码控制寄存器Ryc1、Ryc2、…、Rycn的输出端分别接译码器Y11、Y12、…、Y1n的输入端,译码器Y11、Y12、…、Y1n的输出端分别对应连接由n个双输入端与门构成的与门组U11、U12、…、U1n中每一个与门的输入端,明文数据线x接数据缓冲寄存器RD1的输入端,数据缓冲寄存器RD1的输出线D11、D12、…、D1n(该线实际传送的是明文数据)分别对应连接每组与门U11、U12、…、U1n中的每一个与门的一个输入端,各组与门U11、U12、…、U1n中每一个与门的输出分别对应连接有n个输入端的或门U101、U102、…、U10n的一个输入端,或门U101、U102、…、U10n的输出线D11′、D12′、…、D1n′(该线实际传送的是密文数据)接输出缓冲寄存器RO的输入端,输出缓冲寄存器RO的输出端接密文输出线y。
排列码解密器的结构如图4所示,由密钥处理器和解密处理器构成。密钥处理器的电路连接关系与排列码加密器中的完全相同。译码控制寄存器Ryc1、Ryc2、…Rycn的输出端分别接译码器Y21、Y22、…、Y2n的输入端,译码器Y21、Y22、…、Y2n的输出端分别对应连接由n个双输入端与门构成的与门组U21、U22、…、U2n中的每一个与门的输入端,密文数据线y′接输入缓冲寄存器RI的输入端,输入缓冲寄存器RI的输出线D21′、D22′、…、D2n′(该线实际传送的是密文数据)分别连接每组与门U21、U22、…、U2n中一个与门的一个输入端,与门组U21、U22、…、U2n的输出分别对应连接有n个输入端的或门U201、U202…、U20n的一个输入端,或门U201、U202、…、U20n的输出线D21、D22、…、D2n(该线实际传送的是明文数据)接数据缓冲寄存器RD2的输入端,数据缓冲寄存器RD2的输出端接明文输出线x′。
排列码加密解密方法是,在上述加非或不加非的排列码加密解密器中,在密钥寄存器RS的输入端输入密钥Key后,通过运算器ALU的运算,密钥Key与译码控制寄存器Ryc1、Ryc2、…、Rycn的输出构成排列码。在加密处理器中,译码控制寄存器Ryc1、Ryc2、…、Rycn的输出控制译码器Y11、Y12、…、Y1n使D11′、D12′、…、D1n′是D11、D12、…、D1n的一个排列。在解密处理器中,译码控制寄存器Ryc1、Ryc2、…、Rycn的输出也控制译码器Y21、Y22、…、Y2n使D21、D22、…、D2n是D21′、D22′、…、D2n′的一个排列。
一个密钥与一个n比特的排列一起构成一个排列码。有一定顺序的n比特信息,称为原排列,重新调换它们的顺序,又形成一个n比特的新的排列,共有n!个排列。输出的n比特是输入的n比特的重新排列,或重新排列后若干比特加非或求反。按原排列传送、存储的信息是明文,按新排列传送、存储的信息是密文。
排列码编码方法是,n比特信息的全排列有n!个,那么就有n!个排列码,n!个排列码即为排列码编码,n!个排列码对应n!个密钥,对n!个排列码进行全排列,有(n!)!个排列码编码,因此有(n!)!种排列码编码方法。
上述所说的加密解密方法中,密钥可以是一个整数或数字串,还可以是任意的文字串,可定长、可变长,如一个成语,一段诗词,某本书中的一段话。因加密解密速度快,可用于实时语音和实时图象的实时加密。
排列码编码方法共有(n!)!种,那么也就有(n!)!种排列码表。下面以n=3为例简单介绍一下排列码加密解密方法的应用。当n=3时,就有(3!)!种排列码表,因此就有(3!)!种排列码编码方法。下面仅列出n=3时三种排列码表。
表1:n=3的第一种排列码表(或称排列码编码)如下:
密钥 | 对应的排列码相当于型号为000000000的加密器 | 直通信号取非的排列码相当于型号为100010001的加密器 |
1 | (1,2,3,) | (-1,-2,-3) |
2 | (3,1,2) | (3,1,2) |
3 | (2,3,1) | (2,3,1) |
4 | (1,3,2) | (-1,3,2) |
5 | (2,1,3) | (2,1,-3) |
6 | (3,2,1) | (3,-2,1) |
表2:n=3的第二种排列码表(或称排列码编码)如下:
密钥 | 对应的排列码相当于型号为000000000的加密器 | 直通信号取非的排列码相当于型号为100010001的加密器 |
1 | (1,2,3) | (-1,-2,-3) |
2 | (3,1,2) | (3,1,2) |
3 | (2,3,1) | (2,3,1) |
4 | (1,3,2) | (-1,3,2) |
5 | (3,2,1) | (3,-2,1) |
6 | (2,1,3) | (2,1,-3) |
表3:n=3的第三种排列码表(或称排列码编码)如下:
密钥 | 对应的排列码相当于型号为000000000的加密器 | 直通信号取非的排列码相当于型号为100010001的加密器 |
1 | (1,2,3) | (-1,-2,-3) |
2 | (3,1,2) | (3,1,2) |
3 | (2,3,1) | (2,3,1) |
4 | (2,1,3) | (2,1,-3) |
5 | (1,3,2) | (-1,3,2) |
6 | (3,2,1) | (3, -2,1) |
从上表可以看出,在3比特的情况下,对它的全排列为3!=6种不同的全排列,表中的“-”表示对该比特取非。型号中的二进制数中的1表示加一个非门,0表示不加一个非门,1的位置表示加非门的位置。
使用表1,当加密时,以密钥2为例,它的对应的排列码为(3、1、2),表示它的密文是把明文的第1比特放到第3比特的位置上,把明文的第2比特放到第1比特的位置上,把明文的第3比特放到第2比特的位置上(它在加密器上的实现在下文给出一个实例1);同理密钥3的对应的排列码为(2、3、1),表示它的密文是把明文的第1比特放到第2比特的位置上,把明文的第2比特放到第3比特的位置上,把明文的第3比特放到第1比特的位置上;…密钥6的对应的排列码为(3、2、1),表示它的密文是把明文的第1比特放到第3比特的位置上,把明文的第2比特放到第2比特的位置上,把明文的第3比特放到第1比特的位置上。如果把数字化信息按(1、2、3)(1、2、3)(1、2、3)…的顺序传输或存储就是明文(为了让人容易看懂,我们每3比特加一个括号,实际是没有括号的),如果把数字化信息按(3、1、2)(1、3、2)(3、2、1)…的顺序传输或存储就是密文(当然数字化信息的顺序传输序列是由密钥序列的顺序而定的,即密钥序列的顺序为2,4,6…,而密钥序列的顺序是通过对输入的密钥经过运算器ALU的加工处理而生成的,因此密钥序列的顺序是不固定的,上面的密钥序列的顺序只是为了说明而假定的序列);而直通信号取非的排列码是,凡是出现当把明文的第1比特放到第1比特的位置上或把明文的第2比特放到第2比特的位置上或把明文的第3比特放到第3比特的位置上时,就将明文的第1比特取非后放到第1比特的位置上或明文的第2比特取非后放到第2比特的位置上或明文的第3比特取非后放到第3比特的位置上,因此此时的明文数字化信息按(1、2、3)(1、2、3)(1、2、3)…的顺序传输或存储就是明文,如果把数字化信息按(3、1、2)(1、3、2)(3、-2、1)…的顺序传输或存储就是密文。由密钥2计算其排列码最简单的方法是查排列码表。
使用表1,当解密时还以密钥2为例,它的对应的排列码为(3、1、2),表示它的明文是把密文的第3比特放到第1比特的位置上,把密文的第1比特放到第2比特的位置上,把密文的第2比特放到第3比特的位置上;密钥为3、4、5、6以此类推。而直通信号取非的排列码是把密文的第1比特取非后放到第1比特的位置上;在第2比特取非后放到第2比特的位置上;第3比特取非后放到第3比特的位置上。这样密文经过解密后就还原为(1、2、3)(1、2、3)(1、2、3)…。
在这一明文变密文的方法中如果使用等长的数据块,这是加密强度最低的一种。即使是这样,本发明的加密强度也高于目前所有的加密方法。因n比特的全排列为n!,有n!个密钥,这里所指的n是加密处理组的比特数。下一个n比特又可以换一个密钥,换密钥的方法可以采用在当前密钥上加一个常数取n!的模形成新密钥(当然换密钥的方法也可以采用在当前密钥上减去一个常数后再取n!的模形成新密钥,当然也可以使用其它数学方法换密钥,由于不可能一一加以列举,也没有任何必要加以一一列举),一共可以有n!个换密钥的值。另外每一比特都可以加一个非门或者不加一个非门,这个非门可以加在图3或图4的与门上构成图5或图6,每个图上有n*n个与门,所以一共有2n*n种加非门的方法(在上面的表中也不难看出有2n*n种加非门的方法,上表仅是型号分别为000000000和100010001的加密器)。因此总的加密强度是(n!)2*2n*n。
通过前面的介绍可知n的排列码有n!个,那么排列码的编码方法共有(n!)!。没有必要把所有的排列码表都一一列出。上面仅以n=3时第一种排列码表为例,简单介绍了一下排列码加密解密方法及其原理,其余两种排列码表不再一一叙述,可以类比着做出。
下面用具体实例来说明如何用排列码实现加密解密的,即用图3实现图7的功能,其它可以此类推。
在数据传输或存储过程中的加密解密方法,通过用排列码加密解密方法编制的软件来实现,其方法步骤如下:
(1)、读入密钥Key及加密/解密状态;
(2)、根据密钥Key产生密钥Key1、Key2…Keyn;
(3)、将当前分组数据按照密钥Key1、Key2…Keyn进行加密/解密;
(4)、是否存在待处理数据,若有,则当前分组数据指向下一组数据,根据密钥key重新再产生密钥Key1、Key2…Keyn,然后返回步骤3;若不存在待处理数据,加密/解密结束。
设n=3,Key1=4,Key2=5,在型号为100010001的加密器上工作, 比如以字符串the为例,看它的加密过程。
首先看一下在Key1=4,Key2=5及直通信号取非的排列码的情况下所产生的密钥序列的过程,按照换密钥的方法是采用在当前密钥上加一个常数取n!的模形成新密钥的方法,第1个密钥为4,第2个密钥为(4+5)MOD 6=3,第3个密钥为(3+5)MOD 6=2…,因此产生的密钥序列为4,3,2,1,6,5,4,3,2,1,6,5…((1+5)MOD 6=0,但可规定密钥为0对应的排列码和密钥为n!对应的排列码是相同的,为表达方便我们选取密钥范围在1~n!之间而不是在0~n!-1之间,因此密钥序列中的第5个密钥本应为0但写成(3!=6),因此此时的排列码序列为(-1,3,2),(2,3,1),(3,1,2),(-1,-2,-3),(3,-2,1),(2,1,-3),(-1,3,2), (2,3,1),(3,1,2),(-1,-2,-3),(3,-2,1),(2,1,-3)…
“the”的对应的ASCII码的十六进制分别为74h,68h,65h,表示为二进制数为01110100B,01101000B,01100101B,按每3比特为一组则明文变为(011),(101),(000),(110),(100),(001),(100),(101)的这样的8组数据,第1组数据(011)将按照(-1,3,2)的形式变化,明文的第1比特的0取非后为1放在密文的第1比特上,明文的第2比特的1不变的方式即1放在密文的第3比特上,明文的第3比特的1不变的方式即1放在密文的第2比特上,这样明文的第1组数据(011)将变成密文的第1组数据(111);以此类推,明文的第2组数据(101)将按照(2,3,1)的形式变化,变成密文的第2组数据(110);明文的第3组数据(000)将按照(3,1,2)的形式变化,变成密文的第3组数据(000);明文的第4组数据(110)将按照(-1,-2,-3)的形式变化,变成密文的第4组数据(001);明文的第5组数据(100)将按照(3,-2,1)的形式变化,变成密文的第5组数据(011);明文的第6组数据(001)将按照(2,1,-3)的形式变化,变成密文的第6组数据(000);明文的第7组数据(100)将按照(-1,3,2)的形式变化,变成密文的第7组数据(000);明文的第8组数据(101)将按照(2,3,1)的形式变化,变成密文的第8组数据(110)。这样明文的8组数据将变成为密文的8组数据,即(111),(110),(000),(001),(011),(000),(000),(110)。由于在计算机中只能以ASCII码的形式存储数据,所以密文的8组数据的ASCII码的二进制形式为11111000B,00010110B,00000110B,即ASCII码的十六进制表示为0f8h,16h,06h,所对应的字符为“...”(“...”中的“.”表示是一个非可显示字符)。这样明文“the”就变成密文“...”了。
解密的过程也类似,在Key1=4,Key2=5的情况下所产生的密钥序列和加密时产生的密钥相同,即为4,3,2,1,6,5,4,3,2,1,6,5…,因此此时的排列码序列为(-1,3,2),(2,3,1),(3,1,2),(-1,-2,-3),(3,-2,1),(2,1,-3),(-1,3,2),(2,3,1),(3,1,2),(-1,-2,-3),(3,-2,1),(2,1,-3)…,所以ASCII码的十六进制表示为0f8h,16h,06h的密文的8组数据为(111),(110),(000),(001),(011),(000),(000),(110)。密文的第1组数据(111)将按照(-1,3,2)的形式变化,密文的第1比特的1取非后为0放在明文的第1比特上,密文的第3比特的1不变的方式即1放在明文的第2比特上,密文的第2比特的1不变的方式即1放在明文的第3比特上,这样密文的第1组数据(111)将变成明文的第1组数据(011)。以此类推,密文的第2组数据(110)将按照(2,3,1)的形式变化,变成密文的第2组数据(101)…。最后得到明文的8组数据为(011),(101),(000),(110),(100),(001),(100),(101)。这样ASCII码的十六进制分别为74h,68h,65h,即字符串“the”被解密回来。
下面结合图7,来说明如何用图3实现图7的功能,其它可以此类推。
当n=3,Key=2时,Ryc1、Ryc2、Ryc3都是2位的寄存器,结果Ryc1=3、Ryc2=1、Ryc3=2,Ryc1=3使Y11的第3条线为1,其余各线都是0;Ryc2=1使Y12的第1条线为1,其余各线都是0;Ryc3=2使Y13的第2条线为1,其余各线都是0。这样就使U11的第3个与门输出为D11的信号;U12的第1个与门输出为D12的信号;U13的第2个与门输出为D13的信号。因U11的第3个与门输出为D11的信号,使U103的第1个输入端为D11的信号,因为Ryc1、Ryc2、Ryc3的值不同,就可以保证U103的其它各输入端都为0,实现了图7的第1条线接到第3条线上;U12的第1个与门输出为D12的信号,使U101的第2个输入端为D12的信号,因为Ryc1、Ryc2、Ryc3的值不同,就可以保证U102的其它各输入端都为0,实现了图7的第2条线接到第1条线上,同理第3条线接到第2条线上。也就是把数据寄存器RD1中的明文D11、D12、D13变成了D11′、D12′、D13′,以密文形式存入Ro输出缓存寄存器,在输出缓存寄存器RO中发送可以是串行的,也可以是并行的,根据不同的用途来确定。可以有不同的设计方案。
图4的排列码解密器电气原理图与图3的排列码加密器电气原理图基本相似。仍以n=3,Key=2为例,Ryc1、Ryc2、Ryc3都是2位的寄存器,结果Ryc1=3、Ryc2=1、Ryc3=2,Ryc1=3使Y21的第3条线为1,其余各线都是0;Ryc2=1使Y22的第1条线为1,其余各线都是0;Ryc3=2使Y23的第2条线为1,其余各线都是0。这样就使U21的第3个与门输出为D23′的信号;U22的第1个与门输出为D21′的信号;U23的第2个与门输出为D22′的信号。因U21的第3个与门输出为D23′的信号,使 的第 个输入端为 ′的信号,因为 1、 2、 3的值不同,就可以保证 的其它各输入端都为 ,实现了图 的第 条线接到第条线上; 的第 个与门输出为 ′的信号,使 的第 个输入端为′的信号,因为 1、 2、 3的值不同,就可以保证 的其它各输入端都为,实现了图 的第条线接到第条线上,同理第条线接到第条线上。也就是把数据寄存器 中的密文 ′、 ′、 ′变成了 、 、 ,以明文形式存入 输出缓存寄存器。至于密钥处理器与图 完全相同,这里就不在详述。因此加密的密文就变成为解密的明文,正常使用即可。
图 的排列码加密器电气原理图与图 的排列码加密器电气原理图的区别是仅在某些与门上加非,是在加密处理器的与门组U11、U12…U1n中的任意一个与门的输入端或输出端连接非门或在或门U101、U102、…、U10n的任意一个输入端连接非门。其它结构与图3的排列码加密器相同。例如 的第 个与门输出为的信号,后经过一个非门,使 的第 个输入端为 的信号的非,因为1、 2、 3的值不同,就可以保证 的其它各输入端都为,实现了图的第1条线取非后接到第1条线上,其它以此类推,其它部分与不加非门的工作过程相同。因有 个与门,所以加非的方法一共有 种;这些非门加到同一与门的输出端和输入端、或者加到或门的输入端功能是相同的。
图 的排列码解密器电气原理图与图 的排列码解密器电气原理图的区别是仅在某些与门上加非。是在解密处理器的与门组U21、U22…U2n中与排列码加密器对应的与门的输入端或输出端连接非门或在或门U201、U202、…、U20n与排列码加密器对应的输入端连接非门。其它结构与图4的排列码解密器相同。因有n*n个与门,所以加非的方法一共有2n*n种;这些非门加到同一与门的输出端和输入端、或者加到或门的输入端功能是相同的。通过非门的过程与加密通过非门的过程相同,其它部分与上述不加非门的解密部分相同
根据不同的用途可以选择每个数据分组使用不同的密钥,数据分组之间再使用一次密钥,可使加密强度是(n!)3,大组之间再使用不同的密钥,就使加密强度为(n!)4。如果数据块使用相同的密钥可以获得极高的加密速度,延迟仅仅是数据通过与门和或门及非门的时间。
Di可以是一比特,也可以是多比特,不同的Di可以有相同的长度,也可以不同的长度。
在n=3、Key=2,n=5、Key=42,n=6、Key=168,n=7、Key=668,n=7、Key=668时,加非的加密解密简单示意图如图7、8、9、10、11所示,图中a部分实现了加密,c部分实现了解密,b部分是在正常的传输或存储系统中传输或存储信道。由此可以看出图7、8、9、10、11可以实现图2所示的通用密钥加密系统。对于任意的n,给出一个Key(1<Key<=n!),就可以给出一个加密解密示意图,它们都能实现图2所示的通用的密钥加密系统。根据以上原理也可以直接由设备的接线不同进行加密和解密,这样设备造价极低,加密解密速度快。
图12、图13是排列码加密解密器在模拟数据传输过程中应用的示意图。图12是模拟数据从左向右传输加密解密图,其中模数转换器为A/D,数模转换器为D/A,加密器为2,解密器为3。当开关K1、K2接到直通时,系统为正常传输,当K1、K2接到2、3上时,为加密解密传输。图13是模拟数据从右向左传输加密解密示意图,其工作过程与图12同。以将加密解密器装在电话上为例,设甲方为图12、图13的左边,加密器2的两接线端接在电话机的输出线上,解密器3的两接线端接在电话机的输入线上。乙方为图12、图13的右边,接线方法与甲方相同。使用时不加密,甲、乙双方都将开关接在直通线上,正常通话。加密时双方都将开关接在加密解密器连接线上,而且双方同时使用同一个密钥,即可秘密通话。比如商谈业务、技术等问题。
图14是正常存储示意图,图中内存储器为4,外存储器为5,内存、外存都为明文直通存储。图15为加密解密存储示意图,内存储器的明文输出经加密器加密后以密文形式存入外存储器,外存储器的密文经解密器解密后,以明文形式再存入内存储器,使用时调出即可。
Claims (10)
1、一种排列码加密解密器,由密钥处理器、加密处理器和解密处理器构成,其特征在于:在盒体(1)内装着由密钥处理器电路、加密处理器电路、解密处理器电路组成的电路板,明文输入线(x)和明文输出线(x′)穿过盒体(1)的一个侧面板分别与盒体内的加密处理器电路和解密处理器电路连接,密文输出线(y)和密文输入线(y′)穿过盒体(1)的另一个侧面板分别与盒体内的加密处理器电路和解密处理器电路连接,密钥输入线(Key)穿过盒体的正面板与盒体内的密钥处理器电路连接,密钥处理器电路分别与加密处理器电路和解密处理器电路连接;
排列码加密器是由密钥处理器和加密处理器构成,排列码解密器是由密钥处理器和解密处理器构成;
密钥处理器的电路连接关系是,密钥输入线(Key)接密钥寄存器(RS)的输入端,密钥寄存器(RS)的输出端接运算器(ALU)的一个输入端,常数寄存器(Uc)的输出端接运算器(ALU)的另一个输入端,运算器(ALU)的输出端接译码控制寄存器(Ryc1)、(Ryc2)、…、(Rycn)和密钥寄存器(RS)的输入端;
加密处理器的电路连接关系是,译码控制寄存器(Ryc1)、(Ryc2)、…、(Rycn)的输出端分别接译码器(Y11)、(Y12)、…、(Y1n)的输入端,译码器(Y11)、(Y12)、…、(Y1n)的输出端分别对应连接与门组(U11)、(U12)、…、(U1n)中每一个与门的输入端,明文数据线(x)接数据缓冲寄存器(RD1)的输入端,数据缓冲寄存器(RD1)的输出线(D11)、(D12)、…、(D1n)分别对应连接每组与门(U11)、(U12)、…、(U1n)中的每一个与门的一个输入端,各组与门(U11)、(U12)、…、(U1n)中每一个与门的输出分别对应连接或门(U101)、(U102)、…、(U10n)的一个输入端,或门(U101)、(U102)、…、(U10n)的输出线(D11′)、(D12′)、…、(D1n′)接输出缓冲寄存器RO的输入端,输出缓冲寄存器RO的输出端接密文输出线(y);
解密处理器的电路连接关系是,译码控制寄存器(Ryc1)、(Ryc2)、…、(Rycn)的输出端分别接译码器(Y21)、(Y22)、…、(Y2n)的输入端,译码器(Y21)、(Y22)、…、(Y2n)的输出端分别对应连接与门组(U21)、(U22)、…、(U2n)中的每一个与门的输入端,密文数据线(y′)接输入缓冲寄存器RI的输入端,输入缓冲寄存器RI的输出线(D21′)、(D22′)、…、(D2n′)分别连接每组与门(U21)、(U22)、…、(U2n)中一个与门的一个输入端,与门组(U21)、(U22)、…、(U2n)的输出分别对应连接或门(U202)、(U202)、…、(U20n)的一个输入端,或门(U201)、(U202)、…、(U20n)的输出线(D21)、(D22)、…、(D2n)接数据缓冲寄存器(RD2)的输入端,数据缓冲寄存器(RD2)的输出端接明文输出线(x′)。
2、按照权利要求1所说的排列码加密解密器,其特征在于:加密处理器的电路连接关系还可在明文输出线(D11)、(D12)、…、(D1n)和与门组(U11)、(U12)、…、(U1n)连接的任意一个与门的输入端或各组与门(U11)、(U12)、…、(U1n)中的任意一个与门的输出端或或门(U101)、(U102)、…、(U10n)的任意一个输入端连接非门,解密处理器的电路连接关系还可在密文输出线(D21′)、(D22′)、…、(D2n′)和与门组(U21)、(U22)、…、(U2n)连接并与加密处理器对应的与门的输入端或各组与门(U21)、(U22)、…、(U2n)中与加密处理器对应的与门的输出端或或门(U201)、(U202)、…、(U20n)的与加密处理器对应的输入端连接非门。
3、按照权利要求1或2所说的排列码加密解密器,其特征在于:排列码加密解密器的加密处理器和解密处理器可共用一个密钥处理器,由密钥处理器、加密处理器、解密处理器共同构成一个整体。
4、按照权利要求1或2所说的排列码加密解密器,其特征在于:加密处理器和解密处理器中的与门组由n个双输入端与门组成,或门是带有n个输入端的或门。
5、一种排列码加密解密的方法,其特征在于:在密钥寄存器(RS)的输入端输入密钥(Key)后,通过运算器(ALU)的运算,密钥(Key)与译码控制寄存器(Ryc1)、(Ryc2)、…、(Rycn)的输出构成排列码;在加密处理器中,译码控制寄存器(Ryc1)、(Ryc2)、…、(Rycn)的输出控制译码器(Y11)、(Y12)、…、(Y1n)使(D11′)、(D12′)、…、(D1n′)是(D11)、(D12)、…、(D1n)的一个排列;在解密处理器中,译码控制寄存器(Ryc1)、(Ryc2)、…、(Rycn)的输出控制译码器(Y21)、(Y22)、…、(Y2n)使(D21)、(D22)、…、(D2n)是(D21′)、(D22′)、…、(D2n′)的一个排列。
6、按照权利要求5所说的排列码加密解密的方法,其特征在于:在数据传输或存储过程中的加密解密方法,还可通过用排列码加密解密方法编制的软件来实现,其方法步骤如下:
(1)、读入密钥Key及加密/解密状态;
(2)、根据密钥Key产生密钥Key1、Key2…Keyn;
(3)、将当前分组数据按照密钥Key1、Key2…Keyn进行加密/解密;
(4)、是否存在待处理数据,若有,则当前分组数据指向下一组数据,根据密钥key重新再产生密钥Key1、Key2…Keyn,然后返回步骤3;若不存在待处理数据,加密/解密结束。
7、按照权利要求5或6所说的排列码加密解密的方法,其特征在于:一个排列码是由一个密钥与一个n比特的排列一起构成,输出的n比特的排列是输入的n比特的重新排列,或重新排列后若干比特加非或求反。
8、按照权利要求5或6所说的排列码加密解密的方法,其特征在于:密钥可以是一个整数或数字串,还可以是任意的文字串,可定长、可变长,如一个成语,一段诗词,某本书中的一段话。
9、按照权利要求7所说的排列码加密解密的方法,其特征在于:密钥可以是一个整数或数字串,还可以是任意的文字串,可定长、可变长,如一个成语,一段诗词,某本书中的一段话。
10、一种排列码编码的方法,其特征在于:n比特信息的全排列有n!个,那么就有n!个排列码,n!个排列码即为排列码编码,n!个排列码对应n!个密钥,对n!个排列码进行全排列,有(n!)!个排列码编码,因此有(n!)!个排列码编码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN99107969A CN1109423C (zh) | 1999-02-10 | 1999-06-09 | 排列码加密解密方法及其排列码加密解密器 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN99203482 | 1999-02-10 | ||
CN99203482.5 | 1999-02-10 | ||
CN99107969A CN1109423C (zh) | 1999-02-10 | 1999-06-09 | 排列码加密解密方法及其排列码加密解密器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1246007A CN1246007A (zh) | 2000-03-01 |
CN1109423C true CN1109423C (zh) | 2003-05-21 |
Family
ID=25745020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN99107969A Expired - Fee Related CN1109423C (zh) | 1999-02-10 | 1999-06-09 | 排列码加密解密方法及其排列码加密解密器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1109423C (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7564970B2 (en) | 2004-08-12 | 2009-07-21 | Cmla, Llc | Exponential data transform to enhance security |
US8077861B2 (en) | 2004-08-12 | 2011-12-13 | Cmla, Llc | Permutation data transform to enhance security |
US7577250B2 (en) | 2004-08-12 | 2009-08-18 | Cmla, Llc | Key derivation functions to enhance security |
CN103152171B (zh) * | 2013-03-26 | 2015-11-18 | 桂林电子科技大学 | 密钥可变的内轮置换流密码加密方法 |
TWI510046B (zh) * | 2013-07-04 | 2015-11-21 | Univ Nat Cheng Kung | 認證式加解密方法 |
CN111159721B (zh) * | 2018-11-08 | 2024-03-01 | 陈麟华 | 变易密钥的码控式数据加密方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4935961A (en) * | 1988-07-27 | 1990-06-19 | Gargiulo Joseph L | Method and apparatus for the generation and synchronization of cryptographic keys |
CN1148453A (zh) * | 1995-03-09 | 1997-04-23 | 摩托罗拉公司 | 提供盲接通加密密钥的方法 |
CN1183685A (zh) * | 1996-06-28 | 1998-06-03 | 株式会社东芝 | 加密译码方法,记录重放装置及记录媒体 |
-
1999
- 1999-06-09 CN CN99107969A patent/CN1109423C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4935961A (en) * | 1988-07-27 | 1990-06-19 | Gargiulo Joseph L | Method and apparatus for the generation and synchronization of cryptographic keys |
CN1148453A (zh) * | 1995-03-09 | 1997-04-23 | 摩托罗拉公司 | 提供盲接通加密密钥的方法 |
CN1183685A (zh) * | 1996-06-28 | 1998-06-03 | 株式会社东芝 | 加密译码方法,记录重放装置及记录媒体 |
Also Published As
Publication number | Publication date |
---|---|
CN1246007A (zh) | 2000-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wen et al. | Binary arithmetic coding with key-based interval splitting | |
EP3588838A1 (en) | Chaotic map-based digital chaotic encryption method | |
CN109660555A (zh) | 基于代理重加密的内容安全分享方法和系统 | |
CN1154293C (zh) | 对传输用的信号进行加密的方法和设备 | |
CN102904711A (zh) | 信息加密方法 | |
CN107798708A (zh) | 一种dna乱序编码和混沌映射的图像加密和解密方法 | |
CN1523810A (zh) | 设计最优加密函数的方法和优化的加密设备 | |
CN1551559A (zh) | 密码系统中基于用户定义识别码编制公用密钥的方法及装置 | |
CN1241352C (zh) | 加密二进制编码信息的方法 | |
CN105846814A (zh) | 针对加密技术领域乘法运算的量子逻辑电路的构造方法 | |
CN1109423C (zh) | 排列码加密解密方法及其排列码加密解密器 | |
CN1202289A (zh) | 利用话音频率快速产生和发送字符序列的方法和系统 | |
CN108174207A (zh) | 基于zuc算法的h.264熵编码视频加密方法 | |
CN1455557A (zh) | 可变长度/固定长度数据转换方法和装置 | |
CN1059999A (zh) | 用于数字蜂窝式通信的加密系统 | |
CN117978360A (zh) | 用于个人信息云平台数据的安全传输方法 | |
CN1285102A (zh) | 离散数据的分块加密方法 | |
TW202031008A (zh) | 混合式雙重網路加密系統 | |
CN1820449A (zh) | 通过一种通讯网络进行数据加密传输的方法 | |
CN109302282A (zh) | 一种基于数据加密技术的商业机密发送方法 | |
CN101515853B (zh) | 信息终端及其信息安全装置 | |
CN106385312A (zh) | 一种基于混沌数谱的数字化混沌加密方法 | |
CN1286855A (zh) | 二进制数据块加密变换 | |
CN110086633A (zh) | 一种区块链技术中密文防篡改方法 | |
CN2507064Y (zh) | 一种蒙哥马利模乘器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |