一种数据处理方法以及装置的制造方法

文档序号:10690802阅读:142来源:国知局
一种数据处理方法以及装置的制造方法
【专利摘要】本发明涉及信息安全技术领域,具体而言,涉及一种数据处理方法以及装置。数据处理方法,包括:针对参与处理的一个或多个分组,建立扩散网络;其中,所述分组为预设长度的元素集合,且每个所述分组至少包含一个元素;所述扩散网络由扩散路径组成,每一条所述扩散路径均连接并指向分组中的元素和/或元素组,元素组为元素的组合;根据所述扩散路径组建扩散式;其中,扩散式由原体和受体组成,且原体包含受体;对所述扩散式进行扩散运算。该方法及装置能够实现快速完全的雪崩效应,可用于数据加密及解密、计算消息摘要、生成随机数等。本发明用以数据加密时,具有强度高、速度快、抗攻击等特点。
【专利说明】
-种数据处理方法从及装置
技术领域
[0001] 本发明设及信息安全技术领域,具体而言,设及一种数据处理方法W及装置。
【背景技术】
[0002] 雪崩效应,是指在数据处理中,原始输入中的任意一个微小变化,都会造成输出产 生巨大改变;而完全的雪崩效应,该变化都会造成输出全部产生改变。运种处理特性可有多 种用途,如数据加密及解密、计算消息摘要、生成随机数等。
[0003] 加密技术自古代就已开始研究,信息的保护无论是军事、政府还是商业乃至个人, 都是非常重要的。一些部口及组织,对加密强度有着极高的需求。如果加密信息被破译,其 后果可能是非常严重的。随着人类社会进入计算时代、商业时代,大数据加密成为一种重要 需求,如数据库加密、磁盘加密、云加密等。加密速度成为实现运一需求的瓶颈。在信息安全 领域,现有的无论何种加密技术,速度和强度几乎不可兼得。随着计算机的高速发展,各种 密码攻击方法的出现与成熟,使得现有技术面临着严峻的挑战。

【发明内容】

[0004] 有鉴于此,本发明旨在提供一种数据处理方法W及装置,该方法及装置能够实现 快速完全的雪崩效应,可用于数据加密及解密、计算消息摘要、生成随机数等。
[0005] 第一方面,本发明实施例提供了一种数据处理方法,包括:针对参与处理的一个或 多个分组,建立扩散网络。其中,所述分组为预设长度的元素集合,且每个所述分组至少包 含一个元素;所述扩散网络由扩散路径组成,每一条所述扩散路径均连接并指向分组中的 元素和/或元素组,元素组为元素的组合;根据所述扩散路径组建扩散式。其中,扩散式由原 体和受体组成,所述原体包含所述受体;对所述扩散式进行扩散运算。
[0006] 第二方面,本发明实施例还提供一种数据处理装置,包括:扩散网络建立模块,用 于针对参与处理的一个或多个分组,建立扩散网络。其中,所述分组为预设长度的元素集 合,且每个所述分组至少包含一个元素;所述扩散网络由扩散路径组成,每一条所述扩散路 径均连接并指向分组中的元素和/或元素组,元素组为元素的组合;
[0007] 扩散式建立模块,用于根据所述扩散路径组建扩散式。其中,扩散式由原体和受体 组成,所述原体包含所述受体;
[000引扩散运算模块,用于对所述扩散式进行扩散运算。
[0009]本发明实施例所提供的数据处理方法W及装置,针对参与处理的一个或者多个分 组,预先建立扩散网络。其中,每个分组都是预设长度的元素集合,且每个分组至少包含一 个元素;扩散网络由扩散路径组成,每一条扩散路径均连接并指向分组中的元素和/或元素 组;在建立扩散网络之后,根据扩散网络中的扩散路径,组建扩散式,然后对扩散式进行扩 散运算。在运个过程当中,扩散网络、扩散式的建立W及扩散运算都是不确定的,用户可W 根据自己的实际需要,组建自己想要的扩散网络和扩散式W及进行扩散运算。对所有扩散 式进行扩散运算之后,所得到的数据即为处理之后的数据。该数据处理方法W及装置,能够 实现快速完全的雪崩效应,在对数据进行处理时,具有简单、灵活、快速等特点;可用于数据 加密及解密、计算消息摘要、生成随机数等。当本发明用W数据加密时,具有强度高、速度 快、抗攻击等特点。
[0010] 为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合 所附附图,作详细说明如下。
【附图说明】
[0011] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附 图作简单地介绍,应当理解,W下附图仅示出了本发明的某些实施例,因此不应被看作是对 范围的限定,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可W根据运 些附图获得其他相关的附图。
[0012] 图1示出了本发明实施例所提供的一种数据处理方法的流程图;
[0013] 图2示出了本发明实施例所提供的数据处理方法中,建立扩散网路的具体方法的 流程图;
[0014] 图3示出了本发明实施例所提供的数据处理方法中,对扩散式进行扩散运算的具 体方法流程图;
[0015] 图4示出了本发明实施例所提供的一种数据处理装置的结构示意图;
[0016] 图5示出了本发明实施例所提供的数据处理装置中,扩散网络建立模块的具体结 构示意图;
[0017] 图6示出了本发明实施例所提供的数据处理装置中,扩散式建立模块的具体结构 示意图;
[0018] 图7示出了本发明实施例所提供的数据处理装置中,扩散运算模块的具体结构示 意图;
[0019] 图8示出了本发明实施例所提供的数据处理方法及装置中,建立有序扩散网络的 详细规则;
[0020] 图9-1和图9-2示出了本发明实施例所提供的数据处理方法及装置中,建立无序扩 散网络的详细规则,图9-1和图9-2是相同规则的不同表现形式;
[0021] 图10示出了本发明实施例所提供的数据处理方法及装置中,W元素组为单位建立 扩散网络的详细规则;
[0022] 图11-1、图11-2示出了扩散路径的部分连接方式;
[0023] 图12示出了本发明实施例所提供的数据处理方法及装置中扩散网络建立规则的 原理图。
【具体实施方式】
[0024] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅 是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实 施例的组件可W用各种不同的配置来布置和设计。因此,W下对在附图中提供的本发明的 实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实 施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所 有其他实施例,都属于本发明保护的范围。
[0025]为便于对本实施例进行理解,将对本发明实施例所公开的一种数据处理方法及装 置进行详细介绍,本发明实施例所提供的数据处理方法及装置,一般能够用于多种领域,例 如数据加密及解密、计算消息摘要、生成随机数等。
[00%]参见图1所示,本发明实施例所提供的数据处理方法包括:
[0027] S101:针对参与处理的一个或多个分组,建立扩散网络。其中,所述分组为预设长 度的元素集合,且每个所述分组至少包含一个元素。所述扩散网络由扩散路径组成,每一条 所述扩散路径均连接并指向分组中的元素和/或元素组,元素组为元素的组合。
[0028] 在具体实现的时候,各分组的长度可W相等,也可W不相等。扩散网络是指在所有 分组中所建立的扩散路径的集合。当分组中的某一个或者多个元素和/或元素组发生改变 的时候,运个改变会沿着扩散路径扩散,进而影响其他元素和/或元素组的改变。
[0029] 扩散网络可建立为有序的(如图8),也可W建立为无序的(如图9-1)。图8为图12的 转换图,图12为图8的原理图。图12中,图号1表示扩散方向。在建立扩散网络的时候,可W实 现不完全的扩散,即任何一个输入元素的改变仅仅会影响部分输出元素的改变;也可W是 完全扩散,即任何输入一个元素的改变,都会影响其所有输出元素的改变。
[0030] 参见图2所示,本发明实施例还提供一种建立扩散网路的具体方法,具体包括:
[0031 ] S201:为每个所述分组中的每一个元素和/或元素组分配一个唯一索引号;
[0032] 在具体建立扩散路径的时候,需要为每一个元素和/或元素组分配一个索引号,元 素或元素组的索引号在同一分组中是唯一的。如果W元素为单位进行扩散,则索引号被分 配到元素上;如果W元素组为单位进行扩散,则索引号被分配到元素组上。
[0033] S202:获取参与处理的分组中的元素和/或元素组数量,并根据所获取的元素和/ 或元素组的数量计算扩散阶段的数量;
[0034] 在具体实现的时候,W不同的单位进行处理时所获取的数量是不同的。当W元素 为单位进行处理时,应获取元素的数量;当W元素组为单位进行处理时,应获取元素组的数 量。而扩散阶段的数量的确定,可W根据实际的需要进行具体的设定,例如,如果不需要实 现完全的雪崩效应,可W将扩散的阶段设置的较少一些。如果需要实现完全的雪崩效应,贝U 可W将扩散阶段设置的较多一些。另外,为了加深元素的扩散,还可W在实现完全的雪崩效 应的基础上,再进一步的增加扩散阶段的数量。
[0035] S203:在每个所述扩散阶段,根据所述索引号在各分组中的元素和/或元素组之间 建立扩散路径;
[0036] 扩散路径连接并指向分组中的元素和/或元素组,目的在于确定元素和/或元素组 的扩散过程。在同一条扩散路径中,元素和/或元素组之间的连接关系不因其位置的改变而 改变。扩散路径的连接方式是多样的,如图11-1和图11-2。其中,图11-1中,图号1、2表示此 处是相连的,并未断开;
[0037] 扩散路径为虚拟路径,扩散路径对于元素和/或元素组之间的连接也是虚拟连接。
[0038] 扩散路径是具有方向的,元素和/或元素组始终沿着该路径扩散到被指向的元素 和/或元素组中。
[0039] S204:将所有扩散阶段中所建立的所有扩散路径作为扩散网络。
[0040] 当每一个扩散阶段中的扩散路径均建立好之后,将所有的扩散路径的集合作为最 终所建立的扩散网络。
[0041] S102:根据扩散路径组建扩散式。其中,扩散式由原体和受体组成,且原体包含受 体;
[0042] 扩散式旨在确定待扩散的元素和/或元素组(即原体)与被扩散的元素和/或元素 组(即受体)。在组建扩散式时,W扩散路径为根据,至少将扩散路径所连接的元素和/或元 素组作为原体,至少将扩散路径所指向的元素和/或元素组作为受体。为防止元素丢失,原 体中必须包含受体。
[0043] S103:对所述扩散式进行扩散运算;
[0044] 扩散是一种影响传递,即将某一对象(A)的所受的影响传递到另一对象(B)中,当 对象A发生变化时,对象B也发发生变化。扩散运算旨在将原体扩散到受体中。
[0045] 具体地,参见图3所示,本发明实施例还提供一种对扩散式进行扩散运算的具体方 法,包括:
[0046] S301: W预设的方法对所述原体进行处理;
[0047] 预设的方法可W根据实际的需要进行具体的设定,可W是一个函数,也可W是一 个计算式或者其他的方法。无论是函数、计算式或者其他方法,都必须对原体中包含的所有 元素和/或元素组进行处理,且对于原体中任意一个元素和/或元素组的变化都将引起处理 结果的变化。当处理的输出包含多个元素时,对于原体中元素的变化,处理方法应当满足所 输出的每一个元素都发生变化。所诉变化主要包括元素和/或元素组本身的变化。
[0048] 对所述原体进行处理时还可W使用其他参数,该参数可W是任何参数,可W来自 任何地方,如分组中的元素和/或元素组、扩散阶段索引号、随机数等。
[0049] S302:使用处理的结果更新受体;
[0050] 使用原体的处理结果更新受体。当受体中包含多个元素和/或元素组时,宜使用多 个方法对原体进行处理,并分别更新相应的元素或元素组,不宜使用同一个方法处理的结 果更新受体中的多个元素和/或元素组。
[0051] 本发明实施例所提供的数据处理方法W及装置,针对参与处理的一个或者多个分 组,预先建立扩散网络。其中,每个分组都是预设长度的元素集合,且每个分组至少包含一 个元素;扩散网络由扩散路径组成,每一条扩散路径均连接并指向分组中的元素和/或元素 组;在建立扩散网络之后,根据扩散网络中的扩散路径,组建扩散式,然后对扩散式进行扩 散运算。在运个过程当中,扩散网络、扩散式的建立W及扩散运算都是不确定的,用户可W 根据自己的实际需要,组建自己想要的扩散网络和扩散式W及进行扩散运算。对所有扩散 式进行扩散运算之后,所得到的数据即为处理之后的数据。该数据处理方法W及装置,能够 实现快速完全的雪崩效应,在对数据进行处理时,具有简单、灵活、快速等特点;可用于数据 加密及解密、计算消息摘要、生成随机数。当本发明用W数据加密时,具有强度高、速度快、 抗攻击等特点。
[0052] 本发明的实施例还提供一种数据处理装置,参见图4所示,本发明实施例所提供的 数据处理装置包括:
[0053] 扩散网络建立模块100,用于针对参与处理的一个或多个分组,建立扩散网络。其 中,所述分组为预设长度的元素集合,且每个所述分组至少包含一个元素。所述扩散网络由 扩散路径组成,每一条所述扩散路径均连接并指向分组中的元素和/或元素组,元素组为元 素的组合;
[0054] 扩散式建立模块200,用于根据所述扩散路径组建扩散式。其中,扩散式由原体和 受体组成,且原体包含受体;
[0055] 扩散运算模块300,用于对所述扩散式进行扩散运算。
[0056] 本实施例中,扩散网络建立模块100、扩散式建立模块200、扩散运算模块300的具 体功能和交互方式,可参见图1对应的实施例的记载,在此不再寶述。
[0057] 参见图5所示,本发明实施例所提供的数据处理装置中,扩散网络建立模块100具 体包括:
[0058] 索引号分配子模块1001,用于为每一个元素和/或元素组分配一个索引号,元素或 元素组的索引号在同一分组中是唯一的;
[0059] 扩散阶段数量计算子模块1002,用于获取参与处理的分组中的元素和/或元素组 数量,并根据所获取的数量计算扩散阶段的数量;
[0060] 扩散路径建立子模块1003,用于在每个所述扩散阶段,根据所述索引号在各分组 中的元素和/或元素组之间建立扩散路径。在同一条扩散路径中,元素和/或元素组之间的 连接关系不因其位置的改变而改变;
[0061] 扩散网络建立子模块1004,用于将所有扩散阶段中所建立的所有扩散路径作为扩 散网络。
[0062] 本实施例中,索引号分配子模块1001、扩散阶段数量计算子模块1002、扩散路径建 立子模块1003和扩散网络建立子模块1004的具体功能和交互方式,可参见图2对应的实施 例的记载,在此不再寶述。
[0063] 参见图6所示,本发明实施例所提供的数据处理装置中,扩散式建立模块200具体 包括:
[0064] 受体构建子模块2001,用于根据所述扩散路径构建受体。其中,所述受体至少包含 扩散路径所指向的元素和/或元素组;
[0065] 原体构建子模块2002,用于根据所述扩散路径构建原体。其中,所述原体至少包含 所述扩散路径所连接的元素和/或元素组,且包含受体中的元素和/或元素组。
[0066] 本实施例中,受体构建子模块2001、原体构建子模块2002的具体功能和交互方式, 可参见图1中S102对应的实施例的记载,在此不再寶述。
[0067] 参见图7所示,本发明实施例所提供的数据处理装置中,所述扩散运算模块300具 体包括:
[0068] 原体处理子模块3001,用于W预设的方法对所述原体进行处理;
[0069] 受体处理子模块3002,用于使用上诉处理的结果更新所述受体。
[0070] 所述预设的方法满足对于其处理的原体中任意元素和/或元素组的变化都将引起 处理结果的变化。当处理的输出包含多个元素时,对于原体中元素的变化,处理方法应当满 足所输出的每一个元素都发生变化。所诉变化主要包括元素和/或元素组本身的变化。
[0071] 对所述原体进行处理时还可W使用其他参数,该参数可W是任何参数,可W来自 任何地方,如分组中的元素和/或元素组、扩散阶段索引号、随机数等。
[0072] 本实施例中,原体处理子模块3001、受体处理子模块3002的具体功能和交互方式, 可参见图3对应的实施例的记载,在此不再寶述。
[0073] 另外,本发明实施例还提供一些将本发明所提供的数据处理方法进行具体应用的 实施例,在运些实施例中,仅选取了具有代表性的几个实施案例进行说明。本发明的方案应 用较灵活,所提供的运些实施例并不应当成为对本发明具体应用的限制。
[0074] 如未特殊说明,在下述所有的计算式中:表示取余运算、V'表示乘法运算、 7"表示除法运算、"? "表示异或位运算;设处理所需的扩散阶段数量为round,整数r为扩 散阶段索引号,每一阶r自增l,r的值域为[0,round);设X是分组名称,整数i是分组的元素 索引,则分组中的元素表示为X[i]。设分组长度为N,则元素索引i的值域为[S,S+N)。设E为 计算分组中元素索引的算术表达式,则计算元素索引时需对E进行取余运算,即索引 i = 化%N)+S。上述S为当前分组的起始元素索引号,如未特殊说明,S均为0。
[0075] 完美长度:设分组的长度为N,则该分组的完美长度P = 2^^G = Log2N,需对G进行向 上取整。
[0076] 注:对于扩散式的记法和描述,记法:原体^受体,描述为由原体向受体扩散。因为 原体中包含了受体,所W在描述时在原体中可省略受体。如扩散式A+B+C^C可描述为A和B 向讶广散。
[0077] 示例1:数据加密
[0078] 本实施例实现对称分组加密,扩散网络建立规则请参见图8所示,为进一步强化加 密质量,特额外增加一阶扩散阶段,路径连接同图8中的第一阶。路径连接方式请参见图11- 1、图11-2,两种连接方式意义相同。此例只指针对一组明文进行加密。
[00巧]处理步骤:
[0080] S1.设N(n)为分组长度。计算对数G = Log2N,并对G进行向上取整,计算完美长度P =2G,计算处理所需扩散阶段的数量round = G+E,E〉= 1,本例E取2;
[0081] S2.取2组长度为η的明文X和Y,i、j分别是Χ、Υ的元素索引;
[0082] S3.取2组长度为η的密匙A和Β,要求A和Β中的元素分别不全部相等,a、b分别是Α、Β 的元素索引;
[00削 S4.设整数r是扩散阶段索引号。第一阶r = 0。由Χ、Β向Υ的扩散命名为Ευ,记作Ευ = Χ 山+B[b]巧[j]一Υ。·];由Υ、Α向X的扩散命名为Ex,记作Ex=YU]+A[a]巧山一X[i]。组建扩 散式分别为:
[0084] X[0]+B[0]+Y[0]一Υ[0],Y[0]+A[0]巧[0]一X[0];
[0085] X[l]+B[l]+Y[l]一Y[1],Y[1]+A[1]巧[1]一X[l];
[0086] X[2]+B[2]+Y[2]一Υ[2],Y[2]+A[2]巧[2]一X[2];
[0087] ···
[008引 X[n-1]+B[n-1]+Y[n-1]一Υ[η-1],Y[n-l]+A[n-UW[n-l]一X[n-1].
[0089] S5.分别取出Ευ中的原体,使用函数Fy计算结果后,更新Ευ中的受体,即
[0090] Y[j]=FY(X[i],B[b],Y[j])。
[0091] S6.分别取出垃中的原体,使用函数Fx计算结果后,更新Ex中的受体,即
[0092] X[i]=Fx(Y[j],A[a],X[i])。
[0093 ] S7.第二阶,r = 1。组建扩散式分别为:
[0094] X[0]+B[0]+Y[P/化0]一Υ[Ρ/化0],Y[P/2+0]+A[0]巧[0]一X[0];
[0095] X[1]+B[1]+Y[P/化1]一Υ[Ρ/化l],Y[P/2+l]+A[l]巧[1]一X[l];
[0096] X[2]+B[2]+Y[P/化2]一Υ[Ρ/化2],Y[P/2+2]+A[2]巧[2]一X[2];
[0097] ···
[009引 X[n-l]+B[n-l]+Y[P/2+n-l] 一 ΥΕΡΛ+η-υ,ΥΕΡΛ+η-υ+ΑΕη-Ι^ΧΕη-υ^ΧΕη- ?];
[0099] 然后执行步骤S5、S6。
[0100] S8.第Ξ阶,r = 2。组建扩散式分别为:
[0101] X[0]+B[0]+Y[P/4+0]一Υ[Ρ/4+0],Y[P/4+0]+A[0]巧[0]一X[0];
[0102] X[l]+B[l]+Y[P/4+l]一Y[P/4+l],Y[P/4+l]+A[l]巧[1]一X[l];
[0103] X[2]+B[2]+Y[P/4+2]一Υ[Ρ/4+2],Y[P/4+2]+A[2]巧[2]一X[2];
[0104] ···
[0105] X[n-l]+B[n-l]+Y[P/4+n-l] 一 ΥΕΡ/Α+η-υ,ΥΕΡ/Α+η-υ+ΑΕη-Ι^ΧΕη-υ^ΧΕη- ?];
[0106] 然后执行步骤S5、S6。
[0107] S9.第r阶(仅当此示例中不是第一阶和最后一阶时)。组建扩散式分别为:
[010引 X[0]+B[0]巧[P/2T+0]一Υ[Ρ/240],Υ[Ρ/2τ+0]+Α[0]巧[0]一X[0];
[0109] X[l]+B[l]巧[P/2T+1] 一 Υ[Ρ/2Τ+1],Υ 巧/2Τ+1]+Α[1]巧[1] 一 X[l];
[0110] X[2]+B[2]巧[P/2T+2]一 Y[P/242],Y巧/242]+Α[2]巧[2] 一 X[2];
[0111] ···
[0112] X[n-1]+B[n-1]巧[Ρ/2τ+η-1] 一 Y[P/2r+n-l],Y[P/2r+n-l]+A[n-l]+X[n-l]一X[n- l];
[0113] 然后执行步骤S5、S6。
[0114] S10.最后一阶,r = ;round-l。本阶同 S4。
[0115] 经过一个周期(即对所有扩散路径完成一次扩散运算)处理后,Χ,Υ最后的数据就 是密文。要求函数Fy和Fx是可逆的。
[0116] W下是函数Fy、Fx的一种实现:
[0117]
[0118] 函数Fy和Fx均返回一个0~255之间的整数,函数参数X、a、b、y分别为X、A、B、Y中的 某个元素,其值域为[0,255],Κ是一个由整数0~255组成的不重复随机集合。
[0119] 示例2:数据解密
[0120] 本实施例实现对称分组解密,网络建立规则与加密相反。此例只针对一组密文进 行解密。
[0121] 处理步骤:
[0122] SI.设N(n)为分组长度(N与加密的分组长度相等)。计算对数G = Log2N,并对G进行 向上取整,计算完美长度? = 2*%计算处理所需扩散阶段的数量'〇1111(1 = G+E,E〉= 1,本例6取 2。
[0123] S2.取2组长度为η的密文X和Y,对应加密的相应输出,i、j分别Χ、Υ的元素索引。
[0124] S3.取2组长度为η的密匙A和Β,对应加密所使用的密匙,a、b分别Α、Β的元素索引。
[01剧 S4.设整数r是扩散阶段索引号,第一阶r = 0。由Υ、Α向X的扩散命名为Ex,记作Εχ = Υ 山+A[a]巧山一X山,由Χ、Β向Υ的扩散命名为Ευ,记作EY=X[i]+B[b]巧山一Υ。·]。组建扩 散式分别为:
[01%] Y[0]+A[0]巧[0]一X[0],X[0]+B[0]巧[0]一Υ[0];
[0127] Υ[1]+Α[1]巧[1]一Χ[1],Χ[1]+Β[1]巧[1]一Υ[1];
[012 引 Υ[2]+Α[2]巧[2]一Χ[2],Χ[2]+Β[2]巧[2]一Υ[2];
[0129] ···
[0130] Y[n-1]+A[n-1]巧[η-1]一Χ[η-1],Χ[η-1]+Β[η-1]巧[η-1]一Υ[η-1].
[0131] S5.分别取出垃中的原体,使用函数_Fx计算结果后,更新Ex中的受体,即
[0132] X[i]=_Fx(Y[j],A[a],X[i])。
[0133] S6.分别取出Ευ中的原体,使用函数_Fy计算结果后,更新Ευ中的受体,即
[0134] Y[j]=_FY(X[i],B[b],Y[j])。
[01巧]S7.第二阶,r = 1。组建扩散式分别为:
[0136] Y[l+0]+A[0]巧[0]一X[0],X[0]+B[0]巧[1+0]一Υ[1+0];
[0137] Y[1+1]+A[1]W[1]^X[1],X[1]+B[1>Y[1+1]^Y[1+1];
[013 引 Y[l+2]+A[2]巧[2]一X[2],X[2]+B[2]巧[1+2]一Υ[1+2];
[0139] ···
[0140] Υ[1+η-1]+Α[η-1]巧[η-1]一Χ[η-1],Χ[η-1]+Β[η-1]巧[1+n-l]一Υ[1+η-1];
[0141] 然后执行步骤S5、S6。
[0142] S8.第Ξ阶,r = 2。组建扩散式分别为:
[0143] Y口+0]+A[0]巧[0]一X[0],X[0]+B[0]巧[2+0]一Y口+0];
[0144] Y口+1]+A[1]巧[1]一X[1],X[1]+B[1>Y[2+1]^Y[^1];
[0145] Y口+2]+A[2]巧[2]一X[2],X[2]+B[2]巧[2+2]一Y口+2];
[0146] ···
[0147] Y口+n-l]+A[n-l]巧[n-1]一X[n-1],X[n-l]+B[n-l]巧[2+n-l]一Y口+n-l];
[014引然后执行步骤S5、S6。
[0149] S9.第r阶(仅当此示例中不是第一阶和最后一阶时)。组建扩散式分别为:
[0150] Υ[2^+0]+Α[0]巧[0]一X[0],X[0]+B[0]巧[2^+0]一Υ[2^+0];
[0151] Υ[2τ-ι+1]+Α[1]巧[1] 一 Χ[1],Χ[1]+Β[1]巧[2'-1+1] 一 Υ[2τ-ι+1];
[0152] Υ[2τ-ι+2]+Α[2]巧[2]一Χ[2],Χ[2]+Β[2]+Υ[2τ-ι+2]一Υ[2τ-ι+2];
[0153] ···
[0154] Υ[2τ-ι+η-1]+Α[η-1]+Χ[η-1] 一 ΧΕη-υ,ΧΕη-υ+ΒΕη-Ι^Υ^τ-ι+η-υ^Υ^τ-ι+η- ?];
[01巧]然后执行步骤S5、S6。
[0156] SIO.最后一阶,r = ;round-l。本阶同 S4。
[0157] 经过一个周期处理后,Χ,Υ最后的数据就是明文。函数_Fγ和_Fx分别为加密所使用 的函数Fy、Fx的逆函数。
[015引 W下是函的一种实现:
[0159]
[0160]
[0161] 函数_Fγ和_Fx均返回一个0~255之间的整数,参数x、a、b、y分别为X、A、B、Y中的某 个元素,其值域为[0,255L_K是加密所用的K的逆映射,对于任意整数v(v的值域为[0, 255]),_Κ均满足J(比[V] ] =v。
[0162] 示例3:计算消息摘要
[0163] 本实施例所使用的摘要长度为128位(16字节,可取任意长度),网络建立规则请参 见图8,扩散式组建请参考示例1。
[0164] 处理步骤:
[0165] S1.设N(n)是分组长度(本例N = 8),S是用于存储消息摘要的分组(其长度为2N = 16),i是S的元素索引。为描述方面,将S的前半部分命名为Sq后半部分命名Sh。
[0166] S2.向S中填入元数据,每次计算消息摘要时,均向S中填入固定的元数据(即元 素)。运些元数据是用于计算消息摘要的基础数据,要求该数据中的元素不全部相等。
[0167] S3.计算对数G = Log2N,并对G进行向上取整,计算完美长度P = 2^^计算处理所需扩 散阶段的数量round=G+E,E〉= 1,本例E取1。根据N=8得知,G = 3,P = 8,round = 4。
[0168] S4.从消息源中读取N长度的数据,命名为Μ分组,j是Μ的元素索引。
[0169] S5.判断实际读取的数据长度L是否等于Ν。
[0170] S6.如果L<N,则计算数据填充量C = min(N,N-L),并对Μ进行顺序填充(1~C)。具体 为从索引C开始,依次向Μ中填入1、2、3.....C,函数min返回参数中的最小值。
[0171] S7.设整数r是扩散阶段索引号,第一阶r = 0。由Sq、M向Sh的扩散式命名为Eh,记作 6(1 = 5[1]+1。']+5。'+11]一5。'+11],由511、1向59的扩散命名为69,记作69 = 5。'+11]+1。']+5[。 ^S[i]。组建扩散式分别为:
[0172] S[0]+M[0]+S[8]一S[8],S[8]+M[0]+S[0]一S[0];
[0173] S[l]+M[l]+S[9]一S[9],S[9]+M[1]+S[1]一S[l];
[0174] S[2]+M[2]+S[10]^S[10],S[10]+M[2]+S[2]^S[2];
[0175] ···
[0176] S[7]+M[7]+S[15] 一 S[15],S[15]+M[7]+S[7]^S[7],
[0177] S8.分别取出Eh中的原体,使用函数Fh计算结果后,更新Eh中的受体,即 [017 引 S[j+n]=FH(S[i],MU],S[j+n])。
[0179] S9.分别取出Eq中的原体,使用函数Fq计算结果后,更新Eq中的受体,即
[0180] S[i]=Fg(S[j+n],M[j],S[i])〇
[0181] SIO.第二阶,r = l。组建扩散式分别为:
[0182] S[4]+M[0]+S[8]一S[8],S[8]+M[0]+S[4]一S[4];
[0183] S[5]+M[l]+S[9] 一 S[9],S[9]+M[1]+S[5]^S[5];
[0184] S[6]+M[2]+S[10]一S[10],S[10]+M[2]+S[6]一S[6];
[0185] ···
[01 化]S[3]+M[7]+S[15] 一 S[15],S[15]+M[7]+S[3]^S[3];
[0187]然后执行步骤S8、S9。
[018引SI 1.第Ξ阶,r = 2。组建扩散式分别为:
[0189] S[2]+M[0]+S[8]一S[8],S[8]+M[0]+S[2]一S[2];
[0190] S[3]+M[l]+S[9] 一 S[9],S[9]+M[1]+S[3]^S[3];
[0191] S[4]+M[2]+S[10] 一 S[10],S[10]+M[2]+S[4]^S[4];
[0192] ·..
[0193] S[l]+M[7]+S[15]一S[15],S[15]+M[7]+S[1]一S[l];
[0194] 然后执行步骤S8、S9。
[01巧]S12.第四阶,r = 3。组建扩散式分别为:
[0196] S[l]+M[0]+S[8]一S[8],S[8]+M[0]+S[1]一S[l];
[0197] S[2]+M[l]+S[9] 一 S[9],S[9]+M[1]+S[2]^S[2];
[019 引 S[3]+M[2]+S[10] 一 S[10],S[10]+M[2]+S[3]^S[3];
[0199] ···
[0200] S[0]+M[7]+S[15]一S[15],S[15]+M[7]+S[0]一S[0];
[0201] 然后执行步骤S8、S9。
[0202] S13.继续读取消息到M,重复S5至S12,直到整个消息读取完毕。
[0203] 对所有消息处理完成后,S中的数据便是消息摘要数据,因为本发明所造成的雪崩 效应是完全的,所W对于消息源中的任意一位的改变,均会导致消息摘要产生完全改变。函 数Fh、Fq应当是不可逆的。
[0204] 示例4:生成随机数
[0205] 本实施例使用两个长度相等的分组,采用无序规则建立网络,建立规则请参见图 9-1或图9-2,Χ、Υ中的数据表示元素索引。图中的每一条连接均表示两条路径,两个方向各 一条(如图8 ),此处为简化示图而进行合并。
[0206] 为强化随机数质量,特增加与路径中起点元素索引号顺序相连的前后各1个元素 作为原体,增加被指向元素的对立元素为受体。设分组名称为X,分组长度为N,i是X的元素 索引,则元素 X[i]的对立元素为X[(i+N/2)%N],计算N/^2时向上或向下取整。
[0207] 处理步骤:
[020引 S1.设有分组X、Y,分组长度为N,本例N=8。
[0209] S2.计算处理所需扩散阶段的数量round, round可根据网络建立规则和N进行调 整,本例round可取4。由X向Y的扩散记作Ey=(X[W]巧山巧[i+1])巧山巧[j+4]一(Y。·] +Y[j+4]),由Y向X的扩散记作Ex=(Y[j-l]巧[j]巧[j+l])巧[i]+X[i+4]一(X[i]巧[i+4]), 1、j为元素索引。i-1表示i的前一个元素,当1 = 0时,i-l=N-l,i+l表示i的后一个元素,当i = N-1 时,i+1 =0。
[0210] S3.第1阶,组建扩散式分别为:
[0211] (X[7]+X[0]巧[1])巧[3]+Υ[7] 一(Y[3]+Y[7]),(Y[2]+Y[3>Y[4]HX[0]+X[4]^ (X[0]+X[4]);
[0212] (X[0]+X[1>X[2])W[0]+Y[4]^(Y[0]+Y[4]),(Y[7]+Y[0>Y[1]HX[1]+X[5]^ (X[l]+X[5]);
[0213] (X[l]+X[2]巧[3])巧[7]+Υ[3] 一(Y[7]+Y[3]),(Y[6]+Y[7>Y[0]HX[2]+X[6]^ (X[2]+X[6]);
[0214] ·..
[0215] (X[6]+X[7]巧[0])巧[5]+Y[l]一(Y[5]+Y[1]),(Y[4]+Y[5>Y[6]HX[7]+X[3]^ (X[7]+X[3]).
[0216] S4.分别取出Ey中的原体,分别使用函数Fyi、Fy2计算结果后,更新Ey中受体的各元 素,即:
[0217] Y[j]=FYi(X[i-l],X[i],X[i+l],Y[j],Y[j+4]),
[021 引 Y[j+4]=FY2(X[i-l],X山,X[i+l],YU],Y[j+4])。
[0219] S5.分别取出Ex中的原体,分别使用函数Fxi、Fx2计算结果后,更新Ex中受体的各元 素,即
[0220] X[i]=Fxi(Y[j-l],Y[j],Y[j+l],X[i],X[j+4]),
[0221] X[i+4]=Fx2(Y[j-l],Y[j],Y[j+l],X[i],X[j+4])〇
[0222] S6.第2阶,组建扩散式分别为:
[0223] (X[7]+X[0]巧[1])巧[5]+Υ[1]一(Y[5]+Y[1]),(Y[4]+Y[5>Y[6]HX[0]+X[4]^ (X[0]+X[4]);
[0224] (X[0]+X[1>X[2])W[3]+Y[7]^(Y[3]+Y[7]),(Y[2]+Y[3>Y[4]HX[1]+X[5]^ (X[l]+X[5]);
[0225] (X[l]+X[2]巧[3])巧[4]+Υ[0] 一(Y[4]+Y[0]),(Y[3]+Y[4>Y[5]HX[2]+X[6]^ (X[2]+X[6]);
[0226] ·..
[0227] (X[6]+X[7]巧[0])巧[1]+Y[5] 一(Y[1]+Y[5]),(Y[0]+Y[1>Y[2]HX[7]+X[3]^ (X[7]+X[3]);
[02巧]然后执行S4、S5。
[0229] S7.第3阶,组建扩散式分别为:
[0230] (X[7]+X[0]巧[1])巧[2]+Υ[6] 一(Y[2]+Y[6]),(Y[1]+Y[2>Y[3]HX[0]+X[4]^ (X[0]+X[4]);
[0231] (X[0]+X[1>X[2])W[4]+Y[0]^(Y[4]+Y[0]),(Y[3]+Y[4>Y[5]HX[1]+X[5]^ (X[l]+X[5]);
[0232] (X[1]+X[2>X[3])W[0]+Y[4]^(Y[0]+Y[4]),(Y[7]+Y[0>Y[1]HX[2]+X[6]^ (X[2]+X[6]);
[0233] ·..
[0234] (X[6]+X[7]巧[0])巧[3]+Y[7] 一(Y[3]+Y[7]),(Y[2]+Y[3>Y[4]HX[7]+X[3]^ (X[7]+X[3]);
[Ο2%]然后执行S4、S5。
[0236] S6.第4阶,组建扩散式分别为:
[0237] (X[7]+X[0]巧[1])巧[0]+Υ[4] 一(Y[0]+Y[4]),(Y[7]+Y[0>Y[1]HX[0]+X[4]^ (X[0]+X[4]);
[0238] (X[0]+X[1>X[2])W[1]+Y[5]^(Y[1]+Y[5]),(Y[0]+Y[1>Y[2]HX[1]+X[5]^ (X[l]+X[5]);
[0239] (X[1]+X[2>X[3])W[2]+Y[6]^(Y[2]+Y[6]),(Y[1]+Y[2>Y[3]HX[2]+X[6]^ (X[2]+X[6]);
[0240] ·..
[0241] (X[6]+X[7]巧[0])巧[7]+Y[3] 一(Y[7]+Y[3]),(Y[6]+Y[7>Y[0]HX[7]+X[3]^ (X[7]+X[3]);
[0242] 然后执行S4、S5。
[0243] 经过一个周期处理后,所产生的输出即可作为随机数,如需要更多的随机数,可W 将上一周期的输出作为下一周期的输入再进行处理。可W使用多种规则建立扩散网络进行 交替处理,或在处理过程中加入其它随机数进行扩散运算,W增强随机数质量。注意,生成 随机数需高质量的函数来进行扩散运算,否则可能在较短的周期内导致随机数产生循环性 重复。
[0244] 其他实施方式
[0245] 流加密和解密:
[0246] 运用本发明生成密匙流,再使用密匙流进行加密和解密。具体做法为:
[0247] 1.将初始密匙使用本发明生成一组子密匙;
[0248] 2.使用上一周期生成的子密匙作为输入,使用本发明再生成子密匙,如此往复;
[0249] 3.使用生成的子密匙和明文进行异或运算,既可得到密文;使用子密匙(与加密相 同)和密文再进行异或运算,既可得到明文。
[0250] 分组流加密和解密:
[0251] 运算本发明生成密匙流,使用所生成的密匙流再结合本发明进行分组加密和解 密。此方式可W实现对每一组明文加密都使用不同的密匙(也可W对每组明文的每一阶处 理都使用不同的密匙),进一步强化加密效果。
[0252] 生产密匙流的具体方法可参考示例4。为保证密文能够被解密,所生成的密匙流不 应引入其它不可预测的随机数参与处理。
[0253] 本发明实施例所提供的数据处理方法和装置的计算机程序产品,包括存储了程序 代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述 的方法,具体实现可参见方法实施例,在此不再寶述。
[0254] 所属领域的技术人员可W清楚地了解到,为描述的方便和简洁,上述描述的系统 和装置的具体工作过程,可W参考前述方法实施例中的对应过程,在此不再寶述。
[0255] 所述功能如果W软件功能单元的形式实现并作为独立的产品销售或使用时,可W 存储在一个计算机可读取存储介质中。基于运样的理解,本发明的技术方案本质上或者说 对现有技术做出贡献的部分或者该技术方案的部分可软件产品的形式体现出来,该计 算机软件产品存储在一个存储介质中,包括若干指令用w使得一台计算机设备(可w是个 人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。 而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memo巧)、随机存取存 储器(RAM,Random Access Memory)、磁碟或者光盘等各种可W存储程序代码的介质。
[0256] W上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明掲露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应所述W权利要求的保护范围为准。
【主权项】
1. 一种数据处理方法,其特征在于,包括: 针对参与处理的一个或多个分组,建立扩散网络;其中,所述分组为预设长度的元素集 合,且每个所述分组至少包含一个元素;所述扩散网络由扩散路径组成,每一条所述扩散路 径均连接并指向分组中的元素和/或元素组,元素组为元素的组合; 根据所述扩散路径组建扩散式;其中,扩散式由原体和受体组成,所述原体包含所述受 体; 对所述扩散式进行扩散运算。2. 如权利要求1中所述的方法,其特征在于,所述建立扩散网络具体包括: 为每个所述分组中的每一个元素和/或元素组分配一个索引号,元素或元素组的索引 号在同一分组中是唯一的; 获取参与处理的分组中的元素和/或元素组数量,并根据所获取的元素和/或元素组的 数量计算扩散阶段的数量; 在每个所述扩散阶段,根据所述索引号在各分组中的元素和/或元素组之间建立扩散 路径;在同一条扩散路径中,元素和/或元素组之间的连接关系不因其位置的改变而改变; 将所有扩散阶段中所建立的所有扩散路径作为扩散网络。3. 如权利要求2所述的方法,其特征在于: 所述扩散网络,对于每一个输入元素和/或元素组都能通过所述扩散网络扩散到任何 一个输出元素和/或元素组中。4. 如权利要求1中所述的方法,其特征在于,根据所述扩散路径组建扩散式具体包括: 根据所述扩散路径构建受体;其中,所述受体至少包含扩散路径所指向的元素和/或元 素组; 根据所述扩散路径构建原体;其中,所述原体至少包含所述扩散路径所连接的元素和/ 或元素组,且包含受体中的元素和/或元素组。5. 如权利要求1中所述方法,其特征在于,对所述扩散式进行扩散运算具体包括: 以预设的方法对所述原体进行处理,并使用处理的结果更新所述受体; 所述预设的方法满足对于其处理的原体中任意元素和/或元素组的变化都将引起处理 结果的变化;其中,所述变化主要包括元素和/或元素组本身的变化; 对所述原体进行处理时还可以使用其他参数。6. 如权利要求5中所述的处理,其特征在于,所述以预设的方法对所述原体进行处理具 体包括: 使用预设的函数至少以所述原体为参数进行计算。7. -种数据处理装置,其特征在于,包括: 扩散网络建立模块,用于针对参与处理的一个或多个分组,建立扩散网络;其中,所述 分组为预设长度的元素集合,且每个所述分组至少包含一个元素;所述扩散网络由扩散路 径组成,每一条所述扩散路径均连接并指向分组中的元素和/或元素组,元素组为元素的组 合; 扩散式建立模块,用于根据所述扩散路径组建扩散式;其中,扩散式由原体和受体组 成,所述原体包含所述受体; 扩散运算模块,用于对所述扩散式进行扩散运算。8. 根据权利要求7所述的装置,其特征在于,所述扩散网络建立模块具体包括: 索引号分配子模块,用于为每个所述分组中的每一个元素和/或元素组分配一个索引 号,元素或元素组的索引号在同一分组中是唯一的; 扩散阶段数量计算子模块,用于获取参与处理的分组中的元素和/或元素组数量,并根 据所获取的元素和/或元素组的数量计算扩散阶段的数量; 扩散路径建立子模块,用于在每个所述扩散阶段,根据所述索引号在各分组中的元素 和/或元素组之间建立扩散路径;在同一条扩散路径中,元素和/或元素组之间的连接关系 不因其位置的改变而改变; 扩散网络建立子模块,用于将所有扩散阶段中所建立的所有扩散路径作为扩散网络。9. 根据权利要求7所述的装置,其特征在于,所述扩散式建立模块具体包括: 受体构建子模块,用于根据所述扩散路径构建受体;其中,所述受体至少包含扩散路径 所指向的元素和/或元素组; 原体构建子模块,用于根据所述扩散路径构建原体;其中,所述原体至少包含所述扩散 路径所连接的元素和/或元素组,且包含受体中的元素和/或元素组。10. 根据权利要求7所述的装置,其特征在于,所述扩散运算模块具体包括: 原体处理子模块,用于以预设的方法对所述原体进行处理; 受体处理子模块,用于使用上述处理的结果更新所述受体; 所述预设的方法满足对于其处理的原体中任意元素和/或元素组的变化都将引起处理 结果的变化;其中,所述变化主要包括元素和/或元素组本身的变化; 对所述原体进行处理时还可以使用其他参数。
【文档编号】H04L9/32GK106059749SQ201610338367
【公开日】2016年10月26日
【申请日】2016年5月20日
【发明人】李光余
【申请人】李光余
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1