CN106059749A - 一种数据处理方法以及装置 - Google Patents
一种数据处理方法以及装置 Download PDFInfo
- Publication number
- CN106059749A CN106059749A CN201610338367.3A CN201610338367A CN106059749A CN 106059749 A CN106059749 A CN 106059749A CN 201610338367 A CN201610338367 A CN 201610338367A CN 106059749 A CN106059749 A CN 106059749A
- Authority
- CN
- China
- Prior art keywords
- diffusion
- substance
- element group
- receptor
- group
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
Abstract
本发明涉及信息安全技术领域,具体而言,涉及一种数据处理方法以及装置。数据处理方法,包括:针对参与处理的一个或多个分组,建立扩散网络;其中,所述分组为预设长度的元素集合,且每个所述分组至少包含一个元素;所述扩散网络由扩散路径组成,每一条所述扩散路径均连接并指向分组中的元素和/或元素组,元素组为元素的组合;根据所述扩散路径组建扩散式;其中,扩散式由原体和受体组成,且原体包含受体;对所述扩散式进行扩散运算。该方法及装置能够实现快速完全的雪崩效应,可用于数据加密及解密、计算消息摘要、生成随机数等。本发明用以数据加密时,具有强度高、速度快、抗攻击等特点。
Description
技术领域
本发明涉及信息安全技术领域,具体而言,涉及一种数据处理方法以及装置。
背景技术
雪崩效应,是指在数据处理中,原始输入中的任意一个微小变化,都会造成输出产生巨大改变;而完全的雪崩效应,该变化都会造成输出全部产生改变。这种处理特性可有多种用途,如数据加密及解密、计算消息摘要、生成随机数等。
加密技术自古代就已开始研究,信息的保护无论是军事、政府还是商业乃至个人,都是非常重要的。一些部门及组织,对加密强度有着极高的需求。如果加密信息被破译,其后果可能是非常严重的。随着人类社会进入计算时代、商业时代,大数据加密成为一种重要需求,如数据库加密、磁盘加密、云加密等。加密速度成为实现这一需求的瓶颈。在信息安全领域,现有的无论何种加密技术,速度和强度几乎不可兼得。随着计算机的高速发展,各种密码攻击方法的出现与成熟,使得现有技术面临着严峻的挑战。
发明内容
有鉴于此,本发明旨在提供一种数据处理方法以及装置,该方法及装置能够实现快速完全的雪崩效应,可用于数据加密及解密、计算消息摘要、生成随机数等。
第一方面,本发明实施例提供了一种数据处理方法,包括:针对参与处理的一个或多个分组,建立扩散网络。其中,所述分组为预设长度的元素集合,且每个所述分组至少包含一个元素;所述扩散网络由扩散路径组成,每一条所述扩散路径均连接并指向分组中的元素和/或元素组,元素组为元素的组合;根据所述扩散路径组建扩散式。其中,扩散式由原体和受体组成,所述原体包含所述受体;对所述扩散式进行扩散运算。
第二方面,本发明实施例还提供一种数据处理装置,包括:扩散网络建立模块,用于针对参与处理的一个或多个分组,建立扩散网络。其中,所述分组为预设长度的元素集合,且每个所述分组至少包含一个元素;所述扩散网络由扩散路径组成,每一条所述扩散路径均连接并指向分组中的元素和/或元素组,元素组为元素的组合;
扩散式建立模块,用于根据所述扩散路径组建扩散式。其中,扩散式由原体和受体组成,所述原体包含所述受体;
扩散运算模块,用于对所述扩散式进行扩散运算。
本发明实施例所提供的数据处理方法以及装置,针对参与处理的一个或者多个分组,预先建立扩散网络。其中,每个分组都是预设长度的元素集合,且每个分组至少包含一个元素;扩散网络由扩散路径组成,每一条扩散路径均连接并指向分组中的元素和/或元素组;在建立扩散网络之后,根据扩散网络中的扩散路径,组建扩散式,然后对扩散式进行扩散运算。在这个过程当中,扩散网络、扩散式的建立以及扩散运算都是不确定的,用户可以根据自己的实际需要,组建自己想要的扩散网络和扩散式以及进行扩散运算。对所有扩散式进行扩散运算之后,所得到的数据即为处理之后的数据。该数据处理方法以及装置,能够实现快速完全的雪崩效应,在对数据进行处理时,具有简单、灵活、快速等特点;可用于数据加密及解密、计算消息摘要、生成随机数等。当本发明用以数据加密时,具有强度高、速度快、抗攻击等特点。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的一种数据处理方法的流程图;
图2示出了本发明实施例所提供的数据处理方法中,建立扩散网路的具体方法的流程图;
图3示出了本发明实施例所提供的数据处理方法中,对扩散式进行扩散运算的具体方法流程图;
图4示出了本发明实施例所提供的一种数据处理装置的结构示意图;
图5示出了本发明实施例所提供的数据处理装置中,扩散网络建立模块的具体结构示意图;
图6示出了本发明实施例所提供的数据处理装置中,扩散式建立模块的具体结构示意图;
图7示出了本发明实施例所提供的数据处理装置中,扩散运算模块的具体结构示意图;
图8示出了本发明实施例所提供的数据处理方法及装置中,建立有序扩散网络的详细规则;
图9-1和图9-2示出了本发明实施例所提供的数据处理方法及装置中,建立无序扩散网络的详细规则,图9-1和图9-2是相同规则的不同表现形式;
图10示出了本发明实施例所提供的数据处理方法及装置中,以元素组为单位建立扩散网络的详细规则;
图11-1、图11-2示出了扩散路径的部分连接方式;
图12示出了本发明实施例所提供的数据处理方法及装置中扩散网络建立规则的原理图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以用各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本实施例进行理解,将对本发明实施例所公开的一种数据处理方法及装置进行详细介绍,本发明实施例所提供的数据处理方法及装置,一般能够用于多种领域,例如数据加密及解密、计算消息摘要、生成随机数等。
参见图1所示,本发明实施例所提供的数据处理方法包括:
S101:针对参与处理的一个或多个分组,建立扩散网络。其中,所述分组为预设长度的元素集合,且每个所述分组至少包含一个元素。所述扩散网络由扩散路径组成,每一条所述扩散路径均连接并指向分组中的元素和/或元素组,元素组为元素的组合。
在具体实现的时候,各分组的长度可以相等,也可以不相等。扩散网络是指在所有分组中所建立的扩散路径的集合。当分组中的某一个或者多个元素和/或元素组发生改变的时候,这个改变会沿着扩散路径扩散,进而影响其他元素和/或元素组的改变。
扩散网络可建立为有序的(如图8),也可以建立为无序的(如图9-1)。图8为图12的转换图,图12为图8的原理图。图12中,图号1表示扩散方向。在建立扩散网络的时候,可以实现不完全的扩散,即任何一个输入元素的改变仅仅会影响部分输出元素的改变;也可以是完全扩散,即任何输入一个元素的改变,都会影响其所有输出元素的改变。
参见图2所示,本发明实施例还提供一种建立扩散网路的具体方法,具体包括:
S201:为每个所述分组中的每一个元素和/或元素组分配一个唯一索引号;
在具体建立扩散路径的时候,需要为每一个元素和/或元素组分配一个索引号,元素或元素组的索引号在同一分组中是唯一的。如果以元素为单位进行扩散,则索引号被分配到元素上;如果以元素组为单位进行扩散,则索引号被分配到元素组上。
S202:获取参与处理的分组中的元素和/或元素组数量,并根据所获取的元素和/或元素组的数量计算扩散阶段的数量;
在具体实现的时候,以不同的单位进行处理时所获取的数量是不同的。当以元素为单位进行处理时,应获取元素的数量;当以元素组为单位进行处理时,应获取元素组的数量。而扩散阶段的数量的确定,可以根据实际的需要进行具体的设定,例如,如果不需要实现完全的雪崩效应,可以将扩散的阶段设置的较少一些。如果需要实现完全的雪崩效应,则可以将扩散阶段设置的较多一些。另外,为了加深元素的扩散,还可以在实现完全的雪崩效应的基础上,再进一步的增加扩散阶段的数量。
S203:在每个所述扩散阶段,根据所述索引号在各分组中的元素和/或元素组之间建立扩散路径;
扩散路径连接并指向分组中的元素和/或元素组,目的在于确定元素和/或元素组的扩散过程。在同一条扩散路径中,元素和/或元素组之间的连接关系不因其位置的改变而改变。扩散路径的连接方式是多样的,如图11-1和图11-2。其中,图11-1中,图号1、2表示此处是相连的,并未断开;
扩散路径为虚拟路径,扩散路径对于元素和/或元素组之间的连接也是虚拟连接。
扩散路径是具有方向的,元素和/或元素组始终沿着该路径扩散到被指向的元素和/或元素组中。
S204:将所有扩散阶段中所建立的所有扩散路径作为扩散网络。
当每一个扩散阶段中的扩散路径均建立好之后,将所有的扩散路径的集合作为最终所建立的扩散网络。
S102:根据扩散路径组建扩散式。其中,扩散式由原体和受体组成,且原体包含受体;
扩散式旨在确定待扩散的元素和/或元素组(即原体)与被扩散的元素和/或元素组(即受体)。在组建扩散式时,以扩散路径为根据,至少将扩散路径所连接的元素和/或元素组作为原体,至少将扩散路径所指向的元素和/或元素组作为受体。为防止元素丢失,原体中必须包含受体。
S103:对所述扩散式进行扩散运算;
扩散是一种影响传递,即将某一对象(A)的所受的影响传递到另一对象(B)中,当对象A发生变化时,对象B也发发生变化。扩散运算旨在将原体扩散到受体中。
具体地,参见图3所示,本发明实施例还提供一种对扩散式进行扩散运算的具体方法,包括:
S301:以预设的方法对所述原体进行处理;
预设的方法可以根据实际的需要进行具体的设定,可以是一个函数,也可以是一个计算式或者其他的方法。无论是函数、计算式或者其他方法,都必须对原体中包含的所有元素和/或元素组进行处理,且对于原体中任意一个元素和/或元素组的变化都将引起处理结果的变化。当处理的输出包含多个元素时,对于原体中元素的变化,处理方法应当满足所输出的每一个元素都发生变化。所诉变化主要包括元素和/或元素组本身的变化。
对所述原体进行处理时还可以使用其他参数,该参数可以是任何参数,可以来自任何地方,如分组中的元素和/或元素组、扩散阶段索引号、随机数等。
S302:使用处理的结果更新受体;
使用原体的处理结果更新受体。当受体中包含多个元素和/或元素组时,宜使用多个方法对原体进行处理,并分别更新相应的元素或元素组,不宜使用同一个方法处理的结果更新受体中的多个元素和/或元素组。
本发明实施例所提供的数据处理方法以及装置,针对参与处理的一个或者多个分组,预先建立扩散网络。其中,每个分组都是预设长度的元素集合,且每个分组至少包含一个元素;扩散网络由扩散路径组成,每一条扩散路径均连接并指向分组中的元素和/或元素组;在建立扩散网络之后,根据扩散网络中的扩散路径,组建扩散式,然后对扩散式进行扩散运算。在这个过程当中,扩散网络、扩散式的建立以及扩散运算都是不确定的,用户可以根据自己的实际需要,组建自己想要的扩散网络和扩散式以及进行扩散运算。对所有扩散式进行扩散运算之后,所得到的数据即为处理之后的数据。该数据处理方法以及装置,能够实现快速完全的雪崩效应,在对数据进行处理时,具有简单、灵活、快速等特点;可用于数据加密及解密、计算消息摘要、生成随机数。当本发明用以数据加密时,具有强度高、速度快、抗攻击等特点。
本发明的实施例还提供一种数据处理装置,参见图4所示,本发明实施例所提供的数据处理装置包括:
扩散网络建立模块100,用于针对参与处理的一个或多个分组,建立扩散网络。其中,所述分组为预设长度的元素集合,且每个所述分组至少包含一个元素。所述扩散网络由扩散路径组成,每一条所述扩散路径均连接并指向分组中的元素和/或元素组,元素组为元素的组合;
扩散式建立模块200,用于根据所述扩散路径组建扩散式。其中,扩散式由原体和受体组成,且原体包含受体;
扩散运算模块300,用于对所述扩散式进行扩散运算。
本实施例中,扩散网络建立模块100、扩散式建立模块200、扩散运算模块300的具体功能和交互方式,可参见图1对应的实施例的记载,在此不再赘述。
参见图5所示,本发明实施例所提供的数据处理装置中,扩散网络建立模块100具体包括:
索引号分配子模块1001,用于为每一个元素和/或元素组分配一个索引号,元素或元素组的索引号在同一分组中是唯一的;
扩散阶段数量计算子模块1002,用于获取参与处理的分组中的元素和/或元素组数量,并根据所获取的数量计算扩散阶段的数量;
扩散路径建立子模块1003,用于在每个所述扩散阶段,根据所述索引号在各分组中的元素和/或元素组之间建立扩散路径。在同一条扩散路径中,元素和/或元素组之间的连接关系不因其位置的改变而改变;
扩散网络建立子模块1004,用于将所有扩散阶段中所建立的所有扩散路径作为扩散网络。
本实施例中,索引号分配子模块1001、扩散阶段数量计算子模块1002、扩散路径建立子模块1003和扩散网络建立子模块1004的具体功能和交互方式,可参见图2对应的实施例的记载,在此不再赘述。
参见图6所示,本发明实施例所提供的数据处理装置中,扩散式建立模块200具体包括:
受体构建子模块2001,用于根据所述扩散路径构建受体。其中,所述受体至少包含扩散路径所指向的元素和/或元素组;
原体构建子模块2002,用于根据所述扩散路径构建原体。其中,所述原体至少包含所述扩散路径所连接的元素和/或元素组,且包含受体中的元素和/或元素组。
本实施例中,受体构建子模块2001、原体构建子模块2002的具体功能和交互方式,可参见图1中S102对应的实施例的记载,在此不再赘述。
参见图7所示,本发明实施例所提供的数据处理装置中,所述扩散运算模块300具体包括:
原体处理子模块3001,用于以预设的方法对所述原体进行处理;
受体处理子模块3002,用于使用上诉处理的结果更新所述受体。
所述预设的方法满足对于其处理的原体中任意元素和/或元素组的变化都将引起处理结果的变化。当处理的输出包含多个元素时,对于原体中元素的变化,处理方法应当满足所输出的每一个元素都发生变化。所诉变化主要包括元素和/或元素组本身的变化。
对所述原体进行处理时还可以使用其他参数,该参数可以是任何参数,可以来自任何地方,如分组中的元素和/或元素组、扩散阶段索引号、随机数等。
本实施例中,原体处理子模块3001、受体处理子模块3002的具体功能和交互方式,可参见图3对应的实施例的记载,在此不再赘述。
另外,本发明实施例还提供一些将本发明所提供的数据处理方法进行具体应用的实施例,在这些实施例中,仅选取了具有代表性的几个实施案例进行说明。本发明的方案应用较灵活,所提供的这些实施例并不应当成为对本发明具体应用的限制。
如未特殊说明,在下述所有的计算式中:“%”表示取余运算、“*”表示乘法运算、“/”表示除法运算、“⊕”表示异或位运算;设处理所需的扩散阶段数量为round,整数r为扩散阶段索引号,每一阶r自增1,r的值域为[0,round);设X是分组名称,整数i是分组的元素索引,则分组中的元素表示为X[i]。设分组长度为N,则元素索引i的值域为[S,S+N)。设E为计算分组中元素索引的算术表达式,则计算元素索引时需对E进行取余运算,即索引i=(E%N)+S。上述S为当前分组的起始元素索引号,如未特殊说明,S均为0。
完美长度:设分组的长度为N,则该分组的完美长度P=2G,G=Log2N,需对G进行向上取整。
注:对于扩散式的记法和描述,记法:原体→受体,描述为由原体向受体扩散。因为原体中包含了受体,所以在描述时在原体中可省略受体。如扩散式A+B+C→C可描述为A和B向C扩散。
示例1:数据加密
本实施例实现对称分组加密,扩散网络建立规则请参见图8所示,为进一步强化加密质量,特额外增加一阶扩散阶段,路径连接同图8中的第一阶。路径连接方式请参见图11-1、图11-2,两种连接方式意义相同。此例只指针对一组明文进行加密。
处理步骤:
S1.设N(n)为分组长度。计算对数G=Log2N,并对G进行向上取整,计算完美长度P=2G,计算处理所需扩散阶段的数量round=G+E,E>=1,本例E取2;
S2.取2组长度为n的明文X和Y,i、j分别是X、Y的元素索引;
S3.取2组长度为n的密匙A和B,要求A和B中的元素分别不全部相等,a、b分别是A、B的元素索引;
S4.设整数r是扩散阶段索引号。第一阶r=0。由X、B向Y的扩散命名为EY,记作EY=X[i]+B[b]+Y[j]→Y[j];由Y、A向X的扩散命名为EX,记作EX=Y[j]+A[a]+X[i]→X[i]。组建扩散式分别为:
X[0]+B[0]+Y[0]→Y[0],Y[0]+A[0]+X[0]→X[0];
X[1]+B[1]+Y[1]→Y[1],Y[1]+A[1]+X[1]→X[1];
X[2]+B[2]+Y[2]→Y[2],Y[2]+A[2]+X[2]→X[2];
…
X[n-1]+B[n-1]+Y[n-1]→Y[n-1],Y[n-1]+A[n-1]+X[n-1]→X[n-1].
S5.分别取出EY中的原体,使用函数FY计算结果后,更新EY中的受体,即
Y[j]=FY(X[i],B[b],Y[j])。
S6.分别取出EX中的原体,使用函数FX计算结果后,更新EX中的受体,即
X[i]=FX(Y[j],A[a],X[i])。
S7.第二阶,r=1。组建扩散式分别为:
X[0]+B[0]+Y[P/2+0]→Y[P/2+0],Y[P/2+0]+A[0]+X[0]→X[0];
X[1]+B[1]+Y[P/2+1]→Y[P/2+1],Y[P/2+1]+A[1]+X[1]→X[1];
X[2]+B[2]+Y[P/2+2]→Y[P/2+2],Y[P/2+2]+A[2]+X[2]→X[2];
…
X[n-1]+B[n-1]+Y[P/2+n-1]→Y[P/2+n-1],Y[P/2+n-1]+A[n-1]+X[n-1]→X[n-1];
然后执行步骤S5、S6。
S8.第三阶,r=2。组建扩散式分别为:
X[0]+B[0]+Y[P/4+0]→Y[P/4+0],Y[P/4+0]+A[0]+X[0]→X[0];
X[1]+B[1]+Y[P/4+1]→Y[P/4+1],Y[P/4+1]+A[1]+X[1]→X[1];
X[2]+B[2]+Y[P/4+2]→Y[P/4+2],Y[P/4+2]+A[2]+X[2]→X[2];
…
X[n-1]+B[n-1]+Y[P/4+n-1]→Y[P/4+n-1],Y[P/4+n-1]+A[n-1]+X[n-1]→X[n-1];
然后执行步骤S5、S6。
S9.第r阶(仅当此示例中不是第一阶和最后一阶时)。组建扩散式分别为:
X[0]+B[0]+Y[P/2r+0]→Y[P/2r+0],Y[P/2r+0]+A[0]+X[0]→X[0];
X[1]+B[1]+Y[P/2r+1]→Y[P/2r+1],Y[P/2r+1]+A[1]+X[1]→X[1];
X[2]+B[2]+Y[P/2r+2]→Y[P/2r+2],Y[P/2r+2]+A[2]+X[2]→X[2];
…
X[n-1]+B[n-1]+Y[P/2r+n-1]→Y[P/2r+n-1],Y[P/2r+n-1]+A[n-1]+X[n-1]→X[n-1];
然后执行步骤S5、S6。
S10.最后一阶,r=round–1。本阶同S4。
经过一个周期(即对所有扩散路径完成一次扩散运算)处理后,X,Y最后的数据就是密文。要求函数FY和FX是可逆的。
以下是函数FY、FX的一种实现:
函数FY和FX均返回一个0~255之间的整数,函数参数x、a、b、y分别为X、A、B、Y中的某个元素,其值域为[0,255],K是一个由整数0~255组成的不重复随机集合。
示例2:数据解密
本实施例实现对称分组解密,网络建立规则与加密相反。此例只针对一组密文进行解密。
处理步骤:
S1.设N(n)为分组长度(N与加密的分组长度相等)。计算对数G=Log2N,并对G进行向上取整,计算完美长度P=2G,计算处理所需扩散阶段的数量round=G+E,E>=1,本例E取2。
S2.取2组长度为n的密文X和Y,对应加密的相应输出,i、j分别X、Y的元素索引。
S3.取2组长度为n的密匙A和B,对应加密所使用的密匙,a、b分别A、B的元素索引。
S4.设整数r是扩散阶段索引号,第一阶r=0。由Y、A向X的扩散命名为EX,记作EX=Y[j]+A[a]+X[i]→X[i],由X、B向Y的扩散命名为EY,记作EY=X[i]+B[b]+Y[j]→Y[j]。组建扩散式分别为:
Y[0]+A[0]+X[0]→X[0],X[0]+B[0]+Y[0]→Y[0];
Y[1]+A[1]+X[1]→X[1],X[1]+B[1]+Y[1]→Y[1];
Y[2]+A[2]+X[2]→X[2],X[2]+B[2]+Y[2]→Y[2];
…
Y[n-1]+A[n-1]+X[n-1]→X[n-1],X[n-1]+B[n-1]+Y[n-1]→Y[n-1].
S5.分别取出EX中的原体,使用函数_FX计算结果后,更新EX中的受体,即
X[i]=_FX(Y[j],A[a],X[i])。
S6.分别取出EY中的原体,使用函数_FY计算结果后,更新EY中的受体,即
Y[j]=_FY(X[i],B[b],Y[j])。
S7.第二阶,r=1。组建扩散式分别为:
Y[1+0]+A[0]+X[0]→X[0],X[0]+B[0]+Y[1+0]→Y[1+0];
Y[1+1]+A[1]+X[1]→X[1],X[1]+B[1]+Y[1+1]→Y[1+1];
Y[1+2]+A[2]+X[2]→X[2],X[2]+B[2]+Y[1+2]→Y[1+2];
…
Y[1+n-1]+A[n-1]+X[n-1]→X[n-1],X[n-1]+B[n-1]+Y[1+n-1]→Y[1+n-1];
然后执行步骤S5、S6。
S8.第三阶,r=2。组建扩散式分别为:
Y[2+0]+A[0]+X[0]→X[0],X[0]+B[0]+Y[2+0]→Y[2+0];
Y[2+1]+A[1]+X[1]→X[1],X[1]+B[1]+Y[2+1]→Y[2+1];
Y[2+2]+A[2]+X[2]→X[2],X[2]+B[2]+Y[2+2]→Y[2+2];
…
Y[2+n-1]+A[n-1]+X[n-1]→X[n-1],X[n-1]+B[n-1]+Y[2+n-1]→Y[2+n-1];
然后执行步骤S5、S6。
S9.第r阶(仅当此示例中不是第一阶和最后一阶时)。组建扩散式分别为:
Y[2r-1+0]+A[0]+X[0]→X[0],X[0]+B[0]+Y[2r-1+0]→Y[2r-1+0];
Y[2r-1+1]+A[1]+X[1]→X[1],X[1]+B[1]+Y[2r-1+1]→Y[2r-1+1];
Y[2r-1+2]+A[2]+X[2]→X[2],X[2]+B[2]+Y[2r-1+2]→Y[2r-1+2];
…
Y[2r-1+n-1]+A[n-1]+X[n-1]→X[n-1],X[n-1]+B[n-1]+Y[2r-1+n-1]→Y[2r-1+n-1];
然后执行步骤S5、S6。
S10.最后一阶,r=round–1。本阶同S4。
经过一个周期处理后,X,Y最后的数据就是明文。函数_FY和_FX分别为加密所使用的函数FY、FX的逆函数。
以下是函数_FX、_FY的一种实现:
函数_FY和_FX均返回一个0~255之间的整数,参数x、a、b、y分别为X、A、B、Y中的某个元素,其值域为[0,255]。_K是加密所用的K的逆映射,对于任意整数v(v的值域为[0,255]),_K均满足_K[K[v]]=v。
示例3:计算消息摘要
本实施例所使用的摘要长度为128位(16字节,可取任意长度),网络建立规则请参见图8,扩散式组建请参考示例1。
处理步骤:
S1.设N(n)是分组长度(本例N=8),S是用于存储消息摘要的分组(其长度为2N=16),i是S的元素索引。为描述方面,将S的前半部分命名为SQ后半部分命名SH。
S2.向S中填入元数据,每次计算消息摘要时,均向S中填入固定的元数据(即元素)。这些元数据是用于计算消息摘要的基础数据,要求该数据中的元素不全部相等。
S3.计算对数G=Log2N,并对G进行向上取整,计算完美长度P=2G,计算处理所需扩散阶段的数量round=G+E,E>=1,本例E取1。根据N=8得知,G=3,P=8,round=4。
S4.从消息源中读取N长度的数据,命名为M分组,j是M的元素索引。
S5.判断实际读取的数据长度L是否等于N。
S6.如果L<N,则计算数据填充量C=min(N,N-L),并对M进行顺序填充(1~C)。具体为从索引C开始,依次向M中填入1、2、3、...、C,函数min返回参数中的最小值。
S7.设整数r是扩散阶段索引号,第一阶r=0。由SQ、M向SH的扩散式命名为EH,记作EH=S[i]+M[j]+S[j+n]→S[j+n],由SH、M向SQ的扩散命名为EQ,记作EQ=S[j+n]+M[j]+S[i]→S[i]。组建扩散式分别为:
S[0]+M[0]+S[8]→S[8],S[8]+M[0]+S[0]→S[0];
S[1]+M[1]+S[9]→S[9],S[9]+M[1]+S[1]→S[1];
S[2]+M[2]+S[10]→S[10],S[10]+M[2]+S[2]→S[2];
…
S[7]+M[7]+S[15]→S[15],S[15]+M[7]+S[7]→S[7].
S8.分别取出EH中的原体,使用函数FH计算结果后,更新EH中的受体,即
S[j+n]=FH(S[i],M[j],S[j+n])。
S9.分别取出EQ中的原体,使用函数FQ计算结果后,更新EQ中的受体,即
S[i]=FQ(S[j+n],M[j],S[i])。
S10.第二阶,r=1。组建扩散式分别为:
S[4]+M[0]+S[8]→S[8],S[8]+M[0]+S[4]→S[4];
S[5]+M[1]+S[9]→S[9],S[9]+M[1]+S[5]→S[5];
S[6]+M[2]+S[10]→S[10],S[10]+M[2]+S[6]→S[6];
…
S[3]+M[7]+S[15]→S[15],S[15]+M[7]+S[3]→S[3];
然后执行步骤S8、S9。
S11.第三阶,r=2。组建扩散式分别为:
S[2]+M[0]+S[8]→S[8],S[8]+M[0]+S[2]→S[2];
S[3]+M[1]+S[9]→S[9],S[9]+M[1]+S[3]→S[3];
S[4]+M[2]+S[10]→S[10],S[10]+M[2]+S[4]→S[4];
…
S[1]+M[7]+S[15]→S[15],S[15]+M[7]+S[1]→S[1];
然后执行步骤S8、S9。
S12.第四阶,r=3。组建扩散式分别为:
S[1]+M[0]+S[8]→S[8],S[8]+M[0]+S[1]→S[1];
S[2]+M[1]+S[9]→S[9],S[9]+M[1]+S[2]→S[2];
S[3]+M[2]+S[10]→S[10],S[10]+M[2]+S[3]→S[3];
…
S[0]+M[7]+S[15]→S[15],S[15]+M[7]+S[0]→S[0];
然后执行步骤S8、S9。
S13.继续读取消息到M,重复S5至S12,直到整个消息读取完毕。
对所有消息处理完成后,S中的数据便是消息摘要数据,因为本发明所造成的雪崩效应是完全的,所以对于消息源中的任意一位的改变,均会导致消息摘要产生完全改变。函数FH、FQ应当是不可逆的。
示例4:生成随机数
本实施例使用两个长度相等的分组,采用无序规则建立网络,建立规则请参见图9-1或图9-2,X、Y中的数据表示元素索引。图中的每一条连接均表示两条路径,两个方向各一条(如图8),此处为简化示图而进行合并。
为强化随机数质量,特增加与路径中起点元素索引号顺序相连的前后各1个元素作为原体,增加被指向元素的对立元素为受体。设分组名称为X,分组长度为N,i是X的元素索引,则元素X[i]的对立元素为X[(i+N/2)%N],计算N/2时向上或向下取整。
处理步骤:
S1.设有分组X、Y,分组长度为N,本例N=8。
S2.计算处理所需扩散阶段的数量round,round可根据网络建立规则和N进行调整,本例round可取4。由X向Y的扩散记作EY=(X[i-1]+X[i]+X[i+1])+Y[j]+Y[j+4]→(Y[j]+Y[j+4]),由Y向X的扩散记作EX=(Y[j-1]+Y[j]+Y[j+1])+X[i]+X[i+4]→(X[i]+X[i+4]),i、j为元素索引。i-1表示i的前一个元素,当i=0时,i-1=N-1,i+1表示i的后一个元素,当i=N-1时,i+1=0。
S3.第1阶,组建扩散式分别为:
(X[7]+X[0]+X[1])+Y[3]+Y[7]→(Y[3]+Y[7]),(Y[2]+Y[3]+Y[4])+X[0]+X[4]→(X[0]+X[4]);
(X[0]+X[1]+X[2])+Y[0]+Y[4]→(Y[0]+Y[4]),(Y[7]+Y[0]+Y[1])+X[1]+X[5]→(X[1]+X[5]);
(X[1]+X[2]+X[3])+Y[7]+Y[3]→(Y[7]+Y[3]),(Y[6]+Y[7]+Y[0])+X[2]+X[6]→(X[2]+X[6]);
…
(X[6]+X[7]+X[0])+Y[5]+Y[1]→(Y[5]+Y[1]),(Y[4]+Y[5]+Y[6])+X[7]+X[3]→(X[7]+X[3]).
S4.分别取出EY中的原体,分别使用函数FY1、FY2计算结果后,更新EY中受体的各元素,即:
Y[j]=FY1(X[i-1],X[i],X[i+1],Y[j],Y[j+4]),
Y[j+4]=FY2(X[i-1],X[i],X[i+1],Y[j],Y[j+4])。
S5.分别取出EX中的原体,分别使用函数FX1、FX2计算结果后,更新EX中受体的各元素,即
X[i]=FX1(Y[j-1],Y[j],Y[j+1],X[i],X[j+4]),
X[i+4]=FX2(Y[j-1],Y[j],Y[j+1],X[i],X[j+4])。
S6.第2阶,组建扩散式分别为:
(X[7]+X[0]+X[1])+Y[5]+Y[1]→(Y[5]+Y[1]),(Y[4]+Y[5]+Y[6])+X[0]+X[4]→(X[0]+X[4]);
(X[0]+X[1]+X[2])+Y[3]+Y[7]→(Y[3]+Y[7]),(Y[2]+Y[3]+Y[4])+X[1]+X[5]→(X[1]+X[5]);
(X[1]+X[2]+X[3])+Y[4]+Y[0]→(Y[4]+Y[0]),(Y[3]+Y[4]+Y[5])+X[2]+X[6]→(X[2]+X[6]);
…
(X[6]+X[7]+X[0])+Y[1]+Y[5]→(Y[1]+Y[5]),(Y[0]+Y[1]+Y[2])+X[7]+X[3]→(X[7]+X[3]);
然后执行S4、S5。
S7.第3阶,组建扩散式分别为:
(X[7]+X[0]+X[1])+Y[2]+Y[6]→(Y[2]+Y[6]),(Y[1]+Y[2]+Y[3])+X[0]+X[4]→(X[0]+X[4]);
(X[0]+X[1]+X[2])+Y[4]+Y[0]→(Y[4]+Y[0]),(Y[3]+Y[4]+Y[5])+X[1]+X[5]→(X[1]+X[5]);
(X[1]+X[2]+X[3])+Y[0]+Y[4]→(Y[0]+Y[4]),(Y[7]+Y[0]+Y[1])+X[2]+X[6]→(X[2]+X[6]);
…
(X[6]+X[7]+X[0])+Y[3]+Y[7]→(Y[3]+Y[7]),(Y[2]+Y[3]+Y[4])+X[7]+X[3]→(X[7]+X[3]);
然后执行S4、S5。
S6.第4阶,组建扩散式分别为:
(X[7]+X[0]+X[1])+Y[0]+Y[4]→(Y[0]+Y[4]),(Y[7]+Y[0]+Y[1])+X[0]+X[4]→(X[0]+X[4]);
(X[0]+X[1]+X[2])+Y[1]+Y[5]→(Y[1]+Y[5]),(Y[0]+Y[1]+Y[2])+X[1]+X[5]→(X[1]+X[5]);
(X[1]+X[2]+X[3])+Y[2]+Y[6]→(Y[2]+Y[6]),(Y[1]+Y[2]+Y[3])+X[2]+X[6]→(X[2]+X[6]);
…
(X[6]+X[7]+X[0])+Y[7]+Y[3]→(Y[7]+Y[3]),(Y[6]+Y[7]+Y[0])+X[7]+X[3]→(X[7]+X[3]);
然后执行S4、S5。
经过一个周期处理后,所产生的输出即可作为随机数,如需要更多的随机数,可以将上一周期的输出作为下一周期的输入再进行处理。可以使用多种规则建立扩散网络进行交替处理,或在处理过程中加入其它随机数进行扩散运算,以增强随机数质量。注意,生成随机数需高质量的函数来进行扩散运算,否则可能在较短的周期内导致随机数产生循环性重复。
其他实施方式
流加密和解密:
运用本发明生成密匙流,再使用密匙流进行加密和解密。具体做法为:
1.将初始密匙使用本发明生成一组子密匙;
2.使用上一周期生成的子密匙作为输入,使用本发明再生成子密匙,如此往复;
3.使用生成的子密匙和明文进行异或运算,既可得到密文;使用子密匙(与加密相同)和密文再进行异或运算,既可得到明文。
分组流加密和解密:
运算本发明生成密匙流,使用所生成的密匙流再结合本发明进行分组加密和解密。此方式可以实现对每一组明文加密都使用不同的密匙(也可以对每组明文的每一阶处理都使用不同的密匙),进一步强化加密效果。
生产密匙流的具体方法可参考示例4。为保证密文能够被解密,所生成的密匙流不应引入其它不可预测的随机数参与处理。
本发明实施例所提供的数据处理方法和装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
针对参与处理的一个或多个分组,建立扩散网络;其中,所述分组为预设长度的元素集合,且每个所述分组至少包含一个元素;所述扩散网络由扩散路径组成,每一条所述扩散路径均连接并指向分组中的元素和/或元素组,元素组为元素的组合;
根据所述扩散路径组建扩散式;其中,扩散式由原体和受体组成,所述原体包含所述受体;
对所述扩散式进行扩散运算。
2.如权利要求1中所述的方法,其特征在于,所述建立扩散网络具体包括:
为每个所述分组中的每一个元素和/或元素组分配一个索引号,元素或元素组的索引号在同一分组中是唯一的;
获取参与处理的分组中的元素和/或元素组数量,并根据所获取的元素和/或元素组的数量计算扩散阶段的数量;
在每个所述扩散阶段,根据所述索引号在各分组中的元素和/或元素组之间建立扩散路径;在同一条扩散路径中,元素和/或元素组之间的连接关系不因其位置的改变而改变;
将所有扩散阶段中所建立的所有扩散路径作为扩散网络。
3.如权利要求2所述的方法,其特征在于:
所述扩散网络,对于每一个输入元素和/或元素组都能通过所述扩散网络扩散到任何一个输出元素和/或元素组中。
4.如权利要求1中所述的方法,其特征在于,根据所述扩散路径组建扩散式具体包括:
根据所述扩散路径构建受体;其中,所述受体至少包含扩散路径所指向的元素和/或元素组;
根据所述扩散路径构建原体;其中,所述原体至少包含所述扩散路径所连接的元素和/或元素组,且包含受体中的元素和/或元素组。
5.如权利要求1中所述方法,其特征在于,对所述扩散式进行扩散运算具体包括:
以预设的方法对所述原体进行处理,并使用处理的结果更新所述受体;
所述预设的方法满足对于其处理的原体中任意元素和/或元素组的变化都将引起处理结果的变化;其中,所述变化主要包括元素和/或元素组本身的变化;
对所述原体进行处理时还可以使用其他参数。
6.如权利要求5中所述的处理,其特征在于,所述以预设的方法对所述原体进行处理具体包括:
使用预设的函数至少以所述原体为参数进行计算。
7.一种数据处理装置,其特征在于,包括:
扩散网络建立模块,用于针对参与处理的一个或多个分组,建立扩散网络;其中,所述分组为预设长度的元素集合,且每个所述分组至少包含一个元素;所述扩散网络由扩散路径组成,每一条所述扩散路径均连接并指向分组中的元素和/或元素组,元素组为元素的组合;
扩散式建立模块,用于根据所述扩散路径组建扩散式;其中,扩散式由原体和受体组成,所述原体包含所述受体;
扩散运算模块,用于对所述扩散式进行扩散运算。
8.根据权利要求7所述的装置,其特征在于,所述扩散网络建立模块具体包括:
索引号分配子模块,用于为每个所述分组中的每一个元素和/或元素组分配一个索引号,元素或元素组的索引号在同一分组中是唯一的;
扩散阶段数量计算子模块,用于获取参与处理的分组中的元素和/或元素组数量,并根据所获取的元素和/或元素组的数量计算扩散阶段的数量;
扩散路径建立子模块,用于在每个所述扩散阶段,根据所述索引号在各分组中的元素和/或元素组之间建立扩散路径;在同一条扩散路径中,元素和/或元素组之间的连接关系不因其位置的改变而改变;
扩散网络建立子模块,用于将所有扩散阶段中所建立的所有扩散路径作为扩散网络。
9.根据权利要求7所述的装置,其特征在于,所述扩散式建立模块具体包括:
受体构建子模块,用于根据所述扩散路径构建受体;其中,所述受体至少包含扩散路径所指向的元素和/或元素组;
原体构建子模块,用于根据所述扩散路径构建原体;其中,所述原体至少包含所述扩散路径所连接的元素和/或元素组,且包含受体中的元素和/或元素组。
10.根据权利要求7所述的装置,其特征在于,所述扩散运算模块具体包括:
原体处理子模块,用于以预设的方法对所述原体进行处理;
受体处理子模块,用于使用上述处理的结果更新所述受体;
所述预设的方法满足对于其处理的原体中任意元素和/或元素组的变化都将引起处理结果的变化;其中,所述变化主要包括元素和/或元素组本身的变化;
对所述原体进行处理时还可以使用其他参数。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610338367.3A CN106059749A (zh) | 2016-05-20 | 2016-05-20 | 一种数据处理方法以及装置 |
CN201710125028.1A CN107204842A (zh) | 2016-05-20 | 2017-03-03 | 一种数据处理方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610338367.3A CN106059749A (zh) | 2016-05-20 | 2016-05-20 | 一种数据处理方法以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106059749A true CN106059749A (zh) | 2016-10-26 |
Family
ID=57177643
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610338367.3A Pending CN106059749A (zh) | 2016-05-20 | 2016-05-20 | 一种数据处理方法以及装置 |
CN201710125028.1A Pending CN107204842A (zh) | 2016-05-20 | 2017-03-03 | 一种数据处理方法以及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710125028.1A Pending CN107204842A (zh) | 2016-05-20 | 2017-03-03 | 一种数据处理方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN106059749A (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE395186T1 (de) * | 2003-07-10 | 2008-05-15 | Comexi Sa | Vorrichtung zur befestigung von abstreifbändern an einem druckwalzenabstreifer |
CN104751403B (zh) * | 2015-04-23 | 2018-01-05 | 北京航空航天大学 | 一种基于多混沌系统的明文相关图像加密方法 |
CN104851071B (zh) * | 2015-05-21 | 2018-02-02 | 东北大学 | 一种基于三维混沌系统的数字图像加密方法 |
CN105046161B8 (zh) * | 2015-07-29 | 2018-07-06 | 河南大学 | 基于dna动态编码的彩色图像加密方法 |
-
2016
- 2016-05-20 CN CN201610338367.3A patent/CN106059749A/zh active Pending
-
2017
- 2017-03-03 CN CN201710125028.1A patent/CN107204842A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN107204842A (zh) | 2017-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bashir | Mastering blockchain | |
CN1993922B (zh) | 流密码组合系统和方法 | |
TW202101432A (zh) | 實現隱私保護的數據同態加解密方法及裝置 | |
CN107294697B (zh) | 基于明文相似矩阵的对称全同态加密方法 | |
Li et al. | Improved conditional cube attacks on Keccak keyed modes with MILP method | |
CN109660555A (zh) | 基于代理重加密的内容安全分享方法和系统 | |
CN105162590B (zh) | 一种云计算环境中并行同态数据加密方法 | |
CN108833095B (zh) | 区块链中的行为验证方法、节点、系统及电子设备 | |
Kazymyrov et al. | Influence of addition modulo 2 n on algebraic attacks | |
CN106598882A (zh) | 一种安全的内存数据保护方法及装置 | |
US20020006196A1 (en) | Extended key preparing apparatus, extended key preparing method, recording medium and computer program | |
CN114491613B (zh) | 高效可搜索的代理隐私集合求交方法及装置 | |
CN109257176A (zh) | 基于sm2算法的解密密钥分割及解密方法、装置和介质 | |
CN104573557B (zh) | 云端数据储存方法及装置和云端数据还原方法 | |
CN112636903A (zh) | 构造方法、加密方法、解密方法、装置、设备及存储介质 | |
JP5689826B2 (ja) | 秘密計算システム、暗号化装置、秘密計算装置及びその方法、プログラム | |
CN113449336B (zh) | 一种在区块链中基于安全多方隐私保护的共享数据处理方法 | |
CN115001730A (zh) | 分布式场景下基于角色属性的访问控制系统及方法 | |
CN117134906A (zh) | 多方隐私求交方法及相关装置 | |
Dawood et al. | Design large symmetric algorithm for securing big data | |
Schneider | Practical Secure Function Evaluation. | |
CN115118411B (zh) | 链下多方可信计算方法、装置、设备及存储介质 | |
CN114726514B (zh) | 数据的处理方法和装置 | |
CN109639423A (zh) | 一种加密算法的构成装置及解密算法的构成装置 | |
CN106059749A (zh) | 一种数据处理方法以及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161026 |