CN111159721B - 变易密钥的码控式数据加密方法 - Google Patents

变易密钥的码控式数据加密方法 Download PDF

Info

Publication number
CN111159721B
CN111159721B CN201811538759.XA CN201811538759A CN111159721B CN 111159721 B CN111159721 B CN 111159721B CN 201811538759 A CN201811538759 A CN 201811538759A CN 111159721 B CN111159721 B CN 111159721B
Authority
CN
China
Prior art keywords
key
code
control
transformation
controlled
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.)
Active
Application number
CN201811538759.XA
Other languages
English (en)
Other versions
CN111159721A (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
Publication of CN111159721A publication Critical patent/CN111159721A/zh
Application granted granted Critical
Publication of CN111159721B publication Critical patent/CN111159721B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

Landscapes

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

Abstract

变易密钥的码控式数据加密方法,涉及信息电子技术。主要提供一种非固定密钥的数据加密方法,其核心是“明钥+暗钥→变易钥”的变换。通过引入动态的“明钥”和静态的“暗钥”,使两者混合后,分解为“控制码”和“受控码”,再进行反复的“码控变换”,形成“变易钥”。然后通过“变易钥”进行加密。本发明技术,是在现有“固定密钥”的体系外,发明创造出的密钥不固定的“非定密钥”体系。是在现有“单钥对称”和“双钥不对称”两大体系外,发明创造出的第三种体系“双钥对称”体系。由于这种反复的变换是离散的约定的,更加适合软件的实施和嵌入式芯片的使用。本技术简便易行、安全可靠,可以广泛应用于国防、金融、互联网、日常生活等领域。

Description

变易密钥的码控式数据加密方法
技术领域
本发明涉及一种数据加密方法,属于信息电子技术领域,可应用于日常生活、经济、军事等。
背景技术
人类社会的发展历史,就是伴随着不断战争的历史。战争就就离不开信息的攻防,一方面,需要更加快捷地破译对方的加密信息,另一方面,需要更加安全地保障己方通讯的保密。
计算机的发明,可以说是在短短的几十年时间里,根本地改变了人类社会的现状和发展轨迹,使人类从此进入了信息社会。而当初发明电子计算机的初衷,只是出于战争的需要、是为了能够更加快捷地破译敌方军事机密的信息。
进入信息社会,加密技术的使用,也不像以往那样仅局限于军事、外交、情报等部门,而在金融、商业、工业等领域,甚至日常生活中,也越来越广泛。
随着人类社会向信息化社会的不断演进,信息安全的问题也更加凸显出来。无时无刻都迫切需要更加高效安全的加密技术方法。
【特别说明】
在阐述本发明技术的方案前,在此先作预先的特别说明:
一方面,由于本发明是基础性的创新,现有的相关技术术语,无法满足本发明方法的阐述。
另一方面,现有的技术术语,本身也是有些混乱的,容易产生歧义。(例如:“加密”一词,既表示“整体的技术方法”,有表示“具体的技术实施”。“密码”一词,既表示“秘密的号码”,有表示“加密的代码”。“明文”和“密文”,在不同的书本上,所表达的意思,甚至是完全相反的。“密钥”和“私钥”、“公钥”,容易造成歧义和混淆。尤其的“公开的密钥”一词,很多人搞不清是公开的还是秘密的。)
为此,本系列文件,对于相关技术术语,进行如下约定:
“实文”是指没有加密了的、准备或需要加密的原文数据,或者是解密恢复的原文数据。是(实的)具有实际意义的文件数据。
“虚文”是指把“实文”加密后形成的文件数据。是(虚的)没有实际意义的文件数据。
“密钥”是加密系统中所有钥码的泛指,包括“明钥”“暗钥”“变易钥”等。
“明钥”是指可以公开的密钥。(是明的、动态的,所以也可以称为“阳钥”。)
“暗钥”是指不可以公开的密钥。(是暗的、静态的,所以也可以称为“阴钥”。)
“变易钥”是指动态变化的密钥,是不公开的、一次性使用的,或简称为“易钥”。(与“实文”“虚文”直接发生关系的是“变易钥”,不是“明钥”与“暗钥”)。
“控制码”、“受控码”、“中间码”等,是指“明钥+暗钥→变易钥”变换过程中的一种数码形态。
“码控变换”,是指“明钥+暗钥→变易钥”整体的变换过程。
“码控的复变”,是指使“组合码”分成“控制码”和“受控码”,所反复进行彼此控制的变换,也称“码控”、“码控的方式”。
(“码控变换”中包含有“码控的复变”的步骤。)
发明内容
为了信息安全问题,本发明提供一种新的数据加密方法,它可以使人们对数据加密的手段,多一种安全、便捷的方法的选择。
为了达到上述目的,本发明为解决这一问题所采用的技术方法是:
首先使“密钥”不再固定,能够实时地变化。
所述的“密钥”是不固定的、变化的,是实时通过“明钥+暗钥→变易钥”方式的变换而实时产生的。
所述的“明钥”是指公开传输的“代码”,(在加密解密过程中)由其中一方产生传输给另一方。(一般的,是由“加密方”生产而传给“解密方”)。
所述的“暗钥”是指不公开传输的“代码”,(在加密解密前已经)由双方预先持有的、彼此相同的“代码”。
所述的“明钥+暗钥→变易钥”变换,是通过一种约定的离散的码控变换,把“明钥”和“暗钥”变换成“变易钥”。(“变易钥”就是通常意义上的“密钥”,由于本发明有别于常规的加解密方法,技术术语需要细分,必须要用专用的名词区别,下同。)
所述的“明钥+暗钥→变易钥”变换,具体如下:
第一、使“明钥”和“暗钥”按预先约定的方法,进行选择、组合、混合,合成“组合码”,或称“中间码”。(这种混合可以是前后连接也可以相互穿插。例如:“明钥”abcde 和“暗钥”12345,混合成“中间码”a1b2c3d4e5,或者abcde12345)。
第二、“中间码”按预先约定的方法,进行分组。把“中间码”分成若干组,在每一组内,分成“控制码”和“受控码”两部分(例如:“中间码”abcde12345可以分成“abcde”和“12345”两组,第一组“ab”是控制码,“cde”受控码,第一组“12”是控制码,“345”受控码)。(“受控码”或也称“被控码”、“待控码”)。
第三、按预先约定的方法,使每一个“控制码”对应一种变换方式,去约束控制“受控码”进行变换,也即“受控码”按此约定的操作进行变换,每一种变换方式,对应一个“变换小单元”,每一个组的变换也都是各自独立的,“控制码”的值与各种“变换小单元”的变换是有固定的对应关系的,是一一对应的,
以“控制码”约定实施对“受控码”变换的方式,称为“码控的方式”,各种不同约定的码控组合,构成“离散的码控”
(所谓“码控”就是每一“控制码”的数码值都对应一种控制方法。例如:1代表加,2代表减,3代表乘,4代表除,5代表与,6代表或,7代表非,等等算术或逻辑运算)。
第四、这其中,各自独立的变换方式有:选择、分组、移位、替代、映射、运算(等不同)的“小变换”。这其中所述的“运算”,或者是(加减乘除等)算术运算、(与或非等) 逻辑运算(等)、或者是混合运算。
第五、各组的“受控码”经过各自(离散的)变换后,与“控制码”按约定的方式重新组合,合成新的“中间码”。(例如:按顺序排列,或交叉排列。或者,在总体变换后,如果位数变长,或者(按约定的方式)去掉一部分的数位,如果位数变长,或者(按约定的方式)添加一部分的数位。)
第六、重复第二至第五条,对“中间码”进行重新分组、变换,重新分组、变换的方法,或者与前一轮的分组、变换是一样的、相同的,或者是与前一轮的分组、变换不一样的、相异的。(例如,“控制码”是01,第一次变换是“加”,第二次变换为“乘”)。
第七、这种变换的重复次数,或者约定是固定次数的(例如,重复次数都是8次),或者约定是第一次“中间码”的某几位数的值(例如,最前两位,当前前两位是13,就重复13次)。
第八、进行了预定的重复次数后,结束重复,最后一次变换所生成的“中间码”,形成“变易钥”。
(最终,通过这一系列的手段,使“变易钥”能够“变化无常,毫无规律,不易重复”)。
这种变换,其核心可以用六个词概括“双钥、双码、叠变,离散、约定、码控”。
双钥:具有动态的“明钥”和静态的“暗钥”,由此双钥进行混合。
双码:混合后拆分成“控制码”和“受控码”两部分。
叠变:由“控制码”控制“受控码”进行变换,依据双码,反复多次累积叠加。
离散:这种变换,是由一个个离散的“变换小单元”的组合。
码控:这种变换,其中的“变换小单元”是通过“控制码”对“受控码”进行控制而实现的。
约定:这种变换,其离散的形式、码控的方式和叠变的累积,都是人为约定的。
这种“明钥+暗钥→变易钥”的变换,称之为“双钥双码叠变,离散约定码控”变换。
简称为“双钥双码离散码控变换”,或者简称“双钥叠变码控变换”、“双钥码控离散变换”、“双钥对称的码控变换”、“双钥码控变换”、“码控变换”。
这其中,使“组合码”分成“控制码”和“受控码”,所反复进行彼此控制的变换,称为“码控的复变”。
在具体的加密解密过程中,
一、加密时,“加密方”需要把加密的“实文”进行分组,在进行每一分组的加密时,先提取预存或预选的“暗钥”,并确定“明钥”,通过“明钥+暗钥→变易钥”变换,获得动态的“变易钥”,再通过“变易钥”对分组的“实文”进行加密,获得分组的“虚文”,这种“实文→虚文”,其方法是以下的一种或者多种的组合:
1、把“实文”的分组和“变易钥”直接“异或”获得“虚文”。
2、通过“变易钥”对“实文”进行“码控的复变”获得“虚文”(——类同于产生“变易钥”过程中的码控变换。例如,进行移位、替换)。
3、以“变易钥”作为常规密钥,进行常规的加密获得“虚文”(——换言之,把“变易钥”作为普通的“密钥”,以现有常规的加密方法进行加密)。
4、最后把各分组的“虚文”和“明钥”直接或合成整体,进行存储或者发送给“解密方”。这样每一次加密的“变易钥”各不相同。
二、对应的,解密时,“解密方”把已经加密了的“虚文”分组,并把得到的“明钥”和“解密方”预存或预选的“暗钥”,通过“明钥+暗钥→变易钥”变换,获得动态的“变易钥”,再通过“变易钥”对“虚文”进行分组解密,重新获得“实文”,这种“虚文→实文”,其方法是以下的一种或者多种的组合:
1、把“虚文”的分组和“变易钥”直接“异或”获得“实文”。(——这是根据逻辑运算法则:所以,虚文/>变易码=(实文/>变易码)/>变易码=实文。)。
2、通过“变易钥”对“虚文”进行“码控的复变”获得“实文”(——与加密对应的码控变换的反变换(例如,进行反向移位、反向替换))。
3、以“变易钥”作为常规密钥,进行常规的解密获得“实文”(——换言之,把“变易钥”作为普通的“密钥”,以现有常规的解密方法进行解密)。
4、最后把各分组的“实文”段合成整体,完成解密。
这种变更,(在实际工作时),或者是定期的,或者是不定期的、随机进行的,
在进行实际的加密解密时,“明钥”或由“加密方”实时产生的,与加密后的“虚文”一起,共同传递给“解密方”(——在分段的“虚文”中,可以是每组都自带“变易钥”)。
或者是使用由此前存储下来的“虚文”段、“实文”段、“变易钥”(等)数据。“暗钥”或是预先存储于“加密方”“解密方”的双方的存储器中。
在实际的加密体系中,或者也有“插入干预”的方式。
所谓的“插入干预”是指,在加密系统运作一段时间后,对变换方法中的参数进行部分或整体变更,1、对“码控”法则的对应关系进行变换,2、对预置“暗钥”的数值进行变换。
这种变更,或者通过简单的映射、替换。(——使得“暗钥”发生改变,“码控”的代码关系发生改变,而与原系统完全不同)。
这种变换,在实际工作时,或者是定期的,或者是不定期的、随机进行的。
——换言之,一段时间后,通过映射、替代的方法,把对应关系进行改变,把“暗钥”进行改变。(这种“插入干预”其达到的效果是,这种“约定方式”是能够变换的,“暗钥”也是能够变换的,加密的安全性就更加高)。这种变换是实时的一次性的,或者是长期的(在下一次的再变换前一直不变),一个阶段不变,中间变换,基于固定和变动之间。能够用简单的替代,把变换关系,和“暗钥”进行更换。
在进行“插入干预”时,双方之间的信息传递,或者通过其他方式或者加密手段传输,可以更加安全。
——任何的系统都是有生命周期的,就像房子、就像设备,使用中间可以进行重新装修、维护、升级。对于加密系统也如此,为了加密系统的安全,可以进行维护、升级,例如:对于“码控”变换,如果预置的对应关系是“1”对应“加”、“2”对应“减”,在加密系统工作一定时间后,通过映射、替代的方法,把对应关系人为地变成“2”对应“加”、“3”对应“减”。对于“暗钥”,如果预置的“123456”,在加密系统工作一定时间后,通过映射、替代的方法,把码值人为地变成“345678”。这样相当于整个系统就是全新的,而实际的工作成本很低。
整个加密体系,(一般)具有前期“预置暗钥”、实时“动态变换”两阶段。而一旦有“插入干预”,则具有前期“预置暗钥”、中期“插入干预”、实时“动态变换”三阶段。
——换言之,加密系统简单、或者使用不频繁的话,不需要中间的“插入干预”步骤,如果加密系统复杂、或者使用频繁的话,就进行中间的“插入干预”步骤,进行中间维护升级,可以提高系统的安全性。
整个加密体系,核心是“码控的复变”,这样的变换可以是多方位的,包括:
1、通过“明码”,对“暗钥”进行“码控的复变”。选择出实际使用的“暗钥”。
2、通过“暗码”,对“明钥”进行“码控的复变”。选择出实际使用的“明钥”。
3、“控制码”对“受控码”进行“码控的复变”。生成“中间码”或“变易钥”。
3、“变易钥”对“实文”或“虚文”进行“码控的复变”。完成加密或者解密。
4、在“插入干预”中,对于“约定方式”和整体的“暗钥”,进行“码控的复变”。完成对于加密系统的中期维护。
在具体的加密中,这种不同的“码控”,可以根据需要,全部使用,构成复杂的加密系统;也可以部分使用,构成简单一点的加密系统。
本发明为上述目的,所采用的技术方法还可以如下:
一、“明钥”分为“预备明钥”和“分组明钥”;“暗钥”分为“预储暗钥”和“分组暗钥”。
(1)、其“明钥”的产生,或是按预先的约定,由以下的一种或者多种信息数据,进行组合、选择:1、时间日期值,2、时序编号,3、实时产生出的代码,2、已经使用过的“虚文”分组,3、已经使用过的“实文”分组,4、已经使用过的“变易钥”。
这样的组合、选择,是使“明钥”由(较长的)“预备明钥”变换成(较长的)“分组明钥”。
所谓“预备明钥”是指,预备用来作为“明钥”的信息数据,(即前述的日期、时序、“虚文”、实文”、“变易钥”等)。
所谓“分组明钥”是指,从“预备明钥”中的数据进行选择变换,作为实际工作的“明钥”(供分组的“明钥+暗钥→变易钥”时使用)。
这种从“预备明钥”到“分组明钥”的选择变换,1、或者是按时间日期值,来“码控”选择“预备明钥”的部分代码(约定不同的时间段有不同的选择),2、或者是按次序,来“码控”选择“预备明钥”的部分代码(约定不同的序列有不同的选择),3、或者是按“码控”的方式,来“码控”选择“预备明钥”的部分代码,从而产生出“分组明钥”。
这其中(上述的第3种),通过“码控”的方式(也即按照预先约定的方式)选择“分组明钥”,其操作,1、或者由“暗钥”或“明钥”的一部分直接作为“控制码”,2、或者由“暗钥”的一部分先与部分“明钥”混合后,作为“控制码”,3、或者由“虚文”、“实文”、“变易码”的一部分或混合,作为“控制码”,进而控制着“预备明钥→分组明钥”的变换。
——换言之,“明钥”(可以)由“时间码”、“序列码”以及“辅助码”组成。“时间码”包括日期和时间的值,“序列码”递增或递减的,“辅助码”是指或者是随机码,或者是具体信息的代码(如:地址、名称、等等。)。
动态变化的“明钥”或者(可以)是:1、主动变化的(随机产生或者特殊设定的),2、自动变化的(自动采用时间或序号,借用前面分段的实文段、虚文段、变易钥等)。
(2)、其“暗钥”的产生,或是由预先存储的较长的“暗钥”选择其中的一部分代码,进行组合、变换。
这样的组合、变换,是使“暗钥”由“预储暗钥”变换成“分组暗钥”。
所谓“预储暗钥”是指,预先存储在加密方和解密方的数据代码,(是预存“暗钥”的全部)。
所谓“分组暗钥”是指,从“预储暗钥”中的数据进行选择变换,作为实际工作的“暗钥”(供分组的“明钥+暗钥→变易钥”时使用)。
这种从“预储暗钥”到“分组暗钥”的选择变换,1、或者是按时间日期值,来“码控”选择“预储暗钥”的部分代码(约定不同的时间段有不同的选择),2、或者是按次序,来“码控”选择“预储暗钥”的部分代码(约定不同的序列有不同的选择),3、或者是按“码控”的方式,来“码控”选择“预储暗钥”的部分代码,从而产生出“分组暗钥”。
这其中(上述第3种),通过“码控”的方式(也即按照预先约定的方式)选择“分组明钥”,其操作,1、或者由“暗钥”或“明钥”的一部分直接作为“控制码”,2、或者由“暗钥”的一部分先与部分“明钥”混合后,作为“控制码”,3、或者由“虚文”、“实文”、“变易码”的一部分或混合,作为“控制码”,进而控制着“预储暗钥→分组暗钥”的变换。
——换言之,双方预存的“暗钥”,在每一加密解密过程中,(或者)是全部“暗钥”均参与运算变换,(或者)是选择部分“暗码”参与运算变换,这种选择(或者)根据时间、次序,(或者)根据“明钥”确定。(例如:第一次加密解密使用第1至第10位,第二次加密使用第3至第12位,以此类推;或者当对应的“明钥”的第一位是7,就使用“暗钥的”第7 至第16位,等等)(类同于产生“变易钥”过程中的码控变换)。
一般地,由“暗钥”码控选择“分组明钥”,由“明钥”码控选择“分组暗钥”。也即,“暗钥”与“明钥”彼此相互控制。
二、在“明钥”中,设置有“定向指针”;在“预储暗钥”中,设置有“定向分区”。
从“预储暗钥”获取“分组暗钥”时,根据“定向指针”的数值,使用或者回避“定向分区”中存在的“定位暗钥”。(——例如,“定向指针”指向的“定位暗钥”,则必须要使用,没有指向到的,则回避使用)。
所谓的“定向指针”是指,“明钥”中,有约定(特定)字节的位置,其内容数据是作为“指针”,指向“暗钥”的“定向分区”地址,(——例如,在“明钥”的前4位,作为“定向指针”)。
所谓的“定向分区”是指,“暗钥”中有约定(特定)字节的位置,分别存储不同级别的“定位暗钥”。操作时,根据“定向指针”寻址。(——例如,在“暗钥”的前4组,每组4 个字节,作为“定向分区”)。
所谓的“定位暗钥”是指,暗钥是分级的,个人和组群所使用的暗钥所存放的位置相互隔离,存放在不同的位置,是固定位置的。(——例如,在前4字节,作为成员特定的暗钥,在后4字节,作为小组共同使用的特定暗钥,接下来是大组共同使用,再接下来是更大组群共同使用的,等等)
换言之,“事件钥”分配有指针(有相应的“指针位”);“暗钥”分配成员区(有相应的“定钥位”)。
在一个集体里,可以用同样的加密方法,同样的密钥(加上少部分的区别),能够实现有不同的加密。
本发明为上述目的,所采用的技术方法还可以如下:
一、在具体的加密过程,分组加密使用的“明钥”,第一组或者前几组,是由其中一方实时产生传送给另一方的(一般的由“加密方”产生与加密后的“虚文”一同传送个“加密方”)。
后续的组,或者使用“实文”,或者使用“虚文”,或者使用“变易钥”,或者是交替使用“实文”、“虚文”、“变易钥”,或者使用“实文”“虚文”“变易钥”的组合代码。(由于这些代码,双方均以在前面使用过,就不需要额外传输)。
二、加密解密时的分组,是分片进行的。若干组构成一片区(例如,使十组为一个片区)。
在第一片区的各组加密变换时,其用于生成“变易钥”的“明钥”是实时产生的(由“时间码”、“序列码”、“辅助码”、“随机码”组成)。
在第二片区的各组加密变换时,其用于生成“变易钥”的“明钥”是第一片区对应各组的“虚文”或“实文”或“变易钥”,或者上述这些代码的选择组合;
第三片区的各组“明钥”,使用第二片区对应的各组“虚文”或“实文”或“变易钥”或者这些组合;
第四片区的各组“明钥”,使用第三片区对应的各组“虚文”或“实文”或“变易钥”或者这些组合。
后续的片区,以此类推。
——换言之,前片使用过的“虚文”等代码,作为后片的“明钥”。
例如,第一片第1、2、3、……组的“虚文”,作为第二片第1、2、3、……组的“明钥”,第二片第1、2、3、……组的“虚文”,作为第三片第1、2、3、……组的“明钥”,第三片第 1、2、3、……组的“虚文”,作为第四片第1、2、3、……组的“明钥”,等等。
在此前面使用过的“虚文”或“实文”或“变易钥”或者其组合,作为后面的“明钥”,就可以使通讯过程不需要传输“明钥”,省却额外的资源开销。
分组分片进行,可以在实际加密解密操作中,可以采用处理器芯片并联处理,增加处理的速度和效率。
三、在前期“预置暗钥”、中期“插入干预”、实时“动态变换”各个阶段中,各种的约定,都是人为的。这些构成具体方法的各种约定,或者是公开的,或者是不公开的。
——如果这些约定是公开的,可以成为标准化的加密方案,可以全社会通用的。
如果这些约定是不公开的,可以仅限于某一领域某一范围使用,例如,在军队里仅某一团队通用的,这样保密性更加强。
在实际工作中,各种不同的数码,相互间也在不同的信道上传送的,可以更加安全。
本发明为上述目的,所采用的技术方法还可以如下:
本发明技术的核心是对于各种变换进行约定,在此,对于一些约定做具体的说明。
一、在各自独立的变换方式:选择、分组、移位、替代、映射、运算、重复等基本变换中。
(1)、其中的“选择”,是指“控制码”不同的编码值,将按约定确定着对(对应被控的) “受控码”进行不同的模式、长度或者地址的选择控制,(也即,“控制码”每一种(不同的) 编码,都将定义对(对应被控的)“受控码”进行一种(不同的)模式、长度或者地址的选择控制,下同),这其中,1、选择模式是指:由“控制码”的值确定其中的分组、移位、运算、映射或重复的模式;2、选择长度是指:由“控制码”的值确定从较长的数据中选择一部分,“控制码”不同的值表示不同的长度;3、选择地址是指:以“控制码”作为指针,确定从较长的数据中按指针所指的位置,挑选出相应的码位。
当选择模式时,例如:编码1、2、3、4、5、6……分别代表1选择、2分组、3移位、4 运算、5映射或6重复,则当控制码是25436时,则“受控码”可以循序进行分组、映射、运算、移位和重复。
当选择长度时,例如:控制码的值1、2、3、4,分别表示长度分别为11位、12位、13位、14位。
当选择位置时,例如:控制码的值1、2、3、4,分别表示挑选第1位、第2位、第3位、第4位,或者后续分别间隔1位、2位、3位、4位,如果数据不够长让数据首尾相接,形成闭环不断反复。
(2)、其中的“分组”,是指“控制码”不同的编码值,将按约定确定着对(对应被控的) “受控码”进行不同的长度或者方式的分组控制,其分组的长度单位或者是“位”,也或者是“字节”、“字”、“帧”、“串”,可以n位、n字节、n帧为一组等等。
例如:可以4位、8位、或者16位为一组;也可以5字节、10字节、或者15位为一组;可以1帧、3帧或者6帧为一组,等等。
(3)、其中的“移位”,是指“控制码”不同的编码值,将按约定确定着对(对应被控的) “受控码”进行不同的位置的移动控制,其移动的长度单位或者是“位”,也或者是“字节”、“字”、“帧”、“串”,也即,对数码进行(相互约定的)重新排列组合,像扑克牌洗牌一样,只是这种“洗牌”是受控的,
例如:数据2565997545定义为(25--65997545),“控制码”25表示把“受控码”65997545 第一位移2位、第二位移5位,使6997545变成596975455。
例如:定义“控制码”=1,就确定两组数据逐步交叉,数据12345-67890,——>1627384950。
例如:定义“控制码”=2,就确定两组数据双步交叉,数据12345-67890,——>1267348950。
(4)、其中的“替代”,是指“控制码”不同的编码值,将按约定确定着对(对应被控的) “受控码”进行不同的方式的替代控制。
例如:“控制码”1、2、3、4、5、6、……的编码,分别代表“A、B、C、D、E、F……”等替代,等等。
(5)、其中的“映射”,是指“控制码”不同的编码值,将按约定确定着对(对应被控的) “受控码”进行不同的码值变换,这种“(数-数)映射”,或者是固定式的,也或者是寻址式的,其“映射”或者是一对一的,也或者是一位或者多位数据。
所谓“固定式”的,是指或者(依据“控制码”的编码)固定地映射为相应的值,不同的“控制码”有不同的映射,但同一“控制码”下,其映射也一定,例如:“控制码”=2,则,“受控码”1变3,2变4,3变5,4变6……。
所谓“寻址式”的,是指或者(依据“控制码”的编码)先在包括“受控码”在内的整个“码串”中进行寻址,在其相应的位置中找出相应的值,作为变换的控制,这样,先经过 (“位置”—>“相应的值”),再变换,可以使变化更加不确定。
例如:当“控制码”=8,数据(“码串”)为×××××××16×××××××××××,则第八位开始的值为地址,寻找到该地址的内容(即对应编码)为16,再以控制编码为“16”的控制方法进行变换。如果第八位开始的值为02,则以控制编码为“02”的控制方法进行变换。
(6)、其中的“运算”,是指“控制码”不同的编码值,将按约定确定着对(对应被控的) “受控码”进行不同的方式的运算控制,所述的“运算”或者是算术运算,也或者是逻辑运算,这种控制,其编码所对应的,或者是(单一的)运算符,也或者是(直接的)算式,所述的算式,或者是单项式也或者是多项式,
例如:“控制码”1、2、3、4、5、6、……的编码:一、分别代表“加、减、乘、除”等算术运算符,或“与、或、非”等逻辑运算符;二、或者分别代表“+6、-11、×3、/2等”单步(单项)运算;三、或“(m-1)×3、(m+3)/3、(m-1)×3+3等”多项式预算,等等。
(7)、其中的“重复”,是指“控制码”不同的编码值,将按约定确定着进行不同的次数的重复变换,例如:“控制码”=2,则,相应的“受控码”要重复变换2次。
也即,这些控制方式,每一种不同编码的“控制码”,都将(按人为定义的方式)对(对应被控的)“受控码”进行一种(不同的)变换控制,而且由于“控制码”是可以并列和嵌套使用,其编码值,在字符串(数据)中不同的编码值在不同的位置可以有不同的变换约定(也即字符串中的字符不同位置上的不同的值代表不同的选择、分组(组合)、移位(排列)、运算(计算)、映射或重复方式),而且字符串(数据)中的“受控码”“控制码”不是恒定不变的,前面的控制不同,后面的划分就不同。
这些用以控制“受控码”的“控制码”,也或者部分缺省,固定地映射为相应的值,或者相应的控制方式,在数码中可以让一部分“控制码”缺省,不直接表现出来,这样,可以减少硬件开销,(但相对的可靠性降低,不过部分缺省,不会造成问题,)
例如:缺省“控制码”,所有的码都直接是,5位一组:13156,70298,98367——>13+56, 70-98,98*67。
二、每一个“控制码”或者是一位的,或者是多位的,“控制码”不同的值有不同的控制方式,也或者有相同的控制方式。
这其中,“控制码”(按所控制的变换方式分,)又分为选择控制码、分组控制码、移位控制码、运算控制码、重复控制码,通过人为约定的方法,使每一种“控制码”的码值,均对应定义一种变换方式。
其中的“选择控制码”,对应控制着对“受控码”的码段选取,在变换过程中“受控码”或者是全部用来变换,或者是选取部分码段进行变换的,“选择控制码”的每一种码值均对应有一种“受控码”码段的选取方式。(例如,可以人为约定1、2、3……n分别对应从“受控码”的第n位开始,选取此后的m位,进行变换。因为这种对应是人工约定的,可以有无穷的对应方法,只需要在具体实施时,加以明确统一即可,下同)。
其中的“分组控制码”,对应控制着对“受控码”的码段进行分组,在变换过程中,把选取的“受控码”码段分成若干组,“分组控制码”每一种码值均对应有一种分组方式。(例如可以人为约定1、2、3……n分别对应让“受控码”按顺序分组、按奇数分组、按偶数分组,或者按位分组,1、2、3……分别代表1位一组、2位一组、3位一组……等等,可以有无穷的约定方式)。
其中的“移位控制码”,对应控制着对“受控码”的移位,在变换时,把选取的“受控码”或者按位移动、或者按组(多位组合一起)移动,“移位控制码”的每一种码值均对应有一种移位方式。(例如,可以人为约定1、2、3……n分别对应让“受控码”的第x位(组) 移动到第y位(组)的位置、或者与第y位(组)的位置交换,这类似于扑克牌的洗牌,可以有无穷的洗牌结果)。
其中的“替代控制码”,对应控制着对“受控码”的替代,在变换时,把选取的“受控码”替代成约定的代码。
其中的“映射控制码”,对应控制着对“受控码”的映射,在变换时,把选取的“受控码”,按相应(不同的)的映射表进行映射变换,“映射控制码”的每一种码值均对应有一种映射表格,使“受控码”在相应的映射表格里找到到对应值。(例如,可以人为约定,1、 2、3……n分别对应让“受控码”的码值按第a、b、c、d等不同的映射表进行代换)。
其中的“运算控制码”,对应控制着对“受控码”的运算,在变换时,把选取的“受控码”按位或按分组进行运算,“运算控制码”的每一种码值对应一种(加减乘除等)基本运算和逻辑运算,使“受控码”进行相应的运算变换。(例如,可以人为约定1、2、3……n分别对应让分组的“受控码”进行“加、减、乘、除,乘方、开方”等基本运算,以及“与、或、非”等逻辑运算)。
其中的“重复控制码”,对应控制着对“受控码”的变换的重复次数,在变换过程“重复控制码”的每一种码值对应一种重复次数。(例如,可以人为约定1、2、3……n分别对应重复1、2、3次……n)。
或者,这种变换的重复次数是固定的。(例如,可以人为约定这种变换过程是重复n次)。
三、这种在“控制码”的控制下对“受控码”进行的选择、分组、移位、替代、映射、运算、重复(等模式)的变换,其变换模式,或者是全部进行的、或者部分进行的。
在时间顺序上,或者是并列同步进行的、或者是前后分步进行的、或者是混合进行的。
(例如,可以人为约定,或者选择、分组、移位、替代、映射、运算全部进行,或者只进行分组、移位、运算等部分;可以人为约定,“受控码”一串前几位进行移位,中间几位进行映射,后面几位进行运算;也可以人为约定先运算、再映射、再移位;)。
(为方便叙述,把)这种属于不同类型的变换,按工作步骤,分为“时分复变”、“片分复变”、“码分复变”、“混合复变”。
其中,所述的“时分复变”,是指选择、分组、移位、替代、映射、运算是按次序进行的,其控制方式称为“时分复控”或“时分码控”。(“子变换”的次序是固定地按默认的次序轮流进行)。
其中,所述的“片分复变”,选择、分组、移位、替代、映射、运算按数码分片段进行的,其控制方式称为“片分复控”或“片分码控”。(“子变换”的分配是固定地按默认的区域分片进行)。
其中,所述的“码分复变”,是指选择、分组、移位、替代、映射、运算是按数码定义进行的,其控制方式称为“码分复控”或“码分码控”。
(“子变换”的次序直接由控制码给出,控制码不仅对应“子变换”,直接指定“子变换”的位置和次序,例如,21代表在第二段进行映射变换)。
其中,所述的“混合复变”,是指选择、分组、移位、替代、映射、运算是上述三种步骤混合进行的,其控制方式称为“混分复控”或“混分码控”。
(变换、变换模式、子变换)它们之间的关系是,在整体的“变换”下有多个“变换模式”,每个“变换模式”下,有多个“子变换”(也即有多个“变换小单元”)。
它们之间的关系是,在整体的“变换”下有多个“变换模式”,每个“变换模式”下,有多个“子变换”。
本发明的有益效果:
到目前为止,世界上使用的加密方法,其“密钥”都是固定不变的,为了安全,需要人为地、不定期地进行密钥更换,密钥更换需要传输,这本身就存在安全性问题。
由于本发明引入了自动变化的“变易钥”,是一次性使用的密钥,所以加密会更加安全。
由于本发明引入了动态的“明钥”和静态的“暗钥”两者相互反复调和,形成“变易钥”,使得“变易钥”的变化更加多端又更加隐秘。
由于这种反复的变换是离散的约定的,能够有很快的变换速度和很高的效率,更加适合软件的实施和嵌入式芯片的使用。
由于密钥可以超级长,可以轻松地使用几K,甚至几M长度的密钥,就无法破译。
由于基于码控的变换,加密解密的速度可以非常快。
现有的加密方法 本发明的加密方法
固定密钥 变易密钥
双钥不对称,单钥对称 双钥对称
密钥长度有限 密钥长度可以超长
基于算法的复杂性 基于码控的多样性
为了更好地说明问题,我们简单回顾一下加密技术的现状。
通过对于加密技术的历史发展和现状的简单梳理、分析,我们可以发现,到目前为止,尽管加密的技术方法有成百上千,但有两个共同点:
1、加密的密钥是固定的。密钥在它的生命周期里是固定不变的,除非使用了一段时间需要人为地加以修改。
2、加密只有两种不同体系,“对称密钥加密”和“不对称密钥加密”。
由于“对称密钥加密”它是使用单一密钥的,我们可以称之为“单钥对称”方法;由于“不对称密钥加密”它是使用两个密钥的,我们可以称之为“双钥不对称”方法,在上世纪七十年代以前,所有的加密体系都是“单钥对称”的,在此后才有“双钥不对称”的。
/>
本发明技术,是在现有“固定密钥”的体系外,发明创造出的密钥不固定的“非定密钥”体系。
本发明技术,是在现有“单钥对称”和“双钥不对称”两大体系外,发明创造出的第三种体系“双钥对称”体系。
现有的加密技术,是基于计算的同一性、运算的复杂性(存在规律性),它依赖于加密算法本身的复杂性。
本发明的加密技术,是基于计算的离散性、组合的多样性、随机性和变易的无限性(没有规律),它依赖于变易组合的多样性、随机性。
换言之,它基于码控约定的多样性,而不依赖于算法本身的复杂性。
一个一个小运算单元的组合,进行简单的运算和多变的组合,(相对传统加密方法)更适合计算机处理,尤其适合嵌入式系统;加密和解密的速度也更加快捷;也更加适合与程序的编写,是加密技术可以得到更加广泛的应用。
不同的加密体系,其安全性首先依赖于算法(世界各国一直在寻找更加先进的算法)。
相同的加密体系,其安全性依赖于密钥长度。
我们把“密钥被重复使用的概率”,称之为“密钥的复用率”。一般的,其复用率越高、被破译的概率越大,所以,在实际个工作中,需要不断地更新密钥。
我们把“破译的开销”与“加解密的开销”的两者之比,称之为“加密的效率”。加密的效率,取决于加密算法和密钥长度。一般的,密钥越长,越安全,但开销越大。
本发明的技术的最大意义在于,可以根本改变这种状况。
1、密钥可以无限大(只要存储容许),可以轻易使用几千字节长度的密钥(暗钥),不需要不断更换密钥。(目前使用的DES加密系统,由于算法复杂,一般的密钥长度仅几十比特)。
2、它可以使己方的加密解密开销很低,而敌方的破译开销无限大。
具体实施方式
下面根据本发明的方法,设置一个具体的加密变换方法,用以实施加密解密。
一、暗钥。
分为“预储暗钥”和“分组暗钥”。
1、预储暗钥。预先存储的、预置的数码串(密钥),1K字节(Byte)1Byte=8bit
2、分组暗钥。选择“预储暗钥”中的其中8字节,作为分组加密过程使用的暗钥。
二、明钥。
分为“预备明钥”和“分组明钥”。
1、预备明钥。16字节,公开的数码串,或已公开的“虚文”(加密后公开传送的文件)。
2、分组明钥。8字节。选择“预备暗钥”中的其中8字节,每组各不相同。
分组明钥中,①、第一组使用“引导码”,②、第二组开始使用前一组的“虚文”。
三、“引导码”的设定。
“引导码”包括“日期码”和“事件码”。有8个字节。
1、事件码,4字节。随机码或者情况说明。
2、日期码,4字节。使每天能够不同,可确保65535天(180年左右)不重复。
【0000-FFFF。0000-65535。近180年不会重复(65535天/365=179,179年)。2000 年1月1日元旦为0000,2日为0001,以此类推。】
“引导码”由加密方确定,每一加密文件,均需要设置一个以上的“引导码”。(文件数据较长时,分段设立多个“引导码”)
四、“分组暗钥”的选择。
每组使用的“分组暗钥”各不相同,均在“预储暗钥”的1k字节中选择其中的8字节(64 位),作为本组的“分组暗钥”。
选择的方法,包括:起始位置、选位间隔、分组间隔等。
通过“事件码”确定,借用其中的4字节(FFFF,32位)。
使“事件码”与暗钥的前32位异或,得到新的32位码。作为“选择控制码”。
(1)、选择的方法1:“指针”直接指示。
当“选择控制码”(abcd)=48651324时,在“预储暗钥”第4位、第8位、第6位、第 5位的值,此后1位、再后3位、再后2位、再后4位的值,分别是6、5、8、9、8、7、2、 3,那么,本组的“分组暗钥”,就是“65898723”。
(2)、选择的方法2:包括:起始位置、选位间隔、分组间隔等。
1、起始位置。第一次“分组暗钥”的首位位置,由第5、第6两个字节(16位)中记录的数值确定,(如其值为12,则“存储暗钥”的第一位作为第一次“分组暗钥”的首位。)
2、选位间隔。在“存储暗钥”中,每隔N位选择1位,共选择64位,组成本组的“分组暗钥”。其跳跃的距离N由第7个字节(8位)中记录的数值确定,(如其值为11,则每隔 11位在“存储暗钥”中取一位。)
3、分组间隔。每次“分组暗钥”的首位位置也各不相同,每次向右移N位。其右移的距离N由第8字节(8位)中记录的数值确定,(如其值为10,则每次分组的首位在“预储暗钥”中右移10位,也即,本次的首位比上一次右移10位。)
4、选择时超过实际长度,则均从头继续循环。
5、最终组成8字节(64位)的“分组暗钥”。
五、“分组明钥”的选择。
每组使用的“分组明钥”各不相同,均在“预备明钥”(已经使用了的“虚文”等数据)中选择其中的8字节(64位),作为本组的“分组明钥”。
第一组,直接使用“引导钥”作为“分组明钥”。
第二组开始,在16个字节(128位)的“分组虚文”中选择8字节(64位)。
其中,第二组在第一组的“虚文”中选择,第三组在第二组的“虚文”中选择,以此类推,均在前组的“虚文”中选择8字节,作为本组的“明钥”。
选择的方法,包括:起始位置、选位间隔等。
通过“预备明钥”(上一组“虚文”)确定,借用其中的两个字节(FF,16位)。
使“预备明钥”的前16位与暗钥的第33~48位异或,得到新的16位码。作为“选择控制码”。
1 2 3 4 5 6 7 8
起始位置 选位间隔
F F F F F F F F
1、起始位置。“分组明钥”的首位位置,由第6字节的数值确定,(如其值为12,则“预备明钥”的第一位作为第一次“分组明钥”的首位。)
2、选位间隔。从第二位开始,在“预备明钥”中,每隔N位选择1位,共选择64位,组成本组的“分组明钥”。其跳跃的距离N由第7字节的数值确定,(如其值为11,则每隔11 位在“预备明钥”中取一位。)
3、选择时超过实际长度,则均从头继续循环。
4、最终组成8字节(64位)的“分组明钥”。
六、码控变换。
按次序分组地进行“码控变换”,获取“变易钥”。
每一次均按下列步骤,实现“明钥+秘钥→动态钥”的变换。
1、合拼
把64位的“分组明钥”和64位的“分组暗钥”合并,成为128位的码串。
2、交叉
前64位与后64位逐位交叉穿插,形成新的128位码。
前64位(1、2、3、4、……)与后64位(a、b、c、d、……)的排列变换示意:
1 2 3 4 5 6 7 8 9 …… a b c d e f g i j ……
X X X X X X X X X …… X X X X X X X X X ……
交叉后变换成,如下表所示:
1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 i 9 j …… ……
X X X X X X X X X X X X X X X X X X …… ……
形成新的128位(16个字节)字符串,如下表所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
F F F F F F F F F F F F F F F F
3、分项
形成“控制码”ki(k1,k2,k3);“被控码”Mi(M1,M2,M3),Ni(N1,N2,N3)。
4、码控
由“控制码”ki控制“被控码”Mi,Ni进行变换。其“人为约定”的变换关系如下表。
ki Mi/Ni 结果
0 (0)00 00 Mi与Ni相加,结果放置在Mi
1 (1)00 01 Mi与Ni相减,结果放置在Mi
2 (2)00 10 Mi与Ni相与,结果放置在Mi
3 (3)00 11 Mi与Ni相或,结果放置在Ni
4 (4)01 00 异或 Mi与Ni相异或,结果放置在Ni
5 (5)01 01 Mi与Ni各自取非,放置在原处。
6 (6)01 10 大交换 Mi与Ni相互交换
7 (7)01 11 小交换 Mi与Ni各自互换(前4位与后4位)
8 (8)10 00 大跳位 Mi的第1位与Ni的第1位,互跳
9 (9)10 01 大跳位 Mi的第3位与Ni的第3位,互跳
10 (A)10 10 小跳位 Mi与Ni各自互跳(第1位与的第5位)
11 (B)10 11 小跳位 Mi与Ni各自互跳(第3位与的第7位)
12 (C)11 00 大循环移位 Mi与Ni联动,循环左移1位
13 (D)11 01 大循环移位 Mi与Ni联动,循环右移1位
14 (E)11 10 小循环移位 Mi与Ni各自,循环左移2位
15 (F)11 11 小循环移位 Mi与Ni各自,循环右移2位
根据表格中所“人为约定”的设置,确定控制关系。
通过“控制码”ki控制“被控码”Mi,Ni进行变换后,其相互运算的结果,放在相应的位置。
【注:这种约定方式是无穷无尽的,这里只约定了其中的一个方式。】
5、重复
重复第2步到第4步,最后形成新的128位(16个字节)字符串。
6、形成“变易钥”
取128位字符串中的前120位(前15个字节),作为每组的“变易钥”。
这其中第3步到第5步,甚至也可以省略,可以更加简单地实现“明钥+秘钥→动态钥”的变换。
七、加密和解密。
1、加密。
对需要加密的文件数据(“实文”),进行分组。每组120位(15个字节)。
按照前叙的第三条方法,设定出“引导码”。从加密方自己的存储器中,提取“预储暗钥”。
按照第四条方法,按次序分步相应地,选择出“分组暗钥”。
按照第五条方法,按次序分步相应地,选择出“分组明钥”。
按照第六条方法,按次序分步相应地,变换出“变易钥”。
按次序分步相应地,使分组的“实文”,与各自对应的“变易钥”逐位“异或”,加8位的校验码,形成128位(16个字节)的分组“虚文”。
2、传输或存储。
把“引导码”与各个分组的“虚文”,按照前后顺序连接,进行传输或存储。
3、解密。
从加密的“虚文”文件集合中,提取“引导码”和各个分组的“虚文”。从解密方自己的存储器中,提取“预储暗钥”。
按照第四条方法,按次序分步相应地,选择出“分组暗钥”。
按照第五条方法,按次序分步相应地,选择出“分组明钥”。
按照第六条方法,按次序分步相应地,变换出“变易钥”。
按次序分步相应地,使分组的“虚文”与对应的“变易钥”逐位“异或”【仅取前120位(15个字节)】。
把各个分组的“实文”,按照前后顺序连接,即获得解密的文件。
这样的加密方法,可以用很简单的软件程序实施,其程序可以用几百个机器周期,甚至几十个机器周期就可以完成。平均加密1bit的数据,大约需要几个甚至一个不到的机器周期,要远远快于DES加密的速度。
八、定向加密。
对于群体内部的加密通讯,可以实现向特定组或特定成员的定向加密。定向加密后,相应的人员才可以解密。
方法是:1、在“明钥”中,设置有“定向指针”。2、在“暗钥”中,设置有“定向分区”。
1、在“明钥”中,设置有“定向指针”
借用“明钥”中“事件码”(“引导码”的一部分)的1/2个字节(4bit),作为“定向指针”的寄存位。
2、在“暗钥”中,设置有“定向分区”,每个“定向分区”存储“定位暗钥”
每个对象均有固定的存储地址,存储空间4个字节,分别借用“预储暗钥”其中的4字节(FFFF,32位),0-65535。
1 2 3 4 5 6 7 8 9 10 ……
成员 小组 大组
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF ……
通过程序设定,由“定向指针”确定“定位暗钥”的取舍。
对于加密方:
①、在“引导钥”(“明钥”)的“定向指针”中设定解密对象的编码,(成员、小组、大组、群,编码分别为000、001、010、011)。
②、在相应的对象(成员、小组、大组、群)的地址中,迁人解密对象的“定位暗钥”。
对于解密方:
确定自己所在群、大组、小组、成员所对应的“定位暗钥”值即可。
程序运行时,根据“定向指针”,在使用“暗钥”时,自动避开限定对象的区域。
(——例如,对于不使用的区域进行屏蔽,使其与“0”相“与”,或者与“1”相“或”。
面向“群”的,屏蔽“成员、小组、大组”存储区域;
面向“大组”的,屏蔽“成员、小组”存储区域;
面向“小组”的,屏蔽“成员”存储区域;
面向“成员”的,存储区域全部不屏蔽。)

Claims (8)

1.变易密钥的码控式数据加密方法,所谓的“数据加密”,是指“加密方”通过预定的“变换方法”和“密钥”,把数据从“实文”变换成“虚文”,以便能够安全地加以传输或存储,“解密方”再通过对应的“变换方法”和“密钥”,把“虚文”变换成“实文”,恢复出原有数据,所述的“实文”是指需要加密的、或者是经解密恢复的原文数据,“虚文”是指已经加密了的文件数据,
“变易密钥的码控式数据加密”方法,其特征在于:
在加密过程和解密过程中,“密钥”是变化的,是分别通过“明钥+暗钥→变易钥”方式的变换而实时产生出的,
所述的“明钥”是指能公开传输的“代码”,在加密解密过程中,由其中一方产生传输给另一方,
所述的“暗钥”是指不公开传输的“代码”,在加密解密前,已经由加密方和解密方双方预先持有的、双方相同的“代码”,
所述的“明钥+暗钥→变易钥”变换,是通过“码控变换”的方式,把“明钥”和“暗钥”变换成“变易钥”,这种“明钥+暗钥→变易钥”的“码控变换”,方法分步如下:
第一、使“明钥”和“暗钥”按预先约定的方法,进行选择、混合,合成“组合码”,或称“中间码”,
第二、“中间码”按预先约定的方法,进行分组,把“中间码”分成若干组,在每一组内,分成“控制码”和“受控码”两部分,
第三、按预先约定的方法,使每一个“控制码”对应一种变换方式,去约束控制“受控码”进行变换,也即“受控码”按“控制码”值约定的操作进行变换,每一个组的变换也都各自独立,构成相互独立的“变换小单元”,在各种“变换小单元”中,每一种变换方式与“控制码”的值,是有固定的对应关系的,
以“控制码”约定对“受控码”实施变换的方式,称为“码控的方式”,各种不同约定的“码控”组合,构成“离散的码控”,
第四、这其中,各自独立的变换方式有以下的一种或者多种的“小变换”:选择、分组、移位、替代、映射、运算的,
其中的“选择”,是指“控制码”不同的编码值,将按约定确定对“受控码”进行不同的模式、长度或者地址的选择控制,这其中,1、模式选择是指:由“控制码”的值确定其中的分组、移位、运算、映射或重复的模式,2、长度选择是指:由“控制码”的值确定从较长的数据中选择一部分,“控制码”不同的值表示不同的长度,3、地址选择是指:以“控制码”为指针,确定从长数据中按指针值所指的位置,挑选出相应的码位,
其中的“分组”,是指“控制码”不同的编码值,将按约定确定对“受控码”进行不同的长度的分组控制,其分组的长度单位或者是“位”,也或者是“字节”、“字”、“帧”,
其中的“移位”,是指“控制码”不同的编码值,将按约定确定对“受控码”进行不同的位置的移动、交换控制,其移动的长度单位或者是“位”,也或者是“字节”、“字”、“帧”,
其中的“替代”,是指“控制码”不同的编码值,将按约定确定对“受控码”进行不同的方式的替代控制,
其中的“映射”,是指“控制码”不同的编码值,将按约定确定对“受控码”进行不同的码值变换,这种“数-数映射”,或者是固定式的,也或者是寻址式的,其“映射”或者是一对一的,也或者是一位对多位数据,
所谓“固定式”的,是指固定地映射为相应的值,不同的“控制码”有不同的映射,但同一“控制码”下,其映射也固定,所谓“寻址式”的,是指或者先在包括“受控码”在内的整个“码串”中进行寻址,在其相应的位置中找出相应的值,作为变换的控制,
其中的“运算”,是指“控制码”不同的编码值,将按约定确定对“受控码”进行不同的方式的运算控制,所述的“运算”或者是算术运算,也或者是逻辑运算,这种控制,其编码所对应的,或者是单一的运算符,也或者是直接的算式,所述的算式,或者是单项式也或者是多项式,
其中的“重复”,是指“控制码”不同的编码值,将按约定确定对“受控码”进行不同的次数的重复变换,
这些用以控制“受控码”的“控制码”,也或者部分缺省,固定地映射为相应的控制方式,
第五、各组的“受控码”经过各自变换后,与“控制码”按预定的方式重新组合,合成新的“中间码”,
第六、重复第二至第五条,对“中间码”进行重新分组、变换,重新分组、变换的方法,或者与前一轮的分组、变换是相同的,或者与前一轮的分组、变换是相异的,
第七、这种变换的重复次数,或者约定是固定次数的,或者约定是第一次“中间码”的某几位数的值,
第八、进行了预定的重复次数后,结束重复,最后一次变换所生成的“中间码”,形成“变易钥”,
这种“明钥+暗钥→变易钥”的变换,其核心为“双钥、双码、叠变,离散、约定、码控”,
双钥:具有动态的“明钥”和静态的“暗钥”,由此双钥进行混合,
双码:混合后拆分成“控制码”和“受控码”两部分,
叠变:由“控制码”控制“受控码”进行变换,依据双码,反复多次累积叠加,
离散:这种“明钥+暗钥→变易钥”的变换,是由一个个离散的“变换小单元”的组合,
码控:这种“明钥+暗钥→变易钥”的变换,其中的“变换小单元”是通过“控制码”对“受控码”进行控制而实现的,
约定:这种“明钥+暗钥→变易钥”的变换,其离散的形式、码控的方式和叠变的累积,都是人为约定的,
这种“明钥+暗钥→变易钥”的变换,称之为“双钥双码叠变,离散约定码控”变换,
简称为“双钥双码离散码控变换”,或者简称“双钥叠变码控变换”、“双钥码控离散变换”、“双钥对称的码控变换”、“双钥码控变换”、“码控变换”,
这其中,使“组合码”分成“控制码”和“受控码”,所反复进行彼此控制的变换,称为“码控的复变”,
在具体的加密过程中,“加密方”把需要加密的“实文”进行分组,在进行每一分组的加密时,先提取己方预存或预选的“暗钥”,并选定“明钥”,通过“明钥+暗钥→变易钥”变换,获得动态的“变易钥”,再通过“变易钥”对分组的“实文”进行加密,获得分组的“虚文”,这种“实文→虚文”,其方法是以下的一种或者多种的组合:1、把“实文”的分组和“变易钥”直接“异或”获得“虚文”,2、通过“变易钥”对“实文”进行“码控的复变”获得“虚文”,3、以“变易钥”作为常规密钥,进行加密获得“虚文”,最后把各分组的“虚文”和“明钥”直接或合成整体,进行存储或者发送给“解密方”,
对应的,解密时,“解密方”把已经加密了的“虚文”分组,并把得到的“明钥”和“解密方”预存或预选的“暗钥”,通过“明钥+暗钥→变易钥”变换,获得动态的“变易钥”,再通过“变易钥”对“虚文”进行分组解密,重新获得“实文”,这种“虚文→实文”,其方法是以下的一种或者多种的组合:1、把“虚文”的分组和“变易钥”直接“异或”获得“实文”,2、通过“变易钥”对“虚文”进行“码控的复变”获得“实文”,3、以“变易钥”作为常规密钥,进行解密获得“实文”,最后把各分组的“实文”段合成整体,完成解密,
在进行加密解密时,“明钥”或由“加密方”实时产生,与加密后的“虚文”一起,共同传递给“解密方”,或者是使用由此前存储下来的“虚文”段、“实文”段、“变易钥”数据,“暗钥”或是预先存储于“加密方”“解密方”的双方的存储器中,
在加密中,或者也有“插入干预”的方式,
所谓的“插入干预”是指,在加密系统运作一段时间后,对变换方法中的参数进行部分或整体变更:1、对“码控”法则的对应关系进行变换,2、对预置“暗钥”的数值进行变换,
这种变更,或者是定期的,或者是不定期的、随机进行的,
整个加密体系,具有前期“预置暗钥”、实时“动态变换”两阶段,而在有“插入干预”时,则具有前期“预置暗钥”、中期“插入干预”、实时“动态变换”三阶段。
2.根据权利要求1所述的“变易密钥的码控式数据加密方法”,其特征在于:
其“明钥”的产生,或是按预先的约定,由以下的一种或者多种信息数据,进行组合、选择:1、时间日期值,2、时序编号,3、已经使用过的“虚文”分组,4、已经使用过的“实文”分组,5、已经使用过的“变易钥”,
这样的组合、选择,是使“明钥”由“预备明钥”变换成“分组明钥”,
所谓“预备明钥”是指,预备用来作为“明钥”的信息数据,
所谓“分组明钥”是指,从“预备明钥”中的数据进行选择、变换,作为实际工作的“明钥”,
这种从“预备明钥”到“分组明钥”的选择变换,其实现的方法有:1、或者是按时间日期值来确定,约定不同的时间段有不同的选择,2、或者是按次序来确定,约定不同的序列有不同的选择,3、或者是按“码控”的方式来确定,选择“预备明钥”中的部分代码,从而产生出“分组明钥”,
上述三种方法中的第3种方法,也即通过“码控”的方式选择“分组明钥”,其操作的方式有:1、或者由“暗钥”或“明钥”的一部分直接作为“控制码”,2、或者由“暗钥”的一部分先与部分“明钥”混合后,作为“控制码”,3、或者由“虚文”、“实文”、“变易码”的一部分或混合,作为“控制码”,进而控制着“预备明钥→分组明钥”的变换,
其“暗钥”的产生,或是由预先存储的较长的“暗钥”选择、调取其中的一部分代码,进行组合、变换,
这样的组合、变换,是使“暗钥”由“预储暗钥”变换成“分组暗钥”,
所谓“预储暗钥”是指,预先存储在加密方和解密方的数据代码,
所谓“分组暗钥”是指,从“预储暗钥”中的数据进行选择变换,作为实际工作的“暗钥”,
这种从“预储暗钥”到“分组暗钥”的选择变换,其实现的方法有:1、或者是按时间日期值来确定,约定不同的时间段有不同的选择,2、或者是按次序来确定,约定不同的序列有不同的选择,3、或者是按“码控”的方式来确定,选择“预储暗钥”中的部分代码,从而产生出“分组暗钥”,
上述三种方法中的第3种方法,也即通过“码控”的方式选择“分组暗钥”,其操作的方式有:1、或者由“暗钥”或“明钥”的一部分直接作为“控制码”,2、或者由“暗钥”的一部分先与部分“明钥”混合后,作为“控制码”,3、或者由“虚文”、“实文”、“变易码”的一部分或混合,作为“控制码”,进而控制着“预储暗钥→分组暗钥”的变换。
3.根据权利要求1或2所述的“变易密钥的码控式数据加密方法”,其特征在于:
在“明钥”中,设置有“定向指针”;在“预储暗钥”中,设置有“定向分区”,
从“预储暗钥”获取“分组暗钥”时,根据“定向指针”的数值,使用或者回避“定向分区”中存在的“定位暗钥”,
所谓的“定向指针”是指,“明钥”中,有约定特定字节的位置,其内容数据是作为“指针”,指向“暗钥”的“定向分区”地址,
所谓的“定向分区”是指,“暗钥”中有约定特定字节的位置,分别存储不同级别的“定位暗钥”,操作时,根据“定向指针”寻址,
所谓的“定位暗钥”是指,暗钥是分级的,个人和组群所使用的暗钥所存放的位置相互隔离,存放在不同的位置,是固定位置的。
4.根据权利要求1或2所述的“变易密钥的码控式数据加密方法”,其特征在于:
在具体的加密过程,分组加密的第一组或者前几组,所使用的“分组明钥”,是由其中一方实时产生的,这种“分组明钥”,称为“引导钥”,
后续的分组加密,所使用的“分组明钥”,或者使用“虚文”,或者使用“实文”,或者使用“变易钥”,或者是交替使用“虚文”、“实文”、“变易钥”,或者使用“虚文”、“实文”、“变易钥”的组合代码。
5.根据权利要求1所述的“变易密钥的码控式数据加密方法”,其特征在于:
加密解密时的分组,是分片进行的,若干组构成一片区,在第一片区的各组加密变换时,其用于生成“变易钥”的“明钥”是实时产生的,在第二片区的各组加密变换时,其用于生成“变易钥”的“明钥”是第一片区对应各组的“虚文”或“实文”或“变易钥”,或者上述第一片区对应各组的“虚文”或“实文”或“变易钥”这些代码的选择组合,第三片区的各组“明钥”,使用第二片区对应的各组“虚文”或“实文”或“变易钥”或者组合,后续的片区,以此类推。
6.根据权利要求1所述的“变易密钥的码控式数据加密方法”,其特征在于:
在前期“预置暗钥”、中期“插入干预”、实时“动态变换”各个阶段中,各种的约定,都是人为的,这些构成具体方法的各种约定,或者是公开的,或者是不公开的。
7.根据权利要求1所述的“变易密钥的码控式数据加密方法”,其特征在于:
每一个“控制码”或者是一位的,或者是多位的,“控制码”不同的值有不同的控制方式,也或者有相同的控制方式,
这其中,“控制码”又分为“选择控制码”、“分组控制码”、“移位控制码”、“运算控制码”、“重复控制码”,通过人为约定的方法,使每一种“控制码”的码值,均对应定义一种变换方式,
其中的“选择控制码”,对应控制着对“受控码”的码段选取,在变换过程中“受控码”或者是全部用来变换,或者是选取部分码段进行变换的,“选择控制码”的每一种码值均对应有一种“受控码”码段的选取方式,
其中的“分组控制码”,对应控制着对“受控码”的码段进行分组,在变换过程中,把选取的“受控码”码段分成若干组,“分组控制码”每一种码值均对应有一种分组方式,
其中的“移位控制码”,对应控制着对“受控码”的移位,在变换时,把选取的“受控码”或者按位移动、或者按组移动,“移位控制码”的每一种码值均对应有一种移位方式,
其中的“替代控制码”,对应控制着对“受控码”的替代,在变换时,把选取的“受控码”替代成约定的代码,
其中的“映射控制码”,对应控制着对“受控码”的映射,在变换时,把选取的“受控码”,按相应的映射表进行映射变换,“映射控制码”的每一种码值均对应有一种映射表格,使“受控码”在相应的映射表格里找到对应值,
其中的“运算控制码”,对应控制着对“受控码”的运算,在变换时,把选取的“受控码”按位或按分组进行运算,“运算控制码”的每一种码值对应一种基本运算和逻辑运算,使“受控码”进行相应的运算变换,
其中的“重复控制码”,控制着对“受控码”的变换的重复次数,在变换过程“重复控制码”的每一种码值对应一种重复次数,或者,这种变换的重复次数是固定的。
8.根据权利要求1所述的“变易密钥的码控式数据加密方法”,其特征在于:
这种在“控制码”的控制下对“受控码”进行的选择、分组、移位、替代、映射、运算、重复的变换,其变换模式或者是全部进行的、或者部分进行的,
在时间顺序上,或者是并列同步进行的、或者是前后分步进行的、或者是混合进行的,这种属于不同类型的变换,按工作步骤,分为“时分复变”、“片分复变”、“码分复变”、“混合复变”,
其中所述的“时分复变”,是指选择、分组、移位、替代、映射、运算是按次序进行的,其控制方式称为“时分复控”或“时分码控”,
其中所述的“片分复变”,是指选择、分组、移位、替代、映射、运算是按“数码”分片段进行的,其控制方式称为“片分复控”或“片分码控”,
其中所述的“码分复变”,是指选择、分组、移位、映射、运算是按数码定义进行的,其控制方式称为“码分复控”或“码分码控”,
其中所述的“混合复变”,是指选择、分组、移位、替代、映射、运算是上述三种步骤混合进行的,其控制方式称为“混分复控”或“混分码控”,
这些“时分复变”、“片分复变”、“码分复变”、“混合复变”之间的关系是,在整体的“变换”下有多个“变换模式”,每个“变换模式”下,有多个“子变换”。
CN201811538759.XA 2018-11-08 2018-12-11 变易密钥的码控式数据加密方法 Active CN111159721B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811350112 2018-11-08
CN2018113501124 2018-11-08

Publications (2)

Publication Number Publication Date
CN111159721A CN111159721A (zh) 2020-05-15
CN111159721B true CN111159721B (zh) 2024-03-01

Family

ID=70555597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811538759.XA Active CN111159721B (zh) 2018-11-08 2018-12-11 变易密钥的码控式数据加密方法

Country Status (1)

Country Link
CN (1) CN111159721B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112287407B (zh) * 2020-10-30 2021-12-10 武汉奇书科技有限公司 一种安全加密芯片

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997012459A1 (en) * 1995-09-26 1997-04-03 Xian Kan Lin A method for encryption of file
CN1246007A (zh) * 1999-02-10 2000-03-01 河北工业大学 排列码加密解密方法及其排列码加密解密器
DE102006030325A1 (de) * 2006-06-30 2008-01-03 Gerhard Kosel Verfahren für die Konstruktion eines Schlüsselstrom-Generators zur Erzeugung von Pseudo-Zufallszahlen für kryptographische Anwendungen
CN101742060A (zh) * 2008-11-21 2010-06-16 康佳集团股份有限公司 动态密码控制方法
WO2011015510A1 (de) * 2009-08-06 2011-02-10 Fachhochschule Schmalkalden Echtzeitfähige quantencomputersichere verschlüsselung von daten aller art
CN104125059A (zh) * 2013-04-28 2014-10-29 陈麟华 复合时变密码和时变式数据加密方法
CN104868995A (zh) * 2014-02-20 2015-08-26 陈麟华 “编码约定控制变换式”信息认证法和信息加解密法
CN107147487A (zh) * 2017-05-23 2017-09-08 高胜法 对称密钥随机分组密码

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997012459A1 (en) * 1995-09-26 1997-04-03 Xian Kan Lin A method for encryption of file
CN1246007A (zh) * 1999-02-10 2000-03-01 河北工业大学 排列码加密解密方法及其排列码加密解密器
DE102006030325A1 (de) * 2006-06-30 2008-01-03 Gerhard Kosel Verfahren für die Konstruktion eines Schlüsselstrom-Generators zur Erzeugung von Pseudo-Zufallszahlen für kryptographische Anwendungen
CN101742060A (zh) * 2008-11-21 2010-06-16 康佳集团股份有限公司 动态密码控制方法
WO2011015510A1 (de) * 2009-08-06 2011-02-10 Fachhochschule Schmalkalden Echtzeitfähige quantencomputersichere verschlüsselung von daten aller art
CN104125059A (zh) * 2013-04-28 2014-10-29 陈麟华 复合时变密码和时变式数据加密方法
CN104868995A (zh) * 2014-02-20 2015-08-26 陈麟华 “编码约定控制变换式”信息认证法和信息加解密法
CN107147487A (zh) * 2017-05-23 2017-09-08 高胜法 对称密钥随机分组密码

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A chaos-based image encryption algorithm with variable control parameters;Yong Wang;《Chaos, Solitons and Fractals》(第2009期);1-11 *
基于中国剩余定理和动态分组的密钥分配算法;秦军波;王兴军;;信息安全与通信保密(06);191-193 *

Also Published As

Publication number Publication date
CN111159721A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
CN108365947B (zh) 一种基于Feistel网络与动态DNA编码的图像加密方法
US5751811A (en) 32N +D bit key encryption-decryption system using chaos
US5003596A (en) Method of cryptographically transforming electronic digital data from one form to another
KR101246490B1 (ko) 갈루아 폐체 암호 시스템
US7801307B2 (en) Method of symmetric key data encryption
CN106953875A (zh) 基于多密钥流密码的顺序加密方法
US20090296928A1 (en) Pseudorandom number generating system, encryption system, and decryption system
AU2003273688B2 (en) Method of generating a stream cipher using multiple keys
EP1829276A1 (en) Method and apparatus for increasing the speed of cryptographic processing
JP2004258667A (ja) N個のデジットを含むワードの擬似ランダム置換の生成方法
CN111159721B (zh) 变易密钥的码控式数据加密方法
US7103180B1 (en) Method of implementing the data encryption standard with reduced computation
CN115987490A (zh) 一种适用于arx结构的轻量级分组密码算法白盒化构造方法
JP5207153B2 (ja) 擬似乱数発生システム
Ivanov et al. Nonlinear transformations for the construction of the primitives of symmetric cryptoraphy
CN110247754B (zh) 一种分组密码fbc的实现方法及装置
RU2738321C1 (ru) Способ криптографического преобразования и устройство для его осуществления
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
Jessa Data encryption algorithms using one-dimensional chaotic maps
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법
Al-ahdal et al. Securing the Internet of Things: A review of Lightweight and low-power Cryptography Techniques
JP5268011B2 (ja) 暗号化システム及び復号化システム
CN115967483A (zh) 一种运用矩阵转化构造查找表的白盒分组密码加密方法与系统
US10992511B2 (en) Machine-implemented method of dynamically encrypting data
RU2140713C1 (ru) Способ блочного криптографического преобразования двоичной информации

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