CN113572786A - 一种基于不等长二进制截取字组成的明文进行加密和解密的方法 - Google Patents

一种基于不等长二进制截取字组成的明文进行加密和解密的方法 Download PDF

Info

Publication number
CN113572786A
CN113572786A CN202110897022.2A CN202110897022A CN113572786A CN 113572786 A CN113572786 A CN 113572786A CN 202110897022 A CN202110897022 A CN 202110897022A CN 113572786 A CN113572786 A CN 113572786A
Authority
CN
China
Prior art keywords
file
word
key
plaintext
words
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.)
Granted
Application number
CN202110897022.2A
Other languages
English (en)
Other versions
CN113572786B (zh
Inventor
梁德群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202110897022.2A priority Critical patent/CN113572786B/zh
Publication of CN113572786A publication Critical patent/CN113572786A/zh
Application granted granted Critical
Publication of CN113572786B publication Critical patent/CN113572786B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种基于不等长二进制截取字组成的明文进行加密和解密的方法,本发明主要面向现代网络通信的加密需要求。首先将所有的加密对象用编码规则组成的文件转换成为由二进制数组成的常规文件,再将二进制文件改造成不等长截取字组成二进制文件。加密操作是用位数与待加密的不等长明文截取字一一对应的密钥截取字进行相加得到密文文件,则密文文件由与明文截取字位置一一对应的密文截取字组成。解密是加密的逆过程,得到的是二进制明文截取字文件,最后再转换成常规文件。在加密过程中所用到的与密钥字相关的参数组成独立的密钥参数文件。密钥参数文件也采用二进截取字形式加密并借用现行的对短消息的保密传输方法,还要与密文文件分开时间传输,以造成时间上的随机性。

Description

一种基于不等长二进制截取字组成的明文进行加密和解密的 方法
技术领域
本发明涉及数字保密通信技术领域,具体而言,尤其涉及一种基于不等长二进制截取字组成的明文进行加密和解密的方法。
背景技术
现代通信发展迅猛,光纤网络几乎布满世界,无线通信已经进入5G时代,万物互通的前景越来越广阔。同时对通信保密的要求也越来越高。近代信息论的奠基人C.E.Shannon将密码学纳入通信理论,称之为保密通信。数字通信离不开编码,公开的编码称为明码,进一步将明码替换成不公开的码称为密码。从明码到密码的替代一般通过替代表实现。进一步,分为单表替代和多表替代。在多表替代中又存在一字一密的系统。也就是,一个明文字使用一个密码表,则形成逐字随机加密,称为绝密系统。这种方法的复杂性是可想而知的。最接近一字一密的系统是Vigenere加密系统和广义Vigenere加密系统。其做法是,先有一组有限长的密钥表,然后再将其周期性延长,扩展成一个无限长密钥表。严格讲,这样的系统仍然不能做到逐字随机加密,因为不同周期中是相同密钥表,而且已有破译的理论指导方法。本发明用不等长二进制明文截取字和对应的二进制密钥截取字的相加得到由截取字构成的密文字,就能构成逐字随机加密的绝密系统。一般常规文件中的码字只对应等长的二进制编码,再将等长的二进制编码切割成不等长的二进制编码,造成完全的非对应关系,进一步,密钥字也是不等长二进制截取字的结构;由不等长就容易形成一字一密的绝密系统。
发明内容
根据上述提出的技术问题,而提供一种基于不等长二进制截取字组成的明文进行加密和解密的方法。本发明采用的技术手段如下:
一种基于不等长二进制截取字组成的明文进行加密和解密的方法,包括:
在消息发送方,首先将所有的加密对象转换成标准二进制数序列,即常规文件,记为Fo(w),w是文件编号;将常规文件转换成具有特殊数据结构的明文,具有特殊数据结构的明文是由不等长二进制截取字组成的明文文件
Figure BDA0003198384780000021
将加密所需要的密钥参数组成密钥参数文件,记为
Figure BDA0003198384780000022
构造与不等长二进制截取字组成的明文结构对应的由标准二进制组成的密钥文件
Figure BDA0003198384780000023
再转化为与明文文件结构对应的非标准不等长二进制截取字的密钥文件
Figure BDA0003198384780000024
用密钥文件对明文文件加密成密文截取字文件
Figure BDA0003198384780000025
将密文文件和密钥参数文件进行存储并传输给接收方;
在接收方,打开接收到的密钥参数文件,用相关的密钥参数,对密文二进制文件进行解密,得到明文文件
Figure BDA0003198384780000026
最后再将明文截取字文件转换为常规的文件。
进一步地,加密的对象包括计算机系统与通信系统中所处理和传输的文字、图像、数字化声音一系列信息交流的内容;
所述明文截取字文件
Figure BDA0003198384780000027
密钥字文件
Figure BDA0003198384780000028
密文截取字文件
Figure BDA0003198384780000029
中,下标p表示页,下标s表示段,下标r表示行,下标n表示截取字序号。
进一步地,所述不等长截取字包括明文截取字、密钥截取字和密文截取字,分别对应的截取字文件包括明文截取字文件、密钥截取字文件和密文截取字文件,三种截取字文件的数据结构描述如下:
以二进制位数划分出五层数据单位:
第一层是文件,记为
Figure BDA00031983847800000210
Figure BDA00031983847800000211
其中,w=1,…,W为文件的编号,子文件
Figure BDA00031983847800000212
Figure BDA00031983847800000213
c=0,1,…C,j=1,…,J;c指明子文件号,j作为分组分界线poj,roj,noj的下标;表明有C个分组,每组构成一个子文件,对于
Figure BDA00031983847800000214
i指明有由分界线造成的分组的组内截取字位置在内部的变化规则,w=1,…W;
第二层是页,记为P(p),令页的编号为p=1,…,P;
第三层是段,记为S(s),令段的编号为s=1,…,S;
第四层是行,记为R(r),令行的编号为r=1,…,R;
第五层是截取字,记为Bn(z+e),n=1,…,N表示截取字的序号,e=0,1,…,E-1表示截取字的附加位数,z表示所有截取字最前面的固定位数,z∈{e},z的具体值由设计者决定并且选定后保持不变,n,z,e均是十进制数;
一个完整的明文截取字的二进制表示为:
Bw,p,s,r,n[(z+e)mod(Me)],e=0,1,…,Me
其中,Me=z+E-1表示模,这样构成一行截取字;单从二进制位数角度,将一行截取字组成一个循环队列,即规定从n=1和e=0开始,当z+e=(z+E-1)=Me之后,就给出一行截取字,然后再回到n=1和e=0;通过令r=r+1,使之移到下一行,重复上一行的过程就获得新的一行截取字,如此下去,当r=R以后,使之移到下一段,令s=s+1,当s=S以后,令p=p+1,使之移到下一页,当p=P以后就结束当前文件;根据z+e,z表示位数,e=0,1,…,E-1指出附加位数,对应于文件中的一个截取字,截取字结构以行为单位划分,而每行内部的截取字的位数逐位增长直到第N=E-1个截取字,各行之间具有相同的截取字结构;以下描述均省略段符号s;
上述对明文截取字文件的描述同样适用于密钥截取字文件和密文截取字文件;统一表示为:
Bp,r,n[(z+<e|k|y>)mod(M<e|k|y>)],<e|k|y>=0,1,…,M<e|k|y>
其中,M<e|k|y>=z+<e|k|y>-1表示模,其中,<e|k|y>表示e或k或y;以上除了M和B是英文字母外其它字母都是代表十进制数,B表示要将[*]中的用*表示对应于二进制数的十进制数;由于最后一页的最后一行的截取字的位数可能不足以构成由式z+<e|k|y>,e=k=y=0,1,…,z+<E|K|Y>规定的结构,需要在文件最后增加若干个0来凑成所要求的结构,并用Tu(t)、Tk(t)和Ty(t)记录所补充的0个数。
进一步地,为了增强保密性,赋予三种所述截取字文件结构具有如下变型结构的机制,以下为了简化,在下标中省去段的符号s:
在所述明文文件
Figure BDA0003198384780000041
和密钥文件
Figure BDA0003198384780000042
中,根据页号p、行序号r和字序号n设定J个分界线,记为[p0j,r0j,n0j,j=1,…,J]设定为组的分界线;从[p0j,r0j,n0j]开始直到[p0J,r0J,n0J]再返回到[p1,r1,n1]分别将二个文件同步分成C个组,随着j取不同值可以对应的子文件表示为:
明文文件
Figure BDA0003198384780000043
对应明文子文件
Figure BDA0003198384780000044
c=0,1,…C,用于下面的两种文件;
密钥文件
Figure BDA0003198384780000045
对应密钥子文件
Figure BDA0003198384780000046
其中,j=1,…,J指定J个文件分界线下标,依据分界线将三种文件分成C部分,如c=0,1,…C对应于j=1~j,…,jc~jc+1-1,…,jC-1~jJ,i=1,…,I,i指明组内截取字位置变化规则;
密文文件
Figure BDA0003198384780000047
对应地有密文子文件
Figure BDA0003198384780000048
三种截取字Bp,r,n[e],Bp,r,n[k],Bp,r,n[y]分别对应于明文字,密钥字,密文字,c∈{j},j=1,…,J-1,这种结构增加保密性;
所述密钥字文件
Figure BDA0003198384780000049
进一步还可有另外的变换结构
Figure BDA00031983847800000410
其中,上标i指明对子文件
Figure BDA00031983847800000411
内部的密钥字再做变化,比如子文件内同一个密钥字序号下各行的密钥字做一定数量的行循环换位、隔行交换、组内逆循环,或者由设计者给出其它多种合理变化规则,又进一步增加保密性,两种变化的子文件合写成
Figure BDA00031983847800000412
所述密文截取字文件
Figure BDA00031983847800000413
的结构和内容随着明文截取字文件
Figure BDA00031983847800000414
和变换结构
Figure BDA00031983847800000415
相加的结果变化,对应有子文件
Figure BDA00031983847800000416
将上述关于明文截取字文件和密钥截取字文件的变化机制的种类编号分别记录在SL(i),i=1,…,I,SR(j),j=1,…,J和SL(i),i=1,…,I中,SR(j)指明明文字文件和密钥字文件被文件内部分界线[p0j,r0j,n0j,j=1,…,J]分成子文件并且其位置随j值的变化而变化,SL(i)指明密钥子文件内部的截取字位置的再变化规则。
进一步地,具体的加密方法如下:
加密公式:
B[Yp,r,n(z+y)mod(My)]∶=B[Up,r,n(z+e)mod(Me)
+B[Kp,r,n(z+k)mod(Mk)
y=e=k=0,1,…,E-1
其中,∶=是赋值符号,B[Up,r,n(z+e)mod(Me)]为明文截取字,B[Kp,r,n(z+k)mod(Mk)]为密钥截取字,规定k=0,1,…,E-1,取z+k的最大值作为密钥截取字循环队列的模Mk=max(z+k),B[Yp,r,n(z+y)mod(My)]为密文截取字,y=0,1,…,E-1取z+y的最大值作为密文截取字循环队列的模My=max(z+y),其中,B[Kp,r,n(z+k)mod(Mk)]≠0以保证密钥不出现全0,以避免使得密文截取字等于明文截取字。
进一步地,所述加密方法还包括设置三个循环队列指针作为加密工具的步骤,其中,下标均省略参数段s,具体如下:
①指针
Figure BDA0003198384780000051
对应于行明文截取字循环队列当前位置的元素,在循环过程中指明第p页第r行第n号e的具体值,并且最后总是回到起点;考虑到z是规定值,故指针位置仅用e指出;
②指针
Figure BDA0003198384780000052
对应于行密钥截取字循环队列当前位置的元素,在循环过程中指明第p页第r行第n号k的具体值,并且最后总是回到起点;考虑到z是规定值,故指针位置仅用k指出;
③指针
Figure BDA0003198384780000053
对应于行密文截取字循环队列当前位置的元素,在循环过程中指明第p页第r行第n号y的具体值,并且最后总是回到起点;考虑到z是规定值,故指针位置仅用y指出;
y=e=k=[0,1,…,E-1]mod(M<e|k|y>)指出队列指针循环移动;由于上述循环队列总是从头再回到头,所以仅需给出一个头指针,而且规定头指针直接给定队列中位置中的元素。
进一步地,所述加密方法还包括以程序的形式对加密过程进行说明的步骤,具体如下:
步骤S1:从密钥参数文件中读取必要密钥参数,包括[p0,r0,n0,SR(j),SL(i),P,R,N,z,E];
步骤S2:根据SR(j)中指定的分界线[[poj,roj,noj,j=1,…,J将明文文件和密钥字文件各分成两个子文件,明文子文件
Figure BDA0003198384780000061
[c∈{j}<J],将标准二进制文件
Figure BDA0003198384780000062
重排序成密钥截取字子文件
Figure BDA0003198384780000063
形成子文件的具体操作描述如下:
令p=p0,r=r0,n=n0不断地做r=r+1,n=n+1直到p=P,r=R,n=N,随下标变化做如下一系列操作:
Figure BDA0003198384780000064
Figure BDA0003198384780000065
将两个子文件包含后半部的截取字搬到第2个子文件中;
令p=1,r=1,n=1不断地做r=r+1,n=n+1直到p=p0,r=r0,n=n0-1,做如下一系列操作:
Figure BDA0003198384780000066
Figure BDA0003198384780000067
将两个子文件包含的前半部的截取字搬到第1个子文件中;
再做
Figure BDA0003198384780000068
Figure BDA0003198384780000069
&为文件连接符;
最后得到截取字的位置被调换的子文件;
步骤S3:根据SL(i)的规则,对两个密钥截取字子文件
Figure BDA0003198384780000071
Figure BDA0003198384780000072
中的截取字的位置做规定的变化,得到相应的两个密钥截取字子文件
Figure BDA0003198384780000073
Figure BDA0003198384780000074
注意,此处虽没有指明i的具体值,但设计者完全可以理解,并选择合适的令截取字位置发生变化的子文件;
再做
Figure BDA0003198384780000075
Figure BDA0003198384780000076
得到由新的子文件变换位置的变换的明文文件和密钥文件;
步骤S4:加密操作:
Figure BDA0003198384780000077
其中
Figure BDA0003198384780000078
表示两个矩阵的二进制相加;将文件作为矩阵对待,由截取字序号和行序号联合指定其中的截取字。
进一步地,具体的解密方式如下:
方式一:解密公式
B[Up,s,r,n(z+e)mod(Me)
∶=B[Yp,s,r,n(z+y)mod(My)]-B[Kp,s,r,n(z+k)mod(Mk),
y=e=k=0,1,…,E-1];
方式二:采用矩阵减法运算的形式来表示解密运算
Figure BDA0003198384780000079
Figure BDA00031983847800000710
上述运算将子文件的连接顺序已经做了颠倒,得到前后两部分顺序正确的明文文件,上式中,-表示文件矩阵减法符号;也可以按颠倒的顺序做连接
Figure BDA00031983847800000711
这样即使被破译,也只能是次序颠倒的明文,又增加了保密性;当接收方需要时再根据密钥参数文件提供的分界线的位置,将前后被颠倒的两部分再颠倒回来,得到最后的明文文件。
进一步地,所述密钥参数包括:截取字的固定位数z、一行截取字的最大附加位数E-1、分界线p0j,r0j,n0j,e0j、文件分组规则SR(j),j=1,…,J、子文件内截取字变化规则SL(i),i=1,…,I(也是子文件中对应一个n下的所有r指出的列截取字)、加密和解密程序。
进一步地,所述对密钥参数文件进行存储并传输给接收方的具体方法如下:
首先,将SR(j),[[p0j,r0j,n0j,j=1,,J],SL(i),i=1,…,I,P,S,R,N,z,E中的每一个字符转换成一个适当位数的二进制数,所述适当位数为根据前述的编码规则规定的密钥字中的符号最多需要的位数,并对各参数的意义和使用方法进行说明,构成密钥参数文件,采用所述加密方法将密钥参数和说明加密后存到
Figure BDA0003198384780000081
中;
其次,对明文截取字文件的加密和解密程序进行存储和传输,对于单向通信,由发送方设计解密程序并发送到接收方,对于双向通信,发送方要将加密和解密程序加密后存到
Figure BDA0003198384780000082
最后,令
Figure BDA0003198384780000083
采用将
Figure BDA0003198384780000084
存储在加密U盘中并由专人送达或现有的信息加密方法,如数字签名方法,进行加密后传输,
Figure BDA0003198384780000085
的传送要与密文发出的时刻隔开一定时间,造成时间上的随机性;接收方在接到后立即将接收到的
Figure BDA0003198384780000086
文件加上密码,只有输入正确密码才能打开,当遇到无密码打开时就报警,以此防黑客入侵。
较现有技术相比,本发明具有以下优点:
1、本发明提供的基于不等长二进制截取字组成的明文进行加密和解密的方法,将二进制数串剪裁成不等长的截取字,完全失去原来符号的意义。比如原来是有规律的8位代表一个符号,A、B、C、D四个英文字母符号,其ASCII码为(A 00100001)(B 00100010)(C00100011)(D 00100100),共32位二进数,将其变成5、7、9、11位的四个截取字,则是(00100)、(0010010)、(001000100)、(01100100100),仍是32位二进数,但是已经失去了原来字符的意思。虽然本发明所举之列是每行是相同结构的明文截取字和密钥截取字,但前者是由随机产生的明文截取字转换过来的,密钥截取字是由设计者决定的,而且可以经过几种打破原先规则的变化,更加使得明文截取字和密钥截取字之间的没有关联性。
2、本发明提供的基于不等长二进制截取字组成的明文进行加密和解密的方法,具有多种密钥参数,他们的组合数量是相当大的。假设常规文件一页有40行,共2650个字符,总共21200个二进制位。规定一行截取字位数由[Z=9,e=0,1,…,27(E=28-1)]决定,则一行位数为[9+10+…+35+36=(36+9)*28/2=1134位/行],每行截取字组成一个循环队列;将一页分成2个子页,则一个子页有20行;令(r0=21,n0=10)作为分界线,密钥字分成四组,一组10行,在每一组内可以正序或逆序两种排列,则密钥字有(24×24=28=256)种组合情况;一页分界线从行方向讲有40种,从一行内截取字方向上讲有28种可能性,则分界线与密钥字的联合排列数是40×28×256=286720种;z和E联合的组合数是518种;这些密钥参数联合起来是148520960种可能性;进一步,再考虑每页情况不同组合情况更大,其中任何一个参数发生变化都会引起整体的变化。注意,这是在许多参数已知的条件下计算出来的,如果不知上述参数就无从算起。而且这些密钥参数之间是没有任何关联的。没有概率意义上的先验知识。只要密钥参数文件不被破译,密文是不可能被破译的。因此,这是一种真正的绝密系统。
3、本发明提供的基于不等长二进制截取字组成的明文进行加密和解密的方法,在上述绝密系统的支持下,可以将重要文件用密文形式保存在计算机、手机等可以与网络相关联的电子设备中,在需要使用时再进行解密,从而可以防止网络泄密。
基于上述理由本发明可在数字保密通信等领域广泛推广。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方法流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,对以下名词进行解释说明:
常规文件:计算机系统和通信系统中所处理和传输的文字、图像、数字化声音等各种信息交流的内容用规定好的编码形成,比如最常用的ASCII码,组成的文件;
二进常规文件,记为Fo(w):由标准编码规则规定的符号的二进制位数单位(如8位、16位等)组成的文件;可以被拆分为若干个子文件,记为Foj(w),j=1,…,J;其实,前面所说的由ASCII码得到编码文件在计算机内部就是二进制数表示,以下不再对二进常规文件与常规文件作区别;
明文截取字文件记为
Figure BDA0003198384780000101
简称明文字文件,子文件记为
Figure BDA0003198384780000102
Figure BDA0003198384780000103
明文截取字循环队列指针:
Figure BDA0003198384780000111
密钥截取字文件,简称为密钥字文件或密钥文件,有多种表示形式:
Figure BDA0003198384780000112
称为标准密钥字文件,
Figure BDA0003198384780000113
是经过变换了的密钥字文件;需要说明的是,
Figure BDA0003198384780000114
这个文件可以以隐形方式存在,解释如下:这是与明文截取字对应的r个系列的一维数组组成的标准二进制数组,对应于一个r,可以有n个位数不等的截取字,本发明称r为行,n为截取字序号,同一个n下,不同行的密钥字组成一列,它们的位数是相同的标准二进制数,即一列中的二进制数是按标准方式排列的,可以通过变换将一行中标准二进制数的位置打乱就转变成非标准二进制的密钥文件;由于已知
Figure BDA0003198384780000115
是标准形式,这就为变换提供依据,所以可以只给名称,而没有内容,故说为以隐形方式存在;
Figure BDA0003198384780000116
的另一种表示
Figure BDA0003198384780000117
其中j=0,1,…,J-1是分界线的下标,本发明为了简化,多数情况下取p0,r0,n0意指一个分界线将文件分成二部分,上标c是子文件的序号;
密钥截取字列循环队列指针:
Figure BDA0003198384780000118
密钥参数文件,记为
Figure BDA0003198384780000119
记录加密和解密中需要的一些参数;
密文截取字文件记为
Figure BDA00031983847800001110
简称作密文文件,子文件记为
Figure BDA00031983847800001111
Figure BDA00031983847800001112
密文截取字循环队列指针:
Figure BDA00031983847800001113
∶=赋值附号,如:将明文截取字存入常规文件2中,即
Figure BDA00031983847800001114
记录Tu(t)、Tk(t、)Ty(,三种截取字文件
Figure BDA00031983847800001115
Figure BDA00031983847800001116
最后尾部所补充的0个数;
Figure BDA00031983847800001117
&表示两个文件之间的连接符,本发明中,两个文件的连接只要根据p,r,n的变化关系直接就将两者的内容连接起来了;
基于上述文件对本发明的加密和解密方法进行具体说明:
一种基于不等长二进制截取字组成的明文进行加密和解密的方法,包括:
在消息发送方,首先将所有的加密对象用现行的任何一种编码规则,比如ASCII码,转换成标准二进制数序列,即常规文件,所说的标准二进制指的是数学中通常使用的二进制数,这样由标准二进制数构成的文件,称为常规文件,记为Fo(w),w是文件编号;为了加密,将常规文件转换成具有特殊数据结构的明文;再将加密所需要的密钥参数组成密钥参数文件,记为
Figure BDA0003198384780000121
将密钥参数文件进行存储并传输给接收方;
在接收方,打开接收到的密钥参数文件,用相关的密钥参数,对密文二进制文件进行解密,由于加密和解密过程没有改变各种截取字文件
Figure BDA0003198384780000122
Figure BDA0003198384780000123
Figure BDA0003198384780000124
的结构,所以解密之后得到的就是明文截取字文件,最后再将明文截取字文件转换为常规的文件。
具体实施时,作为本发明所选的实施方式例,加密的对象包括计算机系统与通信系统中所处理和传输的文字、图像、数字化声音一系列信息交流的内容;
所述特殊数据结构的明文为以不等长截取字为单位组成的二进制文件,即明文截取字文件,记为
Figure BDA0003198384780000125
其中,以下标p、s、r、n分别将文件分成页、段、行和截取字序号;
所述不等长截取字对应于同样不等长的密钥字,由密钥字组成密钥字文件,密钥字文件包括标准二进制结构和变换结构;其中,标准二进制结构为规则排列的隐形文件,隐形文件的内容可以不出现,即隐形文件是按标准二进制排列的,对于加密者等于内容已知;变换结构为根据变换种类的不同形成的子文件,记为
Figure BDA0003198384780000126
c=1,…,C,j=1,…,J,i=1,…,I,其中,c表示子文件数和号,j是子文件分界线的下标;i指明对应于子文件内部截取字的变化规则,如内部逆序、隔位交换,或由设计者所规定的某种规则;按照下标的变化规则,根据
Figure BDA0003198384780000127
的下标将标准二进制排列根据SR(j)指定的分界线和SL(i)指定变化规则变换截取字变成非标准二进制排列,产生一个变换的密钥截取字文件
Figure BDA0003198384780000128
采用密钥截取字对明文截取字文件进行加密,形成密文字文件,记为
Figure BDA0003198384780000129
具体实施时,作为本发明所选的实施方式,所述不等长截取字包括明文截取字、密钥截取字和密文截取字,分别对应的截取字文件包括明文截取字文件、密钥截取字文件和密文截取字文件,三种截取字文件的数据结构描述如下:
以二进制位数划分出五层数据单位:
第一层是文件,记为
Figure BDA00031983847800001210
Figure BDA00031983847800001211
其中,文件的编号为w=1,…,W,为了简化,在以下的叙述中常常省略文件标记w,也就是说只描述一个文件的加密和解密;文件可以分成若干个子文件,记为
Figure BDA00031983847800001212
第二层是页,记为P(p),令页的编号为p=1,…,P;
第三层是段,记为S(s),令段的编号为s=1,…,S;
第四层是行,记为R(r),令行的编号为r=1,…,R;
第五层是截取字,记为Bn(z+e),n=1,…,N表示截取字的序号,e=0,1,…,E-1表示截取字的附加位数,z表示所有截取字最前面的固定位数,z∈{e},z的具体值由设计者决定并且选定后保持不变,n,z,e均是十进制数;
一个完整的明文截取字的二进制表示为:
Bw,p,s,r,n[(z+e)mod(Me)],e=0,1,…,Me
其中,Me=z+E-1表示模,这样构成一行截取字;单从二进制位数角度,将一行截取字组成一个循环队列,即规定从n=1和e=0开始,当z+e=(z+E-1)=Me之后,就给出一行截取字,然后再回到n=1和e=0;通过令r=r+1,使之移到下一行,重复上一行的过程就获得新的一行截取字,如此下去,当r=R以后,使之移到下一段,令s=s+1,当s=S以后,令p=p+1,使之移到下一页,当p=P以后就结束当前文件;根据z+e,e=0,1,…,E-1对应于文件中的一个截取字,截取字结构以行为单位划分,而每行内部的截取字的位数逐位增长直到第N个截取字,各行之间具有相同的截取字结构;以下描述均省略段符号s;
上述对明文截取字文件的描述同样适用于密钥截取字文件和密文截取字文件;统一表示为:
Bp,r,n[(z+<e|k|y>)mod(M<e|k|y>)],<e|k|y>=0,1,…,M<e|k|y>
其中,M<e|k|y>=z+<e|k|y>-1表示模,其中,<e|k|y>表示e或k或y;这种由截取字构成称的文件结构比较整齐,既有利于保密,又比较整齐,便于实现加密和解密;但是由于最后一页的最后一行的截取字的位数可能不足以构成由式z+<e|k|y>,e=k=y=0,1,…,z+<E|K|Y>规定的结构,需要在文件最后增加若干个0来凑成所要求的结构,并用Tu(t)、Tk(t)、Ty(t)记录所补充的0个数。
为了增加保密性,可以变化出多种结构;比如,各行各段各页的结构都不一样,但这样一来,获得的效益不一定大,反而增加了系统的复杂性;再比如,可令行内截取字的附加位数按降序组织,即e=E-1,E-2,…,1,0,具体选择由设计者权衡;以下Bx..x[*]表示二进制数,其中*和x..x是十进制数,下标w,p,s,r,n分别是十进制表示的该截取字所属的文件、页、段、行和截取字的编号;下面的描述中,当不破坏上下文理解时,可适当省略上层编号。规定一行内的截取字的位数是递增序排列,最大位数是Me
需要注意的是,上述对文件的五层结构并非严格规定的,只要保证截取字的位数不等长,具体实现加密程序设计者可以根据不同需要灵活构造其它结构;
具体实施时,作为本发明所选的实施方式,为了增强保密性,赋予三种所述截取字文件结构具有如下变型结构的机制:
所述明文截取字文件
Figure BDA0003198384780000141
是将常规文件中的等长位数二进制数按不同位数截取成不等位数的截取字而成的文件,每一行的截取字可组成一个循环队列;表1给出了一个例子:
表1明文截取字表(表中用加粗和不加粗字体指明相邻符号二进位的拆分和拼接情况)
Figure BDA0003198384780000142
在明文截取字文件
Figure BDA0003198384780000143
的基础上,构成其变换结构,如下:
根据行序号r和字序号n设定若干分界线,将一页分成若干组,分界线记为[p0j,r0j,n0j,j=1,…,J设定为组的分界线;
所述密钥截取字文件
Figure BDA0003198384780000144
被分成标准二进制结构和变换结构二种,标准二进制结构
Figure BDA0003198384780000145
和变换结构
Figure BDA0003198384780000146
下面是几种变换的举例:
指定J个分界线poj,roj,noj,j=0,1,…,J-1,将文件
Figure BDA0003198384780000147
分成C组,从任一j开始,循环使用下标,回到J-1,就会得到不同排序的截取字组成的不同子文件
Figure BDA0003198384780000148
用a:=x记忆循环次数,就会得到与x匹配的子文件;再根据SL(i)中的i对组内的截取字在组内变化,如i=1是组内循环移位,i=2是组内隔位交换,i=3是组内隔二位交换,又可得到另一种变化后的密钥子文件
Figure BDA0003198384780000149
所述密文截取字文件
Figure BDA00031983847800001410
的结构和内容随着明文截取字文件
Figure BDA00031983847800001411
和变换结构
Figure BDA00031983847800001412
相加的结果变化;
具体实施时,作为本发明所选的实施方式,具体的加密方法如下:
加密公式:
B[Yp,r,n(z+y)mod(My)]∶=B[Up,r,n(z+e)mod(Me)
+B[Kp,r,n(z+k)mod(Mk)
y=e=k=0,1,…,E-1
其中,∶=是赋值符号,B[Up,r,n(z+e)mod(Me)]为明文截取字,B[Kp,r,n(z+k)mod(Mk)]为密钥截取字,规定k=0,1,…,E-1,取z+k的最大值作为密钥截取字循环队列的模Mk=max(z+k),B[Yp,r,n(z+y)mod(My)]为密文截取字,y=0,1,…,E-1取z+y的最大值作为密文截取字循环队列的模My=max(z+y),其中,B[Kp,r,n(z+k)mod(Mk)]≠0以保证密钥不出现全0,以避免使得密文截取字等于明文截取字。
具体实施时,作为本发明所选的实施方式,所述加密方法还包括设置三个循环队列指针作为加密工具的步骤,其中,下标均省略参数段s,具体如下:
①指针
Figure BDA0003198384780000151
对应于行明文截取字循环队列当前位置的元素,在循环过程中指明第p页第r行第n号e的具体值,并且最后总是回到起点;考虑到z是规定值,故指针位置仅用e指出;
②指针
Figure BDA0003198384780000152
对应于行密钥截取字循环队列当前位置的元素,在循环过程中指明第p页第r行第n号k的具体值,并且最后总是回到起点;考虑到z是规定值,故指针位置仅用k指出;
③指针
Figure BDA0003198384780000153
对应于行密文截取字循环队列当前位置的元素,在循环过程中指明第p页第r行第n号y的具体值,并且最后总是回到起点;考虑到z是规定值,故指针位置仅用y指出;
y=e=k=[0,1,…,E-1]mod(M<e|k|y>)指出队列指针循环移动;由于上述循环队列总是从头再回到头,所以仅需给出一个头指针,而且规定头指针直接给定队列中位置中的元素。
具体实施时,作为本发明所选的实施方式,所述加密方法还包括以程序的形式对加密过程进行说明的步骤,具体如下:
步骤S1:从密钥参数文件中读取必要密钥参数,包括p0,r0,n0,SR(j),SL(i),i=1,…,I;P,R,N,z,为了简化算法的描述,将明文截取字文件拆分为前后两部分并将两部分次序颠倒构成新文件,也就是说仅设一个分界线,分界线可以是任一行的任一截取字之前,令p=p0,r=r0,n=n0作为后面部分的起点,则p=p0,,r=r0,n=n0-1就是前面部分的结尾;
步骤S2:根据SR(j)中指定的规则对密钥字文件进行第一次重排序,将标准二进制文件
Figure BDA0003198384780000161
重排序成密钥截取字文件
Figure BDA0003198384780000162
下面是密钥字文件第二次重排序的例子:设SL(i),在此例中i=1,表示为如下规矩:将相同位数的密钥字分组再在组内逆序;本实施例中,仅列举一页例子:
Figure BDA0003198384780000163
的一页包含12行,R=12,分成3组,一组4行,组别由c=1,…,C指出,从r=1到r=4是第c=1组,从r=5到r=8是第c=2组,从r=9到r=12=R是c=3组;采用模减法可直接得到逆序的行号,比如,正序r1=[1,2,3,4]行,则逆序为
Figure BDA0003198384780000164
其中5是第一组的模,设正序是(r1~r4),(r5~r8),(r9~r12)共3组,第c组的模记为
Figure BDA0003198384780000165
即该组最大行号加1;于是,分组逆序的算法可写成:
①令rc=1,rC-1=R,n=1;
②将第n列密钥字第c组逆排序,
Figure BDA0003198384780000166
本组最大行号,将标准密钥字文件逐个截取字转移到第2次变换密钥字文件中,
Figure BDA0003198384780000167
其中,n=n+1,判断
Figure BDA0003198384780000168
③判断
Figure BDA0003198384780000169
④得到组内顺序变换后密钥字文件
Figure BDA00031983847800001610
为了编程方便,将文件下标改回原状
Figure BDA00031983847800001611
这样并不影响下面包括的加密和解密的操作;因为密钥字本来就是由设计者定的,下标
Figure BDA00031983847800001612
仅仅是一个对应于逆排序的临时变量,其作用就是为从标准二进制结构的文件
Figure BDA00031983847800001613
变换到新结构的密钥字文件所用;
步骤S3:做
Figure BDA00031983847800001614
做加密
Figure BDA00031983847800001615
在本实施例中,下面的程序例子仅取一个分界线;以下的描述中多了使用指针的一步,只是为了说明程序的描述是多样的;
(1)对文件做第一次变换后对其第c=2部分
Figure BDA00031983847800001616
的加密程序:
i.令p=p0——指定文件当页变换和加密的页数的起点;
ii.令r=r0——指定文件当页变换和加密的行起点,也是第c=2部分的起点;
iii.令n=n0——指定文件当页变换和加密的一行中截取字的起点;
①从明文截取字和密钥截取字文件中分别读取一个明文字和对应的一个密钥字,即
Figure BDA0003198384780000171
做如下运算即可得到密文字:
Figure BDA0003198384780000172
②将密文字存入密文文件中,即
Figure BDA0003198384780000173
y=y+1mod(My),e=e+1mod(Me),k=k=k+1mod(Mk);
③n=n+1,判断
Figure BDA0003198384780000174
④做r=r+1,判断
Figure BDA0003198384780000175
⑤做p=p+1,判断
Figure BDA0003198384780000176
⑥结束对第c=2部分的加密,得到第1部分密文文件
Figure BDA0003198384780000177
(2)对第c=1部分
Figure BDA0003198384780000178
的加密程序:
i.令p=1——指明文件当页变换和加密的页数的起点;
ii.令r=1——指明文件当页变换和加密的行起点;
iii.令n=1——指明文件当页变换和加密的一行中截取字的起点;
①从明文截取字和密钥字文件中分别读取一个截取字和对应的一个密钥字,即
Figure BDA0003198384780000179
表示密钥文件经第一次重排的第1部分后再做第二次变换,取第一种类型的组内逆循环变化,做如下运算:
Figure BDA00031983847800001710
y=y+1mod(My),e=e+1mod(Me),k=k=k+1mod(Mk);
②将密文字存入密文文件第2部分中,即
Figure BDA00031983847800001711
③n=n+1,判断
Figure BDA00031983847800001712
④做r=r+1,判断
Figure BDA00031983847800001713
⑤做p=p+1,判断
Figure BDA00031983847800001714
⑥结束对第c=1部分的加密,得到
Figure BDA00031983847800001715
具体实施时,作为本发明优选的实施方式,具体的解密公式如下:
B[Up,s,r,n(z+e)mod(Me)
∶=B[Yp,s,r,n(z+y)mod(My)]-B[Kp,s,r,n(z+k)mod(Mk),
y=e=k=0,1,…,E-1]。
第一步:对第1部分
Figure BDA0003198384780000181
的解密程序:
起点:文件起点,即p=1,r=1,n=1,e=0,k=0,y=0;
终点:p=p0,r=r0,n=n0-1;
i.令p=1——将指明对整个文件的第一层循环起点;
ii.令r=1——将指明对所有段的第二层循环起点;
iii.令n=1——将指明对一行截取字加密起点;
①从密文截取字和密钥截取字文件中分别读取一个截取字,即:
Figure BDA0003198384780000182
做如下运算:
Figure BDA0003198384780000183
②将解密后的明文截取字存入常规文件中;
③n=n+1,判断
Figure BDA0003198384780000184
④做r=r+1,判断
Figure BDA0003198384780000185
⑤做p=p+1,判断
Figure BDA0003198384780000186
⑥结束对第c=1部分的解密;
第二步:对第c=2部分
Figure BDA0003198384780000187
的解密程序:
起点:p=p0,r=r0,n=n0,e=e0,k=k0,y=y0,N,E,z;
终点:文件结尾,即p=P,r=R,n=N;
i.令p=p0——将指明对整个文件的第一层循环起点;
ii.令r=r0——将指明对所有段的第二层循环起点;
iii.令n=1——将指明对一行截取字加密起点;
①从密文截取字和密钥字文件中分别读取一个截取字和对应的一个密钥字,即
Figure BDA0003198384780000188
做如下运算:
Figure BDA0003198384780000189
Figure BDA00031983847800001810
y=y+1mod(My),e=e+1mod(Me),k=k=k+1mod(Mk);
②将解密后的明文截取字存入常规文件中;
③n=n+1,判断
Figure BDA0003198384780000191
④做r=r+1,判断
Figure BDA0003198384780000192
⑤做p=p+1,判断
Figure BDA0003198384780000193
⑥仿照①~⑤,完成对第j=2部分的加密;
⑦做连接操作,
Figure BDA0003198384780000194
&是连接符号;
⑧根据Tu(t)记录去掉解密后的明文截取字文件被补充的0,则得到常规文件;
Figure BDA0003198384780000195
这里只要直接做一个连接操作就可以得到常规文件;由于,在做解密时是先做前面部分再做后面部分,而连接又是很简单的操作,因为只要根据
Figure BDA0003198384780000196
Figure BDA0003198384780000197
中的下标很容易找到二部分的分界线,就可以连接成
Figure BDA0003198384780000198
&为连接符,虽然称作为截取字文件,但在截取字之间是没有分界的,只要按常规文件编码规则取相等位数的二进制数就是常规文件,因此可以直接做
Figure BDA0003198384780000199
就行。
最后,令
Figure BDA00031983847800001910
可以使用原始的方法将
Figure BDA00031983847800001911
存储在加密U盘中并由专人送达,或者利用现有的信息加密等领域中的相关技术,如区块链、数字签名中的保密技术中方法,等等,进行传输,
Figure BDA00031983847800001912
的传送要与密文发出的时刻隔开一定时间,造成时间上的随机性;接收方在接到后立即将接收到的
Figure BDA00031983847800001913
文件加上密码,只有输入正确密码才能打开,当遇到无密码打开时就报警,以此防黑客入侵。
实施例1
(1)常规文件
i.该常规文件用数组存储的由35个字符组成ABCD@EFGH@IJKL@MNOP@QRST@UVWX@YZABCD@;
ii.对应的ASCII码用一维数组O(d),d=1,…,280来存储这35*8=280个二进位数,下面是所有符号对应的二进位数:
(A 00100001)(B 00100010)(C 00100011)(D 00100100)(E 00100101)
(@00100000)(F 00100110)(G 00100111)(H 00101000)(@00100000)
(I 00101001)(J 00101010)(K 00101011)(L 00101100)(@00100000)
(M 00101101)(N 00101110)(O 00101111)(P 00110000)(Q 00110001)
(R 00110010)(@00100000)(S 00110011)(T 00110110)(U 00110111)
(V 00111000)(W 00111001)(X 00111010)(Y 00111011)(Z 00101101)
(A 00100001)(B 00100010)(C 00100011)(D 00100100)(@00100000)
(2)明文截取字文件
表1一个仅包含35个英文字符的压缩版的例子(表中表明,明文截取字多数是由二个符号的编码联合组成,分别用红黑二色分开。表被分成10行,则尾部少了二个截取字,由15个0补足。)
构造明文截取字文件的算法(省略页p和段二个参数),
首先设计一个获取截取字的循环子程序:
令r=1至R;
令n=1至N;
令e=0至E-1;
不断读取截取字
判断所读截取字是否为空,若是非空,继续循环做下去,若是空,则循环停止,做B[Ur,n(e)];=B[Ur,n(e-1)];接着计算0的个数并记录Tu(t)=E-(e-1)。
判断O(d)为空
Figure BDA0003198384780000201
Figure BDA0003198384780000202
{对上述程序的解释:这是一个四层循环程序的中文描述。当r=1、n=1、e=0时,开始从数组中逐个位读取二进数,4+0时得到第一个截取字;继续循环下去,到r=1、n=5、e=5-1时,得到第一行所有截取字;而且,每读一个截取字就存入明文截取字文件中;继续下去直到r=10、n=3、e=2后,再下去就取不到截取字了,因此要加一个判断O(d)]是否为空,再作相应的操作;}
表1明文截取字表(表中用加粗和不加粗字体指明相邻符号二进位的拆分和拼接情况)
Figure BDA0003198384780000203
Figure BDA0003198384780000211
(3)包含明文文件和密钥文件按分界线置换和密钥字分组逆排序以及相应的加密算法:
第一步:明文截取字按分界线的置换,分界线定为r=7,从r=8到10循环做如下操作:
Figure BDA0003198384780000212
Br,n[e]表示第r行第n号的对应于e的明文截取字由十进制转成二进制,
Figure BDA0003198384780000213
从r=1到7循环做如下操作:
Figure BDA0003198384780000214
Figure BDA0003198384780000215
Figure BDA0003198384780000216
&表示两个文件之间的连接符;
第二步:密钥截取字被分成二组的置换算法:
密钥参数及其值:P,R,N,z,E,z=4,e=0,1,...,E=4,P=1,r=1,…,10;
密钥字规则SR(j),SR(i),,组分界线是r0=7,i=1表示组内逆序;
明文截取字分界线及规则SR(j),以分界线r0=7为轴做前后二部分颠倒;当j=1时表明近一个分界线,应用r0j=7表示,下面省去下标中的j;
明文截取字按分界线也作为密钥截取字分组的分界线逆排序;
先给出n=1,…,5列标准二进制数,每一列位数与相应明文截取字的位数相等;
分界线定为r=7;
对于所有的n=1,…,5在表1的列方向上形成5个密钥字队列,各队列密钥字的二进位数与明文截取字的位数相等,并设定队列指针
Figure BDA0003198384780000217
r=k=1,…,10,n=1,…,5;
从r=8到10、n=1到5、k=10到8循环做如下操作:
Figure BDA0003198384780000218
Br,n[k]表示第r行第n号的密钥字k由十进制转成二进制;
Figure BDA0003198384780000219
从r=1到7、n=1到5、k=7到1循环做如下操作:
Figure BDA00031983847800002110
Figure BDA00031983847800002111
以上形成表2中明文截取字行和密钥截取字行,密文截取字是未加密的空行为了节省空间,表2中分别用两种灰色调表示为密钥字和密文字预留的空间,在加密后就变成有具体内容的密钥字和密文字(见附图表2)。
第三步:加密算法
从n=1到5循、r=1到10循环做如下操作:
从明文截取字和密钥截取字文件中分别读取一个截取字和对应的一个密钥字,即
Figure BDA0003198384780000221
做如下运算:
B[Yr,n(z+y)mod(My)]∶=B[Ur,n(z+e)mod(Me)
+B[Kr,n(z+k)mod(Mk),y=e=k=0,1,…,E-1]
Figure BDA0003198384780000222
将密文字存入密文文件中,即
Figure BDA0003198384780000223
最后形成包括明文截取字、密钥截取字和密文截取字在内的完整的表2。
Figure BDA0003198384780000224
表2外面的点画线箭头给出操作次序,即1先于2。
(4)解密:
从n=1到5、r=1到10循环做如下操作:
从密文截取字和密钥截取字文件中分别读取一个截取字,
Figure BDA0003198384780000231
Figure BDA0003198384780000232
做如下运算:
B[Ur,n(z+e)mod(Me)∶=B[Yr,n(z+y)mod(My)]
-B[Kr,n(z+k)mod(Mk),y=e=k=y
=0,1,…,E-1]mod(M<e|k|y>)
Figure BDA0003198384780000233
将解密字存入明文文件中,即
Figure BDA0003198384780000234
最后形成包括明文截取字、密钥截取字和密文截取字在内的完整的表3。
表3.解密表
Figure BDA0003198384780000235
(5)明文截取字的逆置换
从r=8到10循环做如下操作:
Figure BDA0003198384780000241
Figure BDA0003198384780000242
从r=1到7循环做如下操作:
Figure BDA0003198384780000243
Figure BDA0003198384780000244
Figure BDA0003198384780000245
&表示两个文件之间的连接符;
最后,要根据Ta(t)中的记录去掉多加入的0;
本发明在二进制数的条件下,使用了“不等长截取字”的手段形成了真正的一字一密的绝密系统。再加上在明文和密钥截取字文件中,使用了字序的换位手段,使得这种绝密系统的保密手段灵活多样,也可以叫做了一次一密。由于结构的灵活性,使得实现的加密和解密程序也是可以灵活的。本发明仅仅是给出了算法的例子,设计者可以用各种计算机语言编程实现一个一次一密的绝密系统。其中,通过ASCII码系统获得二进制码不是必要的,在网络通信时,可以直接在计算机操作系统底层直接获取进入网络之前的二进制码,再使用本发明中的加密和解密方法。该绝密系统的保密的一个关键是如何保证密钥文件不被截获和破译。本发明通过两个手段:一是密钥文件本身也用“不等长截取字”的手段加密,另外是借用现有的数字签名中方法单独传输密钥文件。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种基于不等长二进制截取字组成的明文进行加密和解密的方法,其特征在于,包括:
在消息发送方,首先将所有的加密对象转换成标准二进制数序列,即常规文件,记为Fo(w),w是文件编号;将常规文件转换成具有特殊数据结构的明文,具有特殊数据结构的明文是由不等长二进制截取字组成的明文文件
Figure FDA0003198384770000011
将加密所需要的密钥参数组成密钥参数文件,记为
Figure FDA0003198384770000012
构造与不等长二进制截取字组成的明文结构对应的由标准二进制组成的密钥文件
Figure FDA0003198384770000013
再转化为与明文文件结构对应的非标准不等长二进制截取字的密钥文件
Figure FDA0003198384770000014
用密钥文件对明文文件加密成密文截取字文件
Figure FDA0003198384770000015
将密文文件和密钥参数文件进行存储并传输给接收方;
在接收方,打开接收到的密钥参数文件,用相关的密钥参数,对密文二进制文件进行解密,得到明文文件
Figure FDA0003198384770000016
最后再将明文截取字文件转换为常规的文件。
2.根据权利要求1所述的基于不等长二进制截取字组成的明文进行加密和解密的方法,其特征在于,
加密的对象包括计算机系统与通信系统中所处理和传输的文字、图像、数字化声音一系列信息交流的内容;
所述明文截取字文件
Figure FDA0003198384770000017
密钥字文件
Figure FDA0003198384770000018
密文截取字文件
Figure FDA0003198384770000019
中,下标p表示页,下标s表示段,下标r表示行,下标n表示截取字序号。
3.根据权利要求2所述的基于不等长二进制截取字组成的明文进行加密和解密的方法,其特征在于,所述不等长截取字包括明文截取字、密钥截取字和密文截取字,分别对应的截取字文件包括明文截取字文件、密钥截取字文件和密文截取字文件,三种截取字文件的数据结构描述如下:
以二进制位数划分出五层数据单位:
第一层是文件,记为
Figure FDA0003198384770000021
Figure FDA0003198384770000022
其中,w=1,…,W为文件的编号,子文件
Figure FDA0003198384770000023
Figure FDA0003198384770000024
Figure FDA0003198384770000025
c指明子文件号,j作为分组分界线poj,roj,noj的下标,表明有C个分组,每组构成一个子文件,对于
Figure FDA0003198384770000026
i指明由分界线造成的分组的组内截取字位置在内部的变化规则;w=1,…W;
第二层是页,记为P(p),令页的编号为p=1,…,P;
第三层是段,记为S(s),令段的编号为s=1,…,S;
第四层是行,记为R(r),令行的编号为r=1,…,R;
第五层是截取字,记为Bn(z+e),n=1,…,N表示截取字的序号,e=0,1,…,E-1表示截取字的附加位数,z表示所有截取字最前面的固定位数,z∈{e},z的具体值由设计者决定并且选定后保持不变,n,z,e均是十进制数;
一个完整的明文截取字的二进制表示为:
Bw,p,s,r,n[(z+e)mod(Me)],e=0,1,…,Me
其中,Me=z+E-1表示模,这样构成一行截取字;单从二进制位数角度,将一行截取字组成一个循环队列,即规定从n=1和e=0开始,当z+e=(z+E-1)=Me之后,就给出一行截取字,然后再回到n=1和e=0;通过令r=r+1,使之移到下一行,重复上一行的过程就获得新的一行截取字,如此下去,当r=R以后,使之移到下一段,令s=s+1,当s=S以后,令p=p+1,使之移到下一页,当p=P以后就结束当前文件;根据z+e,z表示位数,e=0,1,…,E-1指出附加位数,对应于文件中的一个截取字,截取字结构以行为单位划分,而每行内部的截取字的位数逐位增长直到第N=E-1个截取字,各行之间具有相同的截取字结构;以下描述均省略段符号s;
上述对明文截取字文件的描述同样适用于密钥截取字文件和密文截取字文件;统一表示为:
Bp,r,n[(z+<e|k|y>)mod(M<e|k|y>)],<e|k|y>=0,1,…,M<e|k|y>
其中,M<e|k|y>=z+<e|k|y>-1表示模,其中,<e|k|y>表示e或k或y;以上除了M和B是英文字母外其它字母都是代表十进制数,B表示要将[*]中的用*表示对应于二进制数的十进制数;由于最后一页的最后一行的截取字的位数可能不足以构成由式z+<e|k|y>,e=k=y=0,1,…,z+<E|K|Y>规定的结构,需要在文件最后增加若干个0来凑成所要求的结构,并用Tu(t)、Tk(t)和Ty(t)记录所补充的0个数。
4.根据权利要求3所述的基于不等长二进制截取字组成的明文进行加密和解密的方法,其特征在于,为了增强保密性,赋予三种所述截取字文件结构具有如下变型结构的机制,以下为了简化,在下标中省去段的符号s:
在所述明文文件
Figure FDA0003198384770000031
和密钥文件
Figure FDA0003198384770000032
中,根据页号p、行序号r和字序号n设定J个分界线,记为[p0j,r0j,n0j,j=1,…,J]设定为组的分界线;从[p0j,r0j,n0j]开始直到[p0J,r0J,n0J]再返回到[p1,r1,n1]将此二种文件同步分成C个组,随着j取不同值可以对应的子文件表示为:
明文文件
Figure FDA0003198384770000033
对应地有明文子文件
Figure FDA0003198384770000034
密钥文件
Figure FDA0003198384770000035
对应地有密钥子文件
Figure FDA0003198384770000036
其中,j=1,…,J指定J个子文件分界线下标,依据分界线将
Figure FDA0003198384770000037
Figure FDA0003198384770000038
二种文件同步分成C部分,如c=0,1,…C对应于j=1~j,…,jc~jc+1-1,…,jC-1~jJ,i=1,…,I,指定由分界线分成的各组内部截取字位置的再调整规则;
密文文件
Figure FDA0003198384770000039
对应地有密文子文件
Figure FDA00031983847700000310
三种截取字Bp,r,n[e],Bp,r,n[k],Bp,r,n[y]分别对应于明文字,密钥字,密文字,c∈{j},j=1,…,J-1,这种结构增加保密性;
所述密钥字文件
Figure FDA00031983847700000311
进一步还可有另外的变换结构
Figure FDA00031983847700000312
其中,上标i指明对子文件
Figure FDA0003198384770000041
内部的密钥字再做变化,比如子文件内同一个密钥字序号下各行的密钥字做一定数量的行循环换位、隔行交换,或者由设计者构造其它变换结构,又进一步增加保密性;两种变化的子文件合写成
Figure FDA0003198384770000042
所述密文截取字文件
Figure FDA0003198384770000043
的结构和内容随着明文截取字文件
Figure FDA0003198384770000044
和变换结构
Figure FDA0003198384770000045
相加的结果变化,对应地有子文件
Figure FDA0003198384770000046
将上述关于明文截取字文件和密钥截取字文件的变化机制的种类编号分别记录在SL(i),i=1,…,I,SR(j),j=1,…,J和SL(i),i=1,…,I中,SR(j)指明明文字文件和密钥字文件被文件内部分界线[p0j,r0j,n0j,j=1,…,J]分成子文件并且其位置随j值的变化而变化,SL(i)指明密钥子文件内部的截取字位置的再变化规则。
5.根据权利要求1所述的基于不等长二进制截取字组成的明文进行加密和解密的方法,其特征在于,具体的加密方法如下:
加密公式:
B[Yp,r,n(z+y)mod(My)]∶=B[Up,r,n(z+e)mod(Me)+B[Kp,r,n(z+k)mod(Mk)
y=e=k=0,1,…,E-1
其中,∶=是赋值符号,B[Up,r,n(z+e)mod(Me)]为明文截取字,B[Kp,r,n(z+k)mod(Mk)]为密钥截取字,规定k=0,1,…,E-1,取z+k的最大值作为密钥截取字循环队列的模Mk=max(z+k),B[Yp,r,n(z+y)mod(My)]为密文截取字,y=0,1,…,E-1取z+y的最大值作为密文截取字循环队列的模My=max(z+y),其中,B[Kp,r,n(z+k)mod(Mk)]≠0以保证密钥不出现全0,以避免使得密文截取字等于明文截取字。
6.根据权利要求5所述的基于不等长二进制截取字组成的明文进行加密和解密的方法,其特征在于,所述加密方法还包括设置三个循环队列指针作为加密工具的步骤,其中,下标均省略参数段s,具体如下:
①指针
Figure FDA0003198384770000051
对应于行明文截取字循环队列当前位置的元素,在循环过程中指明第p页第r行第n号e的具体值,并且最后总是回到起点;考虑到z是规定值,故指针位置仅用e指出;
②指针
Figure FDA0003198384770000052
对应于行密钥截取字循环队列当前位置的元素,在循环过程中指明第p页第r行第n号k的具体值,并且最后总是回到起点;考虑到z是规定值,故指针位置仅用k指出;
③指针
Figure FDA0003198384770000053
对应于行密文截取字循环队列当前位置的元素,在循环过程中指明第p页第r行第n号y的具体值,并且最后总是回到起点;考虑到z是规定值,故指针位置仅用y指出;
y=e=k=[0,1,…,E-1]mod(M<e|k|y>)指出队列指针循环移动;由于上述循环队列总是从头再回到头,所以仅需给出一个头指针,而且规定头指针直接给定队列中位置中的元素。
7.根据权利要求6所述的基于不等长二进制截取字组成的明文进行加密和解密的方法,其特征在于,所述加密方法还包括以程序的形式对加密过程进行说明的步骤,具体如下:
步骤S1:从密钥参数文件中读取必要密钥参数,包括[p0,r0,n0,SR(j),SL(i),P,R,N,z,E];
步骤S2:根据SR(j)中指定的分界线[[poj,roj,noj,j=1,…,J]将明文文件和密钥字文件各分成J-1个子文件,明文子文件
Figure FDA0003198384770000054
将标准二进制文件
Figure FDA0003198384770000055
重排序成密钥截取字子文件
Figure FDA0003198384770000056
Figure FDA0003198384770000057
Figure FDA0003198384770000058
形成子文件,以下描述为了简化仅设一个分界线,则分成二个子文件,具体操作描述如下:
令p=p0,r=r0,n=n0不断地做r=r+1,n=n+1直到p=P,r=R,n=N,随下标变化做如下一系列操作:
Figure FDA0003198384770000061
Figure FDA0003198384770000062
将两个子文件包含后半部的截取字搬到第2个子文件中;
令p=1,r=1,n=1不断地做r=r+1,n=n+1直到p=p0,r=r0,n=n0-1,做如下一系列操作:
Figure FDA0003198384770000063
Figure FDA0003198384770000064
将两个子文件包含的前半部的截取字搬到第1个子文件中;
再做
Figure FDA0003198384770000065
Figure FDA0003198384770000066
&为文件连接符;
最后得到截取字的位置被调换的二个子文件;
步骤S3:根据SL(i)的规则,对两个密钥截取字子文件
Figure FDA0003198384770000067
Figure FDA0003198384770000068
中的截取字的位置做规定的变化,得到相应的两个密钥截取字子文件
Figure FDA0003198384770000069
Figure FDA00031983847700000610
注意,此处虽没有指明i的具体值,但设计者完全可以理解,并选择合适的令截取字位置发生变化的子文件;
再做
Figure FDA00031983847700000611
Figure FDA00031983847700000612
得到由新的子文件变换位置后的明文文件和密钥文件;
步骤S4:加密操作:
Figure FDA00031983847700000613
Figure FDA00031983847700000614
Figure FDA00031983847700000615
其中,
Figure FDA00031983847700000616
表示两个矩阵的二进制相加;将文件作为矩阵对待,由截取字序号和行序号联合指定其中的截取字。
8.根据权利要求1所述的基于不等长二进制截取字组成的明文进行加密和解密的方法,其特征在于,具体的解密方式如下:
方式一:解密公式
B[Up,s,r,n(z+e)mod(Me)
∶=B[Yp,s,r,n(z+y)mod(My)]-B[Kp,s,r,n(z+k)mod(Mk),
y=e=k=0,1,…,E-1];
方式二:采用矩阵减法运算的形式来表示解密运算
Figure FDA0003198384770000071
Figure FDA0003198384770000072
上述运算将子文件的连接顺序已经做了颠倒,得到前后两部分顺序正确的明文文件,上式中,-表示文件矩阵减法符号;也可以按颠倒的顺序做连接:
Figure FDA0003198384770000073
这样即使被破译,也只能是次序颠倒的明文,又增加了保密性;当接收方需要时再根据密钥参数文件提供的分界线的位置,将前后被颠倒的两部分再颠倒回来,得到最后的明文文件。
9.根据权利要求1所述的基于不等长二进制截取字组成的明文进行加密和解密的方法,其特征在于,所述密钥参数包括:截取字的固定位数z、一行截取字的最大附加位数E-1、分界线p0j,r0j,n0j,e0j、文件分组规则SR(j),j=1,…,J、子文件内截取字变化规则SL(i),i=1,…,I、加密和解密程序。
10.根据权利要求1所述的基于不等长二进制截取字组成的明文进行加密和解密的方法,其特征在于,所述对密钥参数文件进行存储并传输给接收方的具体方法如下:
首先,将SR(j),[[p0j,r0j,n0j,j=1,,J],SL(i),i=1,…,I,P,S,R,N,z,E中的每一个字符转换成一个适当位数的二进制数,所述适当位数为根据前述的编码规则规定的密钥字中的符号最多需要的位数,并对各参数的意义和使用方法进行说明,构成密钥参数文件,采用对明文的加密中所述的加密方法将密钥参数和说明文件加密后存到
Figure FDA0003198384770000081
中;
其次,对明文截取字文件的加密和解密程序进行存储和传输,对于单向通信,由发送方设计解密程序并发送到接收方,对于双向通信,发送方要将加密和解密程序加密后存到
Figure FDA0003198384770000082
最后,令
Figure FDA0003198384770000083
采用将
Figure FDA0003198384770000084
存储在加密U盘中并由专人送达或现有的短消息加密方法,如数字签名方法,加密后在网络上进行传输,
Figure FDA0003198384770000085
的传送要与密文发出的时刻隔开一定时间,造成时间上的随机性;接收方在接到后立即将接收到的
Figure FDA0003198384770000086
文件加上密码,只有输入正确密码才能打开,当遇到无密码打开时就报警,以此防黑客入侵。
CN202110897022.2A 2021-08-05 2021-08-05 一种基于不等长二进制截取字组成的明文进行加密和解密的方法 Active CN113572786B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110897022.2A CN113572786B (zh) 2021-08-05 2021-08-05 一种基于不等长二进制截取字组成的明文进行加密和解密的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110897022.2A CN113572786B (zh) 2021-08-05 2021-08-05 一种基于不等长二进制截取字组成的明文进行加密和解密的方法

Publications (2)

Publication Number Publication Date
CN113572786A true CN113572786A (zh) 2021-10-29
CN113572786B CN113572786B (zh) 2023-04-18

Family

ID=78170538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110897022.2A Active CN113572786B (zh) 2021-08-05 2021-08-05 一种基于不等长二进制截取字组成的明文进行加密和解密的方法

Country Status (1)

Country Link
CN (1) CN113572786B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114189860A (zh) * 2021-12-21 2022-03-15 四川安迪科技实业有限公司 卫星网络设备固定格式数据加密、解密方法及校验方法
CN114459633A (zh) * 2022-04-11 2022-05-10 深圳中宝新材科技有限公司 基于物联网的抗氧化键合金丝设备数据加密及解密方法
CN116599768A (zh) * 2023-07-13 2023-08-15 北京奇立软件技术有限公司 一种用于隐私数据的数据加密方法
CN117319041A (zh) * 2023-10-07 2023-12-29 南京邮电大学 一种网络通信数据加密传输方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271297A (ja) * 1994-03-31 1995-10-20 Toppan Printing Co Ltd 暗号化方法、暗号化装置、復号化方法、復号化装置、および、暗号システム
CN103346998A (zh) * 2013-05-18 2013-10-09 北京凯锐立德科技有限公司 一种基于文件破碎加密的文档安全保护方法
CN104022865A (zh) * 2014-04-29 2014-09-03 云南电网公司 一种网络数据加密传输方法
CN104660590A (zh) * 2015-01-31 2015-05-27 宁波工程学院 一种文件加密安全云存储方案
WO2016003525A2 (en) * 2014-04-18 2016-01-07 Francis Lambert System and method for secure data transmission and storage
CN106161006A (zh) * 2015-04-06 2016-11-23 汪风珍 一种数字加密算法
US20160381107A1 (en) * 2015-06-25 2016-12-29 Amarone Partners, Llc System and method for content streaming with feature detection
CN109861810A (zh) * 2019-03-19 2019-06-07 天津中德应用技术大学 一种基于混沌块加密算法的数据加密方法及解密方法
CN111310222A (zh) * 2019-11-20 2020-06-19 金现代信息产业股份有限公司 文件加密方法
CN111753317A (zh) * 2020-05-27 2020-10-09 长沙睿永信息技术有限公司 一种等长数字加密的实现方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271297A (ja) * 1994-03-31 1995-10-20 Toppan Printing Co Ltd 暗号化方法、暗号化装置、復号化方法、復号化装置、および、暗号システム
CN103346998A (zh) * 2013-05-18 2013-10-09 北京凯锐立德科技有限公司 一种基于文件破碎加密的文档安全保护方法
WO2016003525A2 (en) * 2014-04-18 2016-01-07 Francis Lambert System and method for secure data transmission and storage
CN104022865A (zh) * 2014-04-29 2014-09-03 云南电网公司 一种网络数据加密传输方法
CN104660590A (zh) * 2015-01-31 2015-05-27 宁波工程学院 一种文件加密安全云存储方案
CN106161006A (zh) * 2015-04-06 2016-11-23 汪风珍 一种数字加密算法
US20160381107A1 (en) * 2015-06-25 2016-12-29 Amarone Partners, Llc System and method for content streaming with feature detection
CN109861810A (zh) * 2019-03-19 2019-06-07 天津中德应用技术大学 一种基于混沌块加密算法的数据加密方法及解密方法
CN111310222A (zh) * 2019-11-20 2020-06-19 金现代信息产业股份有限公司 文件加密方法
CN111753317A (zh) * 2020-05-27 2020-10-09 长沙睿永信息技术有限公司 一种等长数字加密的实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李敏: "保留格式加密技术应用研究", 《中国博士学位论文全文数据库信息科技辑》 *
李斌栋: "基于不等长伪码序列扩频的高安全通信方案研究与实现", 《中国硕士学位论文全文数据库信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114189860A (zh) * 2021-12-21 2022-03-15 四川安迪科技实业有限公司 卫星网络设备固定格式数据加密、解密方法及校验方法
CN114459633A (zh) * 2022-04-11 2022-05-10 深圳中宝新材科技有限公司 基于物联网的抗氧化键合金丝设备数据加密及解密方法
CN116599768A (zh) * 2023-07-13 2023-08-15 北京奇立软件技术有限公司 一种用于隐私数据的数据加密方法
CN116599768B (zh) * 2023-07-13 2023-09-26 北京奇立软件技术有限公司 一种用于隐私数据的数据加密方法
CN117319041A (zh) * 2023-10-07 2023-12-29 南京邮电大学 一种网络通信数据加密传输方法
CN117319041B (zh) * 2023-10-07 2024-05-24 南京邮电大学 一种网络通信数据加密传输方法

Also Published As

Publication number Publication date
CN113572786B (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
CN113572786B (zh) 一种基于不等长二进制截取字组成的明文进行加密和解密的方法
CN110677237B (zh) 一种具有似混沌特性的文件加密方法
CN108377183B (zh) Xdr数据信息加密方法、装置、设备及介质
US7801307B2 (en) Method of symmetric key data encryption
US20080080709A1 (en) Method for encrypting information and device for realization of the method
CN116032474B (zh) 一种基于大数据计算机网络安全防护系统
JP2000059355A (ja) 暗号化処理システム
WO2000070819A1 (en) Cryptographic engine using base conversion, logic operations and prng in data arrays to increase dispersion in ciphertext
US20070189518A1 (en) 3-D quaternion quantum fractal encryption
US20070195952A1 (en) Method And System For Computational Transformation
US10148425B2 (en) System and method for secure communications and data storage using multidimensional encryption
Babu et al. A Survey on cryptography and Steganography methods for information security
Murtaza et al. A new symmetric key encryption algorithm with higher performance
Aung et al. A complex polyalphabetic cipher technique Myanmar polyalphabetic cipher
CN109218013A (zh) 掩盖明文符号边界的二进制数据通信加密法
Sermeno et al. Modified Vigenere cryptosystem: An integrated data encryption module for learning management system
Albu-Rghaif et al. A data structure encryption algorithm based on circular queue to enhance data security
Li et al. Related-tweak statistical saturation cryptanalysis and its application on QARMA
US8712040B2 (en) Data-conditioned encryption method
CA3135046C (en) Enhanced randomness for digital systems
CN102713994A (zh) 加密装置、加密方法以及程序
Ibraheem et al. Combining several substitution cipher algorithms using circular queue data structure
CN1286855A (zh) 二进制数据块加密变换
Manz Encrypt, Sign, Attack: A compact introduction to cryptography
JP2023550200A (ja) 行列演算を用いてデータを暗号化するための方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant