专利转让平台_买专利_卖专利_中国高校专利技术交易-买卖发明专利上知查网

全部分类
全部分类
一种采用不确定加密算法的分段加密方法

一种采用不确定加密算法的分段加密方法

IPC分类号 : H04L9/14

申请号
CN201110446034.X
可选规格
  • 专利类型: 发明专利
  • 法律状态: 有权
  • 申请日: 2011-12-28
  • 公开号: CN102404111A
  • 公开日: 2012-04-04
  • 主分类号: H04L9/14
  • 专利权人: 王勇

专利摘要

本发明属于一种新型的加密方法,涉及一种采用不确定加密算法的分段加密方法,它对明文进行分段加密,并且各段加密采用的算法是不确定、保密的,由广义密钥来确定。它通过广义密钥确定每一个分段的长度、分段的加密算法以及各种密钥和参数,由于算法不确定,使得密码分析者无从着手破译,即使获得一些信息,对于破解其他的分段也没有意义。

说明书

技术领域

本发明属于密码学领域,涉及一种新型的加密方法,特别是一种分段变换算法的加密方法。

背景技术

1949年C.E.Shannon 发表文章“Communication Theory of Secrecy Systems”,使得密码学成为一门科学。该文把信息论引入密码学,用统计的观点对信源、密码源、接受密文进行数学描述和定量分析,同时他也提出设计密码的基本观点。关于伪密钥的问题,Shannon有非常精辟的分析和研究,Shannon根据信息论和冗余相关理论,定义了伪密钥、唯一解距离、理想保密,而一般现实的密码体制是不能达到理想保密的,即随着密文的长度增加,伪密钥会减少到最后只剩下唯一一个正确的密钥,这会威胁密码体制的安全。他对唯密文攻击的情况下的密码分析进行了研究,指出随着密文长度的增加,伪密钥的数量会逐步减少。现有的加密方法符合以上的分析,现有的加密方法一般采用一种确定的算法来加密,通过一种确定的算法加密,在已知密文的情况下,由于算法确定,从理论上说可以将密钥空间中所有的密钥逐一拿来尝试解密密文,如果解密得到得到无意义的密文即可认定密钥错误;解密得到有意义的明文则对应密钥可能是正确的密钥或者伪密钥。可以根据信息论和概率论来初步估算伪密钥的数量,对于小于唯一解距离的密文,一些文献根据语言相应的冗余计算出可能的伪密钥数目,大约为

N=2H(k)-nD-1

其中D为语言的冗余度,H(k)为密码系统的熵,一般情况下等于密钥长度,n为明文长度。根据一些数据,甚至可以得出对于有56bit的密钥和用ASCII字符表示的英文消息而言,DES的唯一解距离大约是8.2个ASCII字符,大约66bit,针对现代的较长的256bit长密钥的分组密码算法,ASCII文本加密算法的唯一解距离才是37.6个字符,显然获得大大超过37.6个字符的密文的条件是很容易达到的。这对密码分析是有利的,包括各种惟密文分析还有软磨硬泡攻击。另外一面,这影响到算法的安全性。假如将明文分为小于惟一解距离的小段进行加密,并且算法是保密的,则密码分析者将无从利用以上的缺陷。

发明内容

从信息论的角度,密码系统能够给监听者的不确定性越大,破译的难度就越大,泄露的信息量就越小,密码系统就越安全。在密码编码和分析中,一般考虑算法是公开的,一些现实的民用密码,一般也公开算法。注意到,算法之所以公开的理由主要有以下几点:1)算法的标准化和广泛使用使得算法需要公开;2)便于算法的公开安全评测和改进;3)加密依赖的软件硬件实现原则上说是可以被采用逆向工程破译的,一旦采用诸如反汇编之类的方法,密码算法必然暴露。4)算法是一个大头,需要大量数据描述或实现,不像密钥只要少量数据,很难保密,不能指望它是保密的,想要保密它也困难;5)算法由于是多用户使用,泄密的可能性较大。

对于算法是否需要保密,一直也存在争议,实际非常重要的应用中,比如军事中,算法往往是保密的。但是在一般应用中很难让算法保密。

密码算法的目的是要尽量给对方提供少的信息,而香农用不确定性来度量信息,假如能够给对方最大的不确定性,则信息量最小。密码体制如果能够给密码分析者越大的不确定性,则就越安全。密码算法作为一个五元组:{明文空间P,密钥空间K,密文空间C,加密算法E,解密算法D}。这其中明文由密文C、密钥K和解密算法D所确定

P=DK(C)

而密码分析者已知的最基本的条件是密文C,要给予对手较大的不确定性,要么是密钥K不确定,要么是算法D不确定。我们现代密码学都依赖密钥K的不确定性来保障安全性,但是密钥空间总是有限的。由于明文的高度冗余,可能密码体制的明文空间中的许多明文是无意义的,即现实可能的明文空间P’和密码体制的明文空间P是有很大的差异的,前者只是后者的一小部分。这大大消除了明文的不确定性,因为大量无意义的明文可以被排除,假如剩下的有意义的明文越少,就会越来越不安全。可见由于冗余,密钥的不确定性可以被逐步减少,最终可能只剩下一个或者几个有意义的明文,这是香农唯一解距离的由来。为了增加明文的不确定性,我们可以从另外一个角度着手,用算法的不确定性来给密码分析设置障碍,实际上,算法可能是无穷无尽的,且可能是多重或者组合的加密,而且明文和密文的长度也可能不一致,这给密码分析者带来了巨大的不确定性,如果不能通过一些信息对算法做出一些确定,密码分析者根本无法着手。实际上,现在军事上使用的密码大多数都是依靠内部专家设计和评估,对算法进行保密的。

本发明一改过去加密采用单一算法,而且算法公开的弊端,采用不确定算法分段进行加密,分段的长度小于惟一解距离,以避免那种惟密文分析。考虑以上公开算法的因素,本发明中可以采用得到公开测评的安全算法,也可以采用保密的加密算法;本发明中这个密码系统实现可以是公开的,由于它包含了多种加密算法(密码算法),所以系统的公开并不能够让密码分析者确定是采用何种算法加密;本发明中采用压缩的编号来代表算法,这样无需大量的数据。

本发明采用申请人提出的广义密钥的概念,将密码算法的信息也融入密钥中,即广义密钥包含了所采用的密码算法信息和每一个算法或者每一分段所采用密钥的信息。

本发明的加密方法如下,首先是密码系统的建立:

建立一个密码算法库,可以收纳各种各样的安全的密码算法,算法库中有标准化的、常用的密码算法,也有未公开的、保密的算法,只是和特定的接受方通信用的未知、且精心设计的安全密码算法、自己设计的算法,对所有算法进行编码。

算法的编码:公开的算法采用公开统一的编码,分组长度不同的同一算法视为不同的算法而采用不同的编码,同一算法的不同的加密模式的运用也采用不同的编码,如ecb、cbc等;未公开的算法采用双方约定的编码,这些编码是预留的。算法数量为N,则算法编码长度取值为:当log2N为整数,取log2N;log2N非整数,取log2N的整数部分+1。不妨假设算法编码为A。加密对于不同的分段采用不同的算法,需要不同位置算法的编码序列,选择一个密钥AK产生一个安全的序列将产生不同位置分段的密码算法这一部分编码A作为密钥的一部分,与传统意义上的加密用的密钥K结合起来,作为一种广义密钥GK,

GK=AK║NK

其中║表示合并,NK代表狭义的传统的密钥以及一些需要的参数,比如初始向量IV,由于各个算法的密钥长度不一,NK的长度应该不低于算法库中密钥库的算法中密钥以及所需 其他参数长度累加的最长的长度。AK的长度是确定的。NK中参数的取用是根据算法编码来确定的,比如,有些模式下有初始向量,应该规定哪些位置的数据是密钥,哪些是初始向量;再比如三重DES,应该规定各重的密钥和其他参数的在NK中位置。

加密算法和密钥的确定:在加密时,根据AK生成一个安全的密钥流确定各个相应分段的采用算法库中的算法代号,根据NK截取对应算法所需要的密钥长度的数据作为密钥,如果还有其他的参数,可以约定按照一定的位置截取,比如最前面是密钥,紧接着是初始向量。

 算法的加密长度确定:每一个算法都应该有确定的加密范围。算法的加密长度(即分段的长度)根据算法的类型和约定来处理:分组密码以及类似的算法采用对应分组长度的倍数,比如一个分组的长度,流密码和一次一密采用一个固定长度,在加密到最后一个分段的时候,一般不一定刚好达到设定的分段长度,需要进行填充处理,并且添加关于填充长度的信息。

以上确定了加密的各种参数,包括算法、密钥等参数、明文及其分段,即可根据分段进行对应的加密得到密文。

解密是一个相反的过程,由于解密者也有广义密钥,所以解密的一些参数的确定和加密是相似的。

通过这种方法设计使得密码系统具有很好的安全性和优势:1)由于算法是未知的,密码分析将会无从着手。2)分段加密采用同一算法的密文很短,达不到惟一解距离,增强了安全性。3)在军事背景中可以将一些公开的和不公开的加密算法同时使用。可以满足算法保密性(可以比较安全,当然未经公众评价的算法能否真正安全有争议)和算法标准化(此时算法需要公开)等互相矛盾的需求。4)通过对算法的融合,在某些方面会体现出综合性能的优化。5)算法的广义密钥空间大大增加,密码系统的不确定性更大。

算法也会增加密码系统的复杂性,运算的时间空间复杂度,但是,运算量增加并不是很大,甚至于有点接近于采用单一算法的平均运算量。

附图说明

图1是本发明的加密流程图。

具体实施方式

以下是本发明的实施例,为了方便,举例相对简单。

首先加密系统的设计方面,采用256bit的流密码来生成算法编码的序列,采用流密码是为了保证安全性,即使前面一些段采用的算法被获知,也无从利用它获得其他分段的加密算法。广义密钥的结构为前256bit为AK,后面512bit为NK。约定每一个算法的加密的明文长度为:分组密码算法等分组性的算法是单个分组长度,流密码和一次一密等算法为128bit,这样选取的目的是为了让算法变换更加频繁,而且同一算法的加密长度尽量小,而尽量不要超过惟一解距离。

算法库的确定及编码:将一些公开的算法进行一定遴选后,选择所有可用的加密模式,逐一进行编码,只要算法名称、加密模式和分组长度有不同的,均需要采用不同编码,对每一个编码的算法,均规定NK部分的数据是如何分配的,比如前1-128bit为密钥,129-256bit为初始向量等。假设算法编码为0至55,同时保留一些预留的编码,假如有些保密的算法则可以采用这些预留的编码,比如56-63。但是,实际上双方约定了三种保密的算法,预留的编码只使用到编码56-58,为了方便,从AK生成的密钥流上每次截取1byte的数据(当然每一次取6bit更节省,但是不方便),转换为十进制后,取模59,得到的值作为算法的编码,根据这个编码来确定对应的分段采用的算法。

填充:假设最后一个分组只有1byte,就需要进行填充。填充根据这个算法的加密长度确定,由于计算机存储一般以byte为单位,所以,可以规定填充的方法为:如果最后剩余的分组长度达不到一个完整的加密分段长度,则需要填充到加密分段长度,比如最后一个算法为128bit的AES,需要填充15byte,则填充的byte值全部为15,即在末尾填充15个00001111。填充部分全部填充0;如果最后剩余的分组长度等于一个完整的加密分段长度,则在这一部分正常加密后,附加一个每一个bit都是1的分段,分段的长度根据AK对应位置的编码确定。解密的时候则根据这一规则来判断填充的长度,解密的最后一个分段如果是全1的二进制数据,则直接去掉最后一个分段;如果不是,则取最后一个byte的值,即可确定填充的长度,去掉对应的byte数,即可去掉填充。

根据以上确定的信息,即可对各个对应的分段进行加密处理。

解密是相反的过程,由于解密者也拥有GK,所以它也能够进行正确的解密。破译者由于无法获得算法和密钥相关的信息,因而无从解密,由于算法的变化远远大于狭义密钥变化造成的影响,所以在不知道以上信息的情况下破解将会非常困难,可以认为无处下手。

一种采用不确定加密算法的分段加密方法专利购买费用说明

专利买卖交易资料

Q:办理专利转让的流程及所需资料

A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。

1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。

2:按规定缴纳著录项目变更手续费。

3:同时提交相关证明文件原件。

4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。

Q:专利著录项目变更费用如何缴交

A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式

Q:专利转让变更,多久能出结果

A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。

动态评分

0.0

没有评分数据
没有评价数据
×

打开微信,点击底部的“发现”

使用“扫一扫”即可将网页分享至朋友圈

×
复制
用户中心
我的足迹
我的收藏

您的购物车还是空的,您可以

  • 微信公众号

    微信公众号
在线留言
返回顶部