CN106341230B - 通过缩短密文长度来实现现代密码体制无条件安全的方法 - Google Patents
通过缩短密文长度来实现现代密码体制无条件安全的方法 Download PDFInfo
- Publication number
- CN106341230B CN106341230B CN201510414053.2A CN201510414053A CN106341230B CN 106341230 B CN106341230 B CN 106341230B CN 201510414053 A CN201510414053 A CN 201510414053A CN 106341230 B CN106341230 B CN 106341230B
- Authority
- CN
- China
- Prior art keywords
- key
- ciphertext
- output
- length
- plaintext
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及一种通过缩短密文长度来实现现代密码体制无条件安全的方法,它解决了现代密码体制因密文存在冗余度而无法变换为比明文短的随机输出、或因通信体之间难以传送“一次一密”密钥而不能达到无条件安全的问题。其技术要点是将原始明文利用现代密码技术加密产生的密文分成若干个不等长或大小相等的两个分组,然后将每一个分组中的多个字符分别用一个或少数几个字符替代,对被替代的字符隐形传递。最后将各个输出分组连接起来形成比原始明文长度短的随机输出。加密密钥不参与传递,密钥信息不在传输的消息中隐藏,Alice安全地把随机密钥传送给Bob,密钥传输成本因此而消失。本发明用于在传输、储存期间保障信息绝对安全。
Description
技术领域
本发明涉及一种密码体制无条件安全的方法。
背景技术
无条件安全性又称完善保密性,是对攻击者的计算资源没有限制时的安全性。即使提供了无穷的计算资源,依然无法被攻破,则称这种密码体制是无条件安全的。
一次一密方案由Gillber Vermam和Joseph Mauborgne在1918年提出,它使用与消息一样长的随机密钥,该密钥不能重复,只使用一次,保证了每次加/解密所使用的密钥都是不同的,故称为“一次一密”[对应的密码被称为一次一密体制(One-time Pad)]。这种方案是不可破的,因为它产生不带有与明文有任何统计关系的随机输出。[1]
1949年,Shannon(香农)证明了只有一次一密的密码体制才是绝对安全的。[2]到目前为止,除一次一密方案外,没有一个已知的实际加密方案在密码体制无条件安全定义下可以被证明是绝对安全的。因此,长期以来人们一直认为,一次一密密码体制是唯一一种绝对不可破译的密码系统,无条件安全的算法是不存在的。[1]也就是说,除了一次一密方案之外,再没有其他加密方案是无条件安全的。
事实上,一次一密方案虽然性能卓越,但实际上不实用。因为发送方Alice和接收方Bob必须每次安全更新随机密钥,这在当前技术水平下并不现实,至今就没有人能够通过计算机和通信网络实现一个一次一密密码系统。
那么,一个加密方案怎样才能达到无条件安全呢?60多年前,Shannon提出了下面的思想:仅当密钥至少和明文一样长时,才能达到无条件安全。[3]从这个意义上讲,一个加密方案要达到无条件安全,密钥必须与被加密的消息一样长且是完全随机的,这就要求密钥必须是保密的,并且只使用一次,即“一次一密”。要满足这个要求,就必须在Alice和Bob之间建立一个安全通道,以便Alice将随机密钥安全地传送给Bob。由于产生和分发该随机密钥存在实现上的巨大困难,从而导致“一次一密”的实际应用受到限制。
一个加密方案达到无条件安全之所以要求密钥必须与被加密的消息一样长,一方面因为与明文相比,特别短的密钥的周期重复,有可能被攻击者通过密码分析而被破解;另一方面因为密钥的长度等于明文的长度,那么密文的长度就和明文的长度相等,加上密钥是随机的,此时明文与密文之间就是互相独立的,因此密文没有给出明文的任何信息(除了长度)。攻击者没有办法猜测密钥,仅根据密文就能破译出明文是不行的。实际上,密文是公开的,明文的有效位长是有限的,如果密钥与明文一样长,密钥和明文的有效位长就可以根据密文的长度来确定,一旦相同长度的密钥用完了,在第二条消息中重复使用是相当危险的,因为第一条消息的任何信息都会对第二条消息的破译有好处。有了密钥长度,攻击者可以有效地穷举密钥空间,对截获的密文尝试所有可能的密钥,以期得到有意义的明文,或者通过选择特定的明文进行加密,有可能产生更多关于密钥的消息。如果攻击者得到了密文对应的明文,她就能找到密钥,因为对于一次一密来说,密文和明文就决定了密钥。因此当密钥与明文一样长时,一次一密密码体制在惟密文攻击下是安全的,但在已知明文或选择明文攻击下就不一定安全,这也是将与明文一样长的密钥用于一次一密密码体制的一个缺陷。
现代的密码技术除了一次一密方案之外,都只具有计算安全性,其安全性在很大程度上取决于密钥的长度,密钥越长,安全性越好。密钥长度的增长,对分组密码来讲,必然使得密文的长度大于明文的长度,因此分组密码不能达到无条件安全,因为密文存在冗余度,密文不是至少与明文一样长的随机输出。在通常使用的流密码中,密钥流产生时会呈现出一定长度的周期,其输出也就是周期序列,所以实际应用中的流密码是不可能实现一次一密密码体制的。另外,公钥密码体制不能提供无条件的安全,这是由于密文的任何一位不能略去,一个攻击者在得到一个密文之后,可以对每个可能的明文进行加密,直到得到相同的密文,此时对应的明文就是要破译的结果。
然而,任何秘密信息要保证安全传输和储存都要使用密码加密,任何一种形式的加密都会产生密文,对密码算法任何一种形式的攻击都必须基于密文,因为恢复明文所需要的信息就隐藏在密文中。如果将密码体制加密产生的密文变换成比原始明文短的消息,那么密钥的随机位就已经消失了,明文或者密钥的信息就不在传输的消息中隐藏,从而减少了攻击者(密码分析者)Eve从传输数据中获取的信息量,Eve从截获的密文中就提取不到明文或者密钥的信息,密钥及其长度是不可知的,密钥是否完全随机不是显而易见的,这样变换所得到的比原始明文短的密文没有冗余,它与明文、密钥不存在任何形式的统计关系,即使提供了无穷的计算资源,Eve也无法破译该系统,Alice就能够安全地将随机密钥传送给Bob。所以说,造成密码体制不能到达无条件安全和一次一密方案不实用的原因,不在于一次一密密钥传递的困难性,而是在于密文字符位或字符个数减少即密文变短的困难性。
文献名称及出处:
[1]胡向东,魏琴芳,胡蓉.应用密码学[M].电子工业出版社 2011.5 第二版 第2章2·2·2节.
[2]张健、任洪娥、陈宇.密码学原理及应用技术[M].清华大学出版社 2011.8 第6章.
[3]张健、任洪娥、陈宇.密码学原理及应用技术[M].清华大学出版社 2011.8 第2章2·2·2节.
发明内容
用于一次一密的密钥必须与被加密的消息一样长且是完全随机的,在一次一密中随机密钥必须事先传输过去。由于任何通信信道都不是绝对安全的,每次安全交换一个和明文一样长的随机密钥存在实现上的巨大困难,特别是传输密钥的成本非常昂贵。公钥密码体制因密文存在冗余度无法变换成比原始明文长度短的随机输出,不能提供无条件的安全。针对上述现有技术存在的缺陷或不足,本发明所要解决的技术问题是提供一种通过缩短密文长度来实现现代密码体制无条件安全的方法。
为解决上述所要解决的技术问题,本发明是按以下步骤实现的:
步骤1:将原始明文利用现代密码技术加密处理后的消息分组,每个分组含有多个字符,所述原始明文利用现代密码技术加密处理后的消息为临时密文,分组有以下两种方式:
a)将临时密文在密钥控制下分成长度不等的若干个分组;
b)将临时密文分成大小相等的两个分组;
步骤2:采用替代密码算法,将每一个分组中的多个字符分别用一个或少数几个字符替代,对被替代的字符隐形传递;
步骤3:将经替代变换后的各个输出分组连接起来形成比原始明文长度短,与原始明文、密钥、临时密文不存在任何统计关系的随机输出;
替代密码算法为:首先选取一个S盒,然后把消息的前几位二进制数输入该S盒,然后再把该S盒的输出与消息中另外的比特连接起来作为下一次变换的输入,如此继续下去,得到跟每一个S盒输出位数相同的输出,即输出密文分组,所述消息为临时密文分组,所述S盒在比特密钥控制下选取;
加密密钥的生成和分配方法为:由Alice以其随机选择的并发送给Bob的标识符ID或双方事先确定的ID作为索引,从共享的密钥KAB中查找到,所述加密密钥不参与传递。
由于采用了上述方案,在信息传输过程中所传送的符号比原始明文实际所需要的符号少,输出密文比原始明文的冗余更少。
由于采用了上述方案,加密密钥不须参与传递,密钥信息不在传输的消息中隐藏,Alice安全地把随机密钥传送给Bob,不必考虑成本因素。
附图说明
图1为密钥长度和密钥确定表。
图2为DES中的8个S盒,分别为S1、S2、S3、S4、S5、S6、S7、S8。
图3为两个S盒。
图4为使用S1盒的一个例子。
下面结合附图和具体实施方式对本发明作进一步详细的说明。
具体实施方式
首先在通信双方之间建立共享的密钥,用来生成和分配加密密钥。建立共享密钥的方法有多种,其中有一种方法就是发送方Alice和接收方Bob预先秘密共享特定的密码本即主密钥;另一种方法就是使用Diffie-Hellman密钥交换算法来实现通信双方密钥共享;方法之三,让一个可信的第三方(KDC)把密钥分发给Alice和Bob来达到密钥共享的目的,此外还可以使用公钥密码做到这点。这些方法除了主密钥需要人工更换以外,其他各共享密钥均可按照某种协议进行更换。
建立共享密钥之后,其次确定用于加/解密的密钥长度和具体密钥,解决这两个问题有两种方式:整体式和分割式。整体式是指将共享密钥的第一个字符的位置或共享密钥某段的某一个字符的位置作为密钥长度的初始位置,该初始位置紧邻的数值作为密钥长度的位数,紧邻数值后面的若干个数字为具体的密钥。一个密钥确定之后,紧挨着该密钥最后一个字符的位置又可作为另一个密钥长度的初始位置使用,依此类推。分割式是指一个密钥长度的初始位置不从固定的某个字符开始,而是由Alice随机选择,即一个密钥确定之后,Alice可以重新选取密钥长度的初始位置,不受其他方的限制,每加密一份报文就更换一次初始位置,改变密钥长度的初始位置就可以得到不同长度的密钥。
现在对整体式和分割式做更详细的描述,可以描述成一个密钥长度和密钥确定表,如图1所示。图1中数值为共享密钥,都以两位数来表示。整体式的意思是,共享密钥的第一个两位数87变成了密钥长度的初始位置,26为密钥长度的位数,99122214655947311537614525为具体的密钥。89则为第二个密钥长度的初始位置……或者从共享密钥的第47位起,按上述方法类似处理。分割式的意思是,假设选取99为密钥长度的初始位置,那么共享密钥的第三个两位数变成了第一个密钥长度的初始位置,则12为密钥长度位数,12后面的12个数字为具体的密钥;如果选16为第二个密钥长度的初始位置,那么72为密钥长度位数,72后面的72个数字为具体的密钥,等等。
选定了密钥,下面的任务就是对原始明文加密处理。加密可采用现代密码技术,适合任何密码算法。不过除序列密码之外,加密过程使用的密钥长度一定要比原始明文长,因为序列密码的密钥长度须长于被加密信息的长度,而这在实际使用中是没有意义的;另外如果在上述整体式中出现密钥长度短于或等于原始明文的长度时,可以将两个或连续多个密钥合并形成一个长的密钥,合并多少个密钥,这取决于通信双方之间的协商。分割式可以避免此类事情的发生。
临时密文产生之后,接下来的事情就是将临时密文变换成比原始明文长度短的输出密文。
首先,将临时密文在密钥的控制下分成长度不等的若干个分组,每个分组含有多个字符,然后将临时密文每一个分组中的多个字符分别用一个或少数几个字符替代,对被替代的字符隐形传递。最后将各个输出密文分组连接起来形成输出密文。下面用一个简单的例子来具体描述这一过程。为了表述方便,这里以数据加密标准DES中的8个S盒为基本变换操作模式,DES中的8个S盒如图2所示。
加密算法是这样的:取输入的二进制数的第1和第6位所组成的二进制数值所代表的行号,中间4位所组成的二进制数所代表的列号,处在所选中的行和列交叉点的数字就是该S盒的输出。S盒在比特密钥控制下选取。
例1.现在假设临时密文仅由一个分组组成,消息有8位00101110,前6位是001011,此6位对于S1行号是01(对应第1行),而列号是0101(对应第5列),第1行与第5列交叉位置所对应的数是2,因此输出是0010。下面给出描述使用S1盒的例子,如图4所示。
现在将S1盒输出0010和临时密文00101110中的另外2位连接起来作为下一次变换的输入,用和前面相同的方法,把6位输入变成4位输出。现假设使用S3,输入为001010,行号是00,列号是0101,交叉点的数字为15,因此输出密文是1111。本例中临时密文有4个比特位被略去,临时密文00101110中的8个比特被输出密文1111中的4个比特替代。当Alice启动数据传输时,消息00101110已经消失了,而后Bob将输出密文1111解密后的消息为00101110,那么被替代的字符就显现出来了。这就是隐形传递信息的技巧所在。如果将各个输出密文分组连接起来就构成了比临时密文短的消息。而本发明需要一个比原始明文短的密文,有两种方法可以实现。
第一种方法:利用较大的临时密文分组。将临时密文分成长度足够长的分组,每个分组经替代变换可以得到跟每一个S盒相同的输出位数,连接各个分组的输出就形成了比原始明文短的消息。例如,假设原始明文有20个比特符号,临时密文有48个比特符号,如果将临时密文分成大小相等的两个分组,那么每个分组各有24个比特符号,每一个分组若用DES中的8个S盒变换,则输出密文至少有4+4=8个比特符号,比原始明文少12个比特符号。
第二种方法:用到较多不同选择矩阵的S盒。如果按第一种方法得到的消息比原始明文长,就将临时密文变换后所得到的相邻两个分组连接起来,组成一个新的分组,在不同选择矩阵的S盒下运行。由于选择矩阵的行列数不同,S盒的输入与输出位数也就不同,比如图3所示的两个S盒,每个S盒的输入是4位,得到的输出只有3位。还有的S盒的输出只有1个字符位,这就是能用一个或少数几个字符替代多个字符。如此继续下去,就可得到比原始明文短的输出密文。
至此,还有一个很重要的工作要完成,那就是Alice将随机密钥安全地传送给Bob。Alice怎样做到这一点呢?Bob在接到新密钥之前只知道Alice过去的密钥,Alice在启动数据传输时需要把新的密钥告诉给Bob,使Bob能够知道目前使用的是哪个密钥,从而能够确定该用哪个解密。为了区别每个不同的密钥,需要给每个密钥赋予标识符ID,即密钥长度的初始位置。在通信之前,Alice和Bob有一个共享的密钥KAB,如果Alice要和Bob进行通信,那么Bob使用Alice发送的ID作为索引,从KAB中就能查找到加密密钥。这样由KAB产生的密钥不须参与传递,密钥没有被窃取的危险。ID仅表示密钥长度的初始位置,它不会透露相应KAB中的任何内容,因此ID可以被公开,加密密钥基于公开渠道就可以实现分发,Alice也可以随机选择ID,因而每次加密可以使用不同的密钥,即一次一密,并且密钥信息能从一方传到另一方。但是如果用该密钥加密数据产生的密文不变换为比原始明文短的消息的话,那么Alice是很难将随机密钥安全地传送给Bob的,因为密钥的随机位没有从这种密文中消失,密文的字符位或字符个数没有减少,这会造成很严重的问题。首先,由于现代密码技术只具有混合特性,密码变换要求对密钥敏感,密钥的微小变化会带来密文的显著不同。一旦密文中出现了相同的数值,Eve会发现Alice用的是相同的密钥。由于许多现实世界中的消息都是由重复的片段组成的,在现代密码技术中有些密码算法在加密变换中使用了相同的密钥,比如分组密码对每个分组使用相同的密钥执行加密变换。使用相同的密钥就必须冒着会泄露的危险;其次,如果Eve在充分长的时间内观察了Alice和Bob之间的通信,并且已经设法获得了一些密文对应的明文,她可以利用ID为索引标志开始建立一个密码本,Eve没有必要计算K,她只要查询密码本中的密文所对应的明文来找到KAB或者是由KAB得到的密钥;第三,如果Alice用一个计算机来生成随机数,由于计算机是有限状态机,计算机的这一固有属性决定了不可能取得完全的随机性。同样,密文的长度是有限的,如果不将密文变换成比原始明文短的消息,那么输出密文也不可能取得完全的随机性。
这将会导致“一次一密”密钥不能安全传递,因此需要一种在传输密文时不会泄露能被Eve利用的信息的方法,这需要用到隐形传递信息的技术和手段。隐形传递信息的技术要点是将临时密文分组中的多个字符分别用一个或少数几个字符来替代。在此过程中,临时密文的字符位或字符个数不断减少,当形成输出密文时,加密密钥被消除,当Alice传输信息时,加密密钥的随机位已经消失了,密钥信息不在输出密文中隐藏,输出密文没有给出密钥的信息,输入位中某些位的变化在输出位中不是显而易见的。还是以例1中使用的加密变换方法来描述这点。
例2.假设消息为1101000101,前6位对于S1行号是10(对应第2行),列号是1010(对应第10列),行与列的交叉点是9,因此输出是1001。把1001与消息1101000101的第7位和第8位连接起来,即100101作为下一次变换的输入,比如对于S5,行号是11,列号是0010,因此输出是1100,然后再把1100与消息1101000101的最后两位连接起来,即110001作为下一次变换的输入,比如对于S8行号是11,列号是1000,因此输出是1111,所以消息1101000101经变换得到输出密文1111。
本例中有6个比特位被略去,消息1101000101变为??????1111,问号表示这几位未知,这样一来则密文不能解密。比如对于流密码,每次加密和解密操作就是按位异或,根据异或操作的特性,此时解密是不可以进行的。Eve从输出密文中不能猜测到密钥长度和具体的密钥以及临时密文和原始明文的长度到底是多少。此外,在由临时密文变换成输出密文的过程中,上一次变换的输出与消息中另外的比特连接起来作为下一次的输入,随着输入位数或字符个数的不断减少,矩阵的行列数在随机改变,得到的输出密文可以是选择矩阵内任何一行或任何一列对应的输出。也就是说,每个输出密文以等可能概率出现。例如假设临时密文是101101100101,那么输出密文对于DES来讲可以是0000,也可以是1111,只要输出密文比原始明文短,这些消息的可能性都是相等的。由于Eve只知道输出密文,对隐形信息一无所知,她截获了输出密文不会得到任何关于临时密文和密钥的信息,临时密文和密钥的改变在输出密文中不是显而易见的。因此密钥完全随机与否对Eve来说一样起作用,可以用伪随机序列来取得真正的随机数,因而标识符ID可以事先确定而不必传送。接着Alice用一表示密钥长度初始位置的标识符ID和输出密文一起传送给Bob,或者在标识符ID事先确定的情况下,Alice只将输出密文传送给Bob。这样就完成了将随机密钥安全地传送给Bob的过程。
解密过程本质上和加密过程是一样的,仅需要逆替代和使用逆序密钥。Bob要解密,首先确定密钥长度和确定密钥。Bob可利用Alice传送的标识符或双方事先确定的标识符即可得到。接下来Bob将输出密文反替代成临时密文,也就是把临时密文替换成输出密文这一过程倒过来,Bob可查询逆S盒而得到临时密文,之后根据临时密文和密钥通过解密算法恢复明文,这就是原始的明文消息。
有益效果
从密码系统安全的角度来看,理论上“一次一密”密码最安全,但它实现上困难较多,“一次一密”密码存在的主要问题就是每次进行保密通信时发送方Alice如何将随机密钥安全地传送给接收方Bob。长久以来,人们一直渴望解决,但始终未能获得成功。这是由于人们在解决这个问题的过程中总是依照“一次一密”方案和遵从Shannon(香农)提出的达到无条件安全的思想,只是一味地在“密钥必须与被加密的消息一样长”的圈子里打转,而不去考虑其他方面的可能性所造成的。
其实,一个加密方案不能达到无条件安全不是密钥长度的问题。换句话说就是,一个密码体制达到无条件安全与密钥的长度无关,因为1)密钥小于明文的长度,密码算法不足以抵抗穷举搜索的攻击,密码系统很容易被攻击者通过密码分析而破解;2)密钥与被加密的消息一样长,那么密文和明文有相同的长度,这就暴露了密钥长度的信息,使得随机密钥无法安全传送,从而导致“一次一密”密码的实际应用受到限制,而且还会带来不完全安全的缺陷;3)密钥大于明文的长度,密文存在冗余度,随机性不能保证,密码系统不能提供无条件安全。这就是说,一个密码体制达到无条件安全并不取决于密钥的长度,关键取决于输出密文是否为比原始明文短的随机输出。也就是说,密码体制达到无条件安全不是密钥必须与被加密的消息一样长,而是输出密文必须比原始明文短。因为只有当输出密文比原始明文短时,密钥的随机位才能从明文经过加密产生的密文(临时密文)里消失,表示原始明文的字符个数才能减少,这样密钥或者明文信息就不在传输的消息中隐藏,攻击者Eve从截获的密文中就提取不到密钥或者明文的消息,因此密钥及其长度是不可知的,密钥的随机性不是显而易见的,变换所得到的比原始明文短的输出密文总是随机的(关于这点后面会详细描述)。只有这样,密钥的长度才不会受到限制,Alice才能够安全地把随机密钥传送给Bob。
要实现输出密文比原始明文短,就必须减少临时密文的字符位或字符个数,而现代密码体制加密产生的密文的字符位或字符个数不能减少,无论是对称密码体制还是公钥密码体制,情况都是这样。因为1)如果一个密文的字符改变了,相应明文的一个字符或多个字符也将会改变;2)密文的一个字符位被略去或者被中止,解密时并没有一个线索表明对被略去或者被中止的位如何处理。所以,在现有技术条件下,密文的字符位或字符个数不能减少,更不用说将密文变换成比明文短的消息。这也是现代密码学利用各种各样的数学方法来加密数据,并不能保证信息达到无条件安全的最主要原因。
本发明利用一个或少数几个字符替代多个字符的独特功能,对明文加密处理后的消息通过运用这种替代变换起到隐形的技巧和手段突破传统替代密码体制极限超水平地进行字符位或字符个数的减少,从而使得输出密文的长度比原始明文的长度短。
本发明采用的替代密码算法与传统的替代密码算法不同,最大的区别在于:不是用一个字符替代另一个字符,而是用一个或少数几个字符替代多个字符。这种替代变换的优点是:减少了临时密文的字符位或字符个数,同时发挥了隐形传递信息的功能,达到了安全传送随机密钥的效果。
设有m位原始明文,n位临时密文,m′位输出密文(m′<m<n),如果将临时密文变换成比原始明文短的消息,那么临时密文的n-m′个字符位被略去或者被中止。这就是说临时密文中有n-m′个字符被减少。也就是说,临时密文中的n个字符被输出密文的m′个字符替代。当Alice在传输消息时,这些被替代的字符已经从临时密文编码里消失了,而后在Bob解密时显现出来。因为由输出密文恢复到临时密文是反替代过程,这就起到了隐形传递信息的作用。隐形传递信息的最大特点就是,隐形信息不由公开信息作掩护,不在传输的消息中隐藏,第三方感觉不到隐形信息的存在。因此要得到一个唯一的解密需要比整个输出密文更多的字符,这样会有几个不同的密钥都能把不同的临时密文替换成同样的输出密文,或者说加密替换不同的临时密文分组会得到相同的输出密文分组。这里还是以DES中的8个S盒为基本变换模式,举一个例子来描述。
假设临时密文为1011001011010001101110011100,划分临时密文分组的密钥为8,10,10则临时密文分组序列为10110010、1101000110、1110011100对各组进行加密变换会得到比临时密文分组比特位数少的输出密文。第一分组的前6位对于S1,行号是10,列号是0110,交叉点的数字为2,输出是0010,把0010与后两位连接起来作为下一次变换的输入,比如对于S8,行号是00,列号是0101,因此第一分组的输出是1111。第二分组的前6位对于S2,行号是10,列号是1010,输出是1100,把1100与第二分组的第7位和第8位连接起来,作为下一次变换的输入,比如对于S1,行号是11,列号是1000,输出是0101,然后再把0101与第二分组最后两位连接起来作为下一次变换的输入,比如对于S5,行号是00,列号是1011,因此第二分组的输出是1111.从上可以看到,第一分组和第二分组加密变换后,会得到与例1和例2相同的输出。如果第三个分组的前8个比特的输出与后面两个比特放在一起作为下一次的输入,也会得到与第一、第二两个分组同样的输出。现在可以描述第三分组发生了什么,假设第三分组前8位的输出是1001,将1001和后面两位连在一起得到100100,此6位对于S6得到输出为1111。
当然并不是每次对每一个临时密文分组执行加密变换都能得到同样一个密文,也就是说这并不意味着每一个相同的输出密文分组序列一定会发生,但只要输出密文比原始明文短,在选择矩阵相同的情况下,加密替换不同的明文得到相同密文的可能性都是相等的。比如本例中的三个临时密文分组替换后得到的输出密文可以是0~15这个16个数字中的任何一个。另外,由于每个密文分组是独立的,在选择矩阵不相同的情况下,加密各个临时密文分组所得到的输出密文分组的长度是不相等的,即每个输出密文分组中的字符个数是不固定的。因为选择矩阵的行列数不同,S盒的输入与输出位数也就不同,将所有的输出密文分组组合在一起,Eve在没有特征或者标记的情况下,无法区别密文分组链和字符链。例如:假设输出密文是0010,那么各输出密文分组可以是0-01-0或者是00-10或者是001-0,还可以是0-0-1-0…也就是说,输出密文中的字符有各种不同的概率分布,同时由于不被输出的信息没有隐藏在传输的消息中,Eve寻遍整个密文空间也不能得到临时密文。因此每个输出密文分组的长度不能确定,每个临时密文分组的字符位数和每一位中的字符无法预测,临时密文分组每个字符位中的字符都有相等的发生概率,只要输出密文比原始明文短,每一个不同长度的临时密文发生的可能性都是相等的。所以给定输出密文时隐形信息的不确定性比该密文本身的不确定性要大。也就是说,随着截获密文的增多,能够得到隐形信息的不确定性越来越大。这说明每一个输出密文与任何一个临时密文都有可能对应,或者说所有的明文与任何一个密文都可能对应。也就是说,每个输出密文以等可能概率出现。输入位中某些位的变化在输出位中不是显而易见的,这种特性使得“一次一密”密钥传送起来变得很容易。
标识符仅表示密钥长度的初始位置,与密钥的内容无关,每次通信时Alice可以不受其他方的限制,临时选用不同的标识符并可基于公开的信道传送给Bob,真正做到“一次一密”。
传送一个标识符就等于传送了一个密钥,传送不同的标识符就等于传送了不同长度的密钥。本发明具备隐形传递信息的功能,原始明文、输出密文的长度各不相同,它们的空间大小是不同的,原始明文、临时密文其位序列是不可见的。因此,隐形信息的概率不受输出密文的影响,K值的改变在输出密文中并非显而易见。输出密文中出现的相同的数值不是相同的临时密文同相同的K加密的结果,密文是不确定的,Eve观察到的总是随机的密文。由于密钥信息没有隐藏在该密文中,密钥是否完全随机对Eve来说都一样起作用。因此标识符ID可以事先确定而不必传送,因为没有人能够在未获知临时密文的情况下同时预测到密钥长度的初始位置和其邻近的数据。这样使得不必太频繁的更换主密钥,一个主密钥能反复使用乃至数年不变。若要做到一次会话使用一个密钥,只要改变密钥长度的初始位置即可。也可以更新共享密钥。有了更新后的共享密钥,密钥长度的初始位置虽未变,但密钥的长度和内容已全部改变。在此情况下,标识符同样可以事先确定而不必传送。这样一来,传送标识符和不传送标识符Alice都能安全地把“一次一密”密钥传送给Bob。
由于输出密文的长度比原始明文的长度短,那么在信息传输过程中所传递的符号比原始明文实际所需要的符号少,这就节省了网络传输的时间和存储空间。正因为输出密文的长度比原始明文的长度短,所以传输的消息比原始明文的冗余更少,明文空间的熵与密文空间的熵存在负的不确定性。因此Eve无法由生成的输出密文得到隐形信息,输出密文与原始明文、临时密文、密钥不存在任何形式的统计关系,无论Eve截获多少密文、花费多少时间,都不能解密密文。这样Alice和Bob对其传输或存储的信息取得了无条件安全性。由于采用一个或少数几个字符替代多个字符的密码算法,当密钥与被加密的消息一样长时,减少密文的字符位或字符个数,Alice能够安全地把随机密钥传送给Bob,这样就解决了现代密码体制不能达到无条件安全的问题,同时也解决了“一次一密”方案不实用的难题。
当构造一个无条件安全密码系统时,除了需要考虑算法的安全性之外,还需要同时考虑工程方面的问题。因为如果传输秘密信息所花费的代价超过了保密内容的价值,那么该系统也变得不实用。比如使用传统意义上的一次一密,它需要交换和明文一样长的密钥,而这个密钥只能用一次。这种方法要求Alice和Bob见面或者在他们之间首先建立一个安全通道,这是非常昂贵的。本发明中的加密密钥不须参与传递、输出密文在现代计算机网络和通信网络上就可以传输,不必考虑传输距离和成本因素。
Claims (1)
1.一种通过缩短密文长度来实现现代密码体制无条件安全的方法,其特征在于,包括如下步骤:
步骤1:将原始明文利用现代密码技术加密处理后的消息分组,每个分组含有多个字符,所述原始明文利用现代密码技术加密处理后的消息为临时密文,分组有以下两种方式:
a)将临时密文在密钥控制下分成长度不等的若干个分组;
b)将临时密文分成大小相等的两个分组;
步骤2:采用替代密码算法,将每一个分组中的多个字符分别用一个或少数几个字符替代,对被替代的字符隐形传递;
步骤3:将经替代变换后的各个输出密文分组连接起来形成比原始明文长度短,与原始明文、密钥、临时密文不存在任何统计关系的随机输出;
替代密码算法为:首先选取一个S盒,然后把消息的前几位二进制数输入该S盒,然后再把该S盒的输出与消息中另外的比特连接起来作为下一次变换的输入,如此继续下去,得到跟最后一次变换使用的那一个S盒输出位数相同的输出,即输出密文分组,所述消息为临时密文分组,所述S盒在比特密钥控制下选取;
加密密钥的生成和分配方法为:由Alice以其随机选择的并发送给Bob的标识符ID或双方事先确定的ID作为索引,从共享的密钥KAB中查找到,所述加密密钥不参与传递,所述ID为密钥长度的初始位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510414053.2A CN106341230B (zh) | 2015-07-08 | 2015-07-08 | 通过缩短密文长度来实现现代密码体制无条件安全的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510414053.2A CN106341230B (zh) | 2015-07-08 | 2015-07-08 | 通过缩短密文长度来实现现代密码体制无条件安全的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106341230A CN106341230A (zh) | 2017-01-18 |
CN106341230B true CN106341230B (zh) | 2020-08-21 |
Family
ID=57827241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510414053.2A Active CN106341230B (zh) | 2015-07-08 | 2015-07-08 | 通过缩短密文长度来实现现代密码体制无条件安全的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106341230B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855436A (zh) * | 2019-11-15 | 2020-02-28 | 安徽理工大学 | 一种基于二次剩余的密钥体制的构造 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1133297C (zh) * | 1995-09-26 | 2003-12-31 | 林仙坎 | 一种文件加密处理方法 |
CN101197660A (zh) * | 2006-12-07 | 2008-06-11 | 上海安创信息科技有限公司 | 防攻击标准加密标准的加密方法及其加密芯片 |
CN101764686A (zh) * | 2010-01-11 | 2010-06-30 | 石家庄开发区冀科双实科技有限公司 | 一种用于网络与信息安全的加密方法 |
CN102170350A (zh) * | 2011-04-11 | 2011-08-31 | 桂林电子科技大学 | 具有误导功能的多重不确定加密系统 |
CN101431405B (zh) * | 2008-11-17 | 2011-09-14 | 暨南大学 | Des加密方法及其硬件电路实现方法 |
CN102196425A (zh) * | 2011-07-01 | 2011-09-21 | 安徽量子通信技术有限公司 | 基于量子密钥分配网络的移动加密系统及其通信方法 |
CN103313244A (zh) * | 2012-03-14 | 2013-09-18 | 中国移动通信集团公司 | 一种基于gba的认证方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1516388A (zh) * | 2003-08-26 | 2004-07-28 | 胡祥义 | 基于对称密码体制的网络身份认证方法 |
US10102390B2 (en) * | 2012-06-28 | 2018-10-16 | Honeywell International Inc. | Memory authentication with redundant encryption |
US20140270165A1 (en) * | 2013-03-15 | 2014-09-18 | Alexandre Andre DURAND | Cryptographic system based on reproducible random sequences |
CN103634101A (zh) * | 2013-12-03 | 2014-03-12 | 中国电子器材总公司 | 加密处理方法及设备 |
-
2015
- 2015-07-08 CN CN201510414053.2A patent/CN106341230B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1133297C (zh) * | 1995-09-26 | 2003-12-31 | 林仙坎 | 一种文件加密处理方法 |
CN101197660A (zh) * | 2006-12-07 | 2008-06-11 | 上海安创信息科技有限公司 | 防攻击标准加密标准的加密方法及其加密芯片 |
CN101431405B (zh) * | 2008-11-17 | 2011-09-14 | 暨南大学 | Des加密方法及其硬件电路实现方法 |
CN101764686A (zh) * | 2010-01-11 | 2010-06-30 | 石家庄开发区冀科双实科技有限公司 | 一种用于网络与信息安全的加密方法 |
CN102170350A (zh) * | 2011-04-11 | 2011-08-31 | 桂林电子科技大学 | 具有误导功能的多重不确定加密系统 |
CN102196425A (zh) * | 2011-07-01 | 2011-09-21 | 安徽量子通信技术有限公司 | 基于量子密钥分配网络的移动加密系统及其通信方法 |
CN103313244A (zh) * | 2012-03-14 | 2013-09-18 | 中国移动通信集团公司 | 一种基于gba的认证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106341230A (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3782351B2 (ja) | 可変長鍵暗号システム | |
JP7353375B2 (ja) | エポック鍵交換を用いたエンドツーエンドの二重ラチェット暗号化 | |
CN109861809B (zh) | 一种实用化的分组随机加解密方法 | |
Gautam et al. | An enhanced Cipher technique using Vigenere and modified Caesar cipher | |
Omolara et al. | An enhanced practical difficulty of one-time pad algorithm resolving the key management and distribution problem | |
Chakrabarti et al. | A novel approach towards realizing optimum data transfer and Automatic Variable Key (AVK) in cryptography | |
CN114362928B (zh) | 一种用于多节点间加密的量子密钥分发与重构方法 | |
Najm et al. | A proposed hybrid cryptography algorithm based on GOST and salsa (20) | |
Joshy et al. | Text to image encryption technique using RGB substitution and AES | |
Oleiwi et al. | Overview and Performance Analysis of Encryption Algorithms | |
Kaushal | Cryptography: A brief review | |
CN109344627B (zh) | 一种新型香农完美保密方法 | |
CN113746622A (zh) | 一种基于双二维混沌系统的轻量级分组文本加密方法 | |
CN106341230B (zh) | 通过缩短密文长度来实现现代密码体制无条件安全的方法 | |
Nalwaya et al. | A cryptographic approach based on integrating running key in feedback mode of elgamal system | |
CN109409106B (zh) | 一种新型无穷字母表的香农完美保密方法 | |
Kadry et al. | An improvement of RC4 cipher using vigenère cipher | |
Bhat et al. | Information Security using Adaptive Multidimensional Playfair Cipher. | |
Djordjevic et al. | Conventional Cryptography Fundamentals | |
Souror et al. | SCKHA: a new stream cipher algorithm based on key hashing and Splitting technique | |
WO2003049363A1 (en) | System and method for symmetrical cryptography | |
Kumari et al. | Encryption based on Conference Matrix | |
US11502818B2 (en) | System to secure encoding and mapping on elliptic curve cryptography (ECC) | |
Kevadia et al. | A literature survey on image encryption | |
Yin et al. | A symmetric key exchange protocol bsaed on virtual S-box |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
DD01 | Delivery of document by public notice | ||
DD01 | Delivery of document by public notice |
Addressee: Wu Chao Document name: Notification of an Office Action |
|
GR01 | Patent grant | ||
GR01 | Patent grant |