CN102571330B - 一种基于随机函数的分组加密算法的构造方法 - Google Patents

一种基于随机函数的分组加密算法的构造方法 Download PDF

Info

Publication number
CN102571330B
CN102571330B CN201210022476.6A CN201210022476A CN102571330B CN 102571330 B CN102571330 B CN 102571330B CN 201210022476 A CN201210022476 A CN 201210022476A CN 102571330 B CN102571330 B CN 102571330B
Authority
CN
China
Prior art keywords
random function
algorithm
random
coding
function
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
CN201210022476.6A
Other languages
English (en)
Other versions
CN102571330A (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.)
Guilin Biqi Information Technology Co.,Ltd.
Original Assignee
Guilin University of Electronic Technology
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 Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201210022476.6A priority Critical patent/CN102571330B/zh
Publication of CN102571330A publication Critical patent/CN102571330A/zh
Application granted granted Critical
Publication of CN102571330B publication Critical patent/CN102571330B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明属于信息安全领域,涉及加密算法的构造,利用随机函数来构造分组加密方法,密码(加密)算法是不确定的、随机的,它们的这些不确定性均由密钥中的一部分数据和明文的一些信息确定。这种加密方法的优点在于算法不确定使得密码分析由于缺少关于算法的信息变得非常困难,不能获得同一算法和同一密钥的大量已知(选择)明文密文对,破坏密码分析的条件而增强安全性。已有的大量密码分析针对确定的算法,当算法随机的时候,这些密码分析将难于着手,通过多种方式增加了密码系统的不确定性,不仅一个明文的加密算法是不确定的,而且不同分组的算法也可能是不一样的,可以增大密钥空间,从而增强安全性。

Description

一种基于随机函数的分组加密算法的构造方法
技术领域
本发明属于信息安全领域,涉及一类加密算法的构造方法,特别是分组加密算法的构造方法。
背景技术
现有的加密系统都是基于确定的加密算法,固然有方便,便于广泛使用和标准化,容易得到广泛的评价的好处,但是,这些算法都有非常清楚和固定的结构,只有明文、密钥和一些参数是变换的,它们都在固定的算法框架下参与运算,得到密文。这些对密码系统自由度的制约因素也对密码系统的安全性造成不好的影响,大量的密码分析也是针对算法确定的情形,这些分析已经假设算法已经知道。我们可以将确定的算法视为一个确定性的函数。假如一个加密算法对应的函数是随机的、不确定的,则密码分析者很难着手。与传统的确定函数相对,我们这里提出随机函数的概念,即这个函数的表达式、结构和形式是随机的,不确定的,比如随机函数y=F(a,b,c),F(a,b,c)只是一个抽象表示,并没有明确的形式,它的具体形式可能是f1(a,b,c)、f2(a,b,c)、f3(a,b,c)、f4(a,b,c)之中的一个函数。
发明内容
现有的许多密码分析都是针对同一算法、同一密钥的情况下,需要以大量的选择(或已知)明文密文对作为前提。本发明中构造的密码系统将是随机的,而且不同的分组的加密的函数具体形式是变化的,依靠随机函数来实现,随机函数的具体形式的确定由一个编码来实现,我们称为确定编码。由于算法是变化的,且可能对于不同的分组是不同的,所以密码分析者无法获得相同算法的大量的已知明文密文对,即使存在同一算法的大量明文密文对,密码分析者也无从知道哪个分组采用哪个算法,哪些分组采用相同的算法,从而很难实施密码分析。在本发明中扩充了密钥的结构,让密钥不仅仅是参与参数性的运算,而且还起到驱动算法的变换,参与算法随机性的确定的作用。
本发明的关键是利用随机函数来构造加密算法,相比较传统的利用确定函数的算法,具有以下优势:一、现有的确定算法仅仅是输入变量(传统密钥)的变化,基于随机函数的密码算法其函数也是变化的,这种变化导致计算中的中间结果和最终的结果的变换更加激烈和难于分析,更容易产生雪崩效应;二、基于随机函数的算法对于分析者不确定,现有的公开的密码分析方法往往针对确定的算法,而随机函数本身不确定,使得密码分析很难着手;三、基于随机函数的算法可以勉强用特别的数学方法来表示,包括使用开关函数等来表示,但是,这种方法使得基于随机函数的算法的数学形式及其表达异常复杂,从数学上分析和破译非常困难,但是另外一方面随机函数在具体的计算情况下,却只采用其中的单个具体的形式,在计算上却并不复杂,即具有破译难,而使用容易的优点。而传统的方法在增加复杂度和破译难度的同时,往往会增加加密和解密的运算量;四、有些密码分析基于概率统计,统计结果只是一个平均值,对于变换的随机算法,不仅参数是变换的,而且函数本身也是变换的,很明显统计结果更加不可靠,不完备,概率分布更加分散,均方差大,而确定的算法仅仅是一些变量性参数有变化,所以相应的一些概率统计特征会更加相似、更加接近,而概率分布更加集中。基于概率统计的分析方法对这种基于随机函数的加密系统也会变得不太有效;五、在有意设计的随机函数中,可以将一个随机函数的多个具体函数的特征设定为相反的、相互抵消、互补的,举比较简单的例子,函数F有两种具体形式f1和f2,如果f1的0的概率偏大,则可以选择0的概率偏小的f2与之配伍,经过多轮类似的处理,相关的信息会消失,以防止给密码分析提供任何线索。
 本发明利用随机函数来构造加密算法,所以算法是随机的,进一步,算法的每一个分组都采用不同的具体函数形式。随机函数是无法加密的,必须依靠一定的数据来确定算法的具体函数形式,这一数据与密钥与某些明文bit位和(或)明文分组的位置有关系。在本发明中先设计算法的大致框架,算法的一些部件是确定的,另外一些部件则是采用随机函数,随机函数的具体形式应该在某些方面具有相似的效果,比如运算量、输出值、冗余等,以防止密码分析者找到蛛丝马迹以确定算法。在加密的过程中,总密钥一方面参与确定随机函数算法的具体形式,由于要求每一个分组的具体函数形式不一样,所以不仅仅密钥的一部分参与决定算法,而且,明文的某些信息,比如前一个分组的明文,明文分组的位置也参与决定当前分组所采用加密算法的具体形式,另一方面总密钥的一部分也起到作为传统密钥的作用,即作为参数输入算法参与运算。
为了让算法具有更多的状态和具体形式,具有更好的随机性和最大的不确定性,各个随机函数部件都是独立的(除非某些不同的函数部件之间为了达到某些互补的效果具有关联性,可以将这些关联部件当做一个整体来看待),这些随机函数的各个具体形式最好是等概率地出现。
具体构造方法为:第一、先设计随机加密算法,随机函数中有些部件是确定的,有些部件则是随机函数,对于随机函数部件,选取合适的具体形式,使得这些具体形式在运算量、输出值的特征等方面是对等的,而安全性方面是互补的,运算的结果在统计上是没有差异的,比如是一一映射,或者冗余是相似的,以防止密码分析者通过具体函数形式会产生的结果来确定或者排除某一具体函数形式,算法的设计与传统的算法一样,考虑算法混淆和扩散的效果,抵抗常见的密码分析方法的性能,考虑各个部件之间的搭配效果,各种组合之间的安全性均应该是足够的。在二进制处理数据的情况下,随机函数的具体形式最好是2的i次方,i为整数。
第二、设计确定算法的确定编码A的长度和确定编码与函数具体形式的对应关系,可以采用两种方式:1)从整体来考虑随机函数,整体的随机加密算法的各种组合的具体形式的数目为N,则用不小于log2N bit的数据来确定算法,然后建立每一个确定编码与具体随机函数之间的对应关系,如果这个值有冗余,比如大于N-1,则取模N。2)从各个随机部件考虑函数的随机性,将具有相关性随机函数多个部件作为一个整体(有时候可能考虑前后两个随机部件具有某种互补性质而设计它们具有相关性)分配确定编码A的一部分确定它们关联的具体形式,而其他互相独立的随机函数部件分别分配确定编码A的一部分确定它们各自的具体形式,每一个随机函数部件分配的长度为不小于log2n bit,n为该随机函数部件的具体形式的数目,将所有随机函数部件需要的确定编码的长度累加,即可以得到确定编码的长度,确定的方式根据对应的随机函数部件的那一部分确定编码值来确定随机函数部件的具体形式。通过以上两种方式可以确定各自需要的确定编码A的长度,用于确定一个分组的随机函数具体形式。
第三、给出确定编码A的产生方式,可以有两种方式:1)确定编码A可以是只与明文分组的位置有关系,可以采用一部分密钥K1来产生一个类似于流密码序列的伪随机序列,可以采用伪随机数发生器或者流密码f(K1)来产生这个序列。这个序列发生器具有一定的安全性则更好,这样用其中的一部分推导前后的序列或者推导相应的流密钥K1是困难的,这样可以防御一些潜在的攻击(这类攻击未必存在)。序列发生器产生的序列根据A的长度依次截取,依次分配给各个分组用于确定随机函数具体形式,作为一种特例,这个序列是简单重复的,则可以减少计算量,最极端的是,随机函数的具体形式是不变的,所有分组的随机函数的具体形式与第一个分组的具体形式一样,这样最方便,需要较少的存储空间和时间代价,但是也丧失了以上提到的某些安全特性,但是依然比传统的确定密码算法安全得多。2)用一部分密钥K1和一部分的明文Mi来产生确定编码A=f(K1, Mi),这一部分明文Mi可以是前一个分组,而对于第一个分组,则采用一个确定的初始值来代替,这样不会影响解密,产生的值即是各个分组的确定编码A。
第四、确定总密钥结构,密钥有两部分的作用,即参与决定算法和作为传统密钥参与运算,为了增加有效密钥量,同时增强算法和传统意义密钥参数的独立性,将密钥分成独立的两部分,一部分参与决定算法的结构,一部分作为参数输入。增加密钥量可以增加算法的自由度和密码系统的不确定性,同时伪密钥的数量也会增加,惟一解距离会加大,某些代数攻击的解的数目也会增加。这对于保障算法的安全性是有利的。由于两者独立,所以可以用不同的bit来表示,根据需要的K1的长度和随机函数中输入的狭义密钥K2的长度,即可确定总密钥的结构。
 加密时,对明文进行分组,然后对每一个分组进行如下操作:第一步、先解析总密钥,从中提取参数,第一个分组以后这些数据可以分别存储起来,所以以后各个分组的加密可以省去这一步;第二步、通过某些参数计算确定编码A,用A确定加密算法的具体形式;第三步、根据算法的具体形式,利用传统的密钥加密该明文分组。解密是相反的过程,由于决定算法的一般采用该分组之前的明文,所以,并不影响解密。
虽然算法具有许多优点,安全性很好,破译无线索,但是,算法处理过程更加复杂,需要空间有所增加,计算量有所增加。在当前计算能力和存储能力快速增长的形势下,对应用并不会造成很大的妨碍。
具体实施方式
以下为一个分组密码构造的实施例,为了方便和简洁地描述,采用比较简短、密钥较短、轮数较少的算法,并且模仿已有的AES算法结构。
本实施例构造过程如下:
第一、设计随机加密算法:构造的分组加密算法是一个分组长度和狭义密钥K2长度都是128bit的密码算法,其迭代的轮数为10。算法的具体实现流程如下:1、设计一个密钥扩展的随机函数部件,该随机函数部件有8种具体形式,这个随机函数由K2来产生一个序列,这些序列依次截取分组长度的比特数作为每一轮的轮密钥,轮密钥用于参与密钥加运算。2、初始轮1轮,轮运算仅仅是分组明文与初始轮密钥异或的密钥加运算,是确定的运算。3、重复轮9轮,采用相同的轮函数,轮函数是随机函数,每一轮又包括以下部件:字节代换(S盒)、行移位、列混合和密钥加运算。字节代换(S盒)、行移位和列混合运算的函数均为随机函数,它们均有2种具体形式。4、最终轮1轮,最终轮没有列混合之外,其他的同重复轮,采用相同的随机函数部件。这些随机函数部件均是独立的。即使是相同的随机部件,其采用的具体形式都是相互独立的,不一定相同。
第二、设计确定算法的确定编码A的长度和确定编码与函数具体形式的对应关系,密钥扩展有8种具体形式,需要3bit数据来确定其具体形式,初始轮是确定的,需要0bit数据,重复轮中的每一次字节代换(S盒)、行移位和列混合均需要1bit数据,所以需要9*3=27bit数据,最终轮有两个随机部件,各自需要1bit,共计2bit,以上共计需要32bit数据来确定整个随机函数的具体形式。为了方便,我们将32bit按照以上的顺序分配给对应的随机函数部件用于确定各个随机部件的具体形式,比如最后2bit分别确定最终轮的字节代换和行移位的两种形式。
 第三、给出确定编码A的产生方式,前述的第二种方式较为繁琐,而且容易造成错误的传播,所以,本实例设定算法的变换只是与明文分组的位置有关系,采用128bit长密钥的流密码算法来产生一个安全序列,每次截取32bit依次分配给明文的分组,用于确定该分组加密的随机函数的具体形式。
第四、确定总密钥结构,密钥的前128bit作为K1来决定算法,后面128bit作为K2来参与加密运算。

Claims (5)

1.一种基于随机函数的分组加密算法的构造方法,其特征为:采用随机函数来构造密码算法,密码系统的算法是随机的,每个明文分组的加密算法的具体函数形式由密钥与明文的某些信息确定;随机函数指的是该函数的表达式、结构和形式是随机的,不确定的,随机函数的具体形式由确定编码A确定,建立整个随机函数的N种具体形式与A的对应关系,如果存在冗余的时候,做取模N运算建立一一对应关系。
2.如权利要求1所述的一种基于随机函数的分组加密算法的构造方法,其特征为;具体构造方法为:第一、先设计随机加密算法,随机函数中有部件是确定的,有部件是随机函数,对于随机函数部件,选取具体形式使得同一随机函数的具体形式在运算量、输出值的特征方面是对等的,而安全性方面是互补的;第二、设计确定算法的确定编码A的长度和确定编码与函数具体形式的对应关系;第三、给出确定编码A的产生方式;第四、确定总密钥结构,密钥有两部分的作用,即参与决定算法和作为传统密钥参与运算,根据两部分密钥的长度来确定总密钥的长度和结构。
3.如权利要求1所述的一种基于随机函数的分组加密算法的构造方法,其特征为随机函数的具体形式由确定编码A确定,确定编码A的长度和确定编码与函数具体形式的对应关系,采用两种方式: 1)从整体来考虑随机函数,整体的随机加密算法的各种组合的具体形式的数目为N,则用不小于log2N bit的数据来确定算法,然后建立每一个确定编码与具体随机函数之间的对应关系;2)从各个随机部件考虑函数的随机性,将具有相关性随机函数多个部件作为一个整体,分配确定编码A的一部分确定它们关联的具体形式,而其他互相独立的随机函数部件分别分配确定编码A的一部分确定它们各自的具体形式,每一个随机函数部件分配的长度为不小于log2n bit,n为该随机函数部件的具体形式的数目,将所有随机函数部件需要的确定编码的长度累加,即得到确定编码的长度。
4. 如权利要求2所述的一种基于随机函数的分组加密算法的构造方法,其特征为确定编码A的产生方式为:A采用一部分密钥K1来产生一个类似于流密码的伪随机序列,采用伪随机数发生器或者流密码f(K1)来产生这个序列产生的序列根据A的长度依次截取,依次分配给各个分组用于确定随机函数具体形式。
5.如权利要求2所述的一种基于随机函数的分组加密算法的构造方法,其特征为确定编码A的产生方式为:用一部分密钥K1和一部分的明文Mi来产生确定编码A, Mi是前一个分组,而对于第一个分组,则采用一个确定的初始值来代替,产生的值即是各个分组的确定编码A。
CN201210022476.6A 2012-02-01 2012-02-01 一种基于随机函数的分组加密算法的构造方法 Active CN102571330B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210022476.6A CN102571330B (zh) 2012-02-01 2012-02-01 一种基于随机函数的分组加密算法的构造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210022476.6A CN102571330B (zh) 2012-02-01 2012-02-01 一种基于随机函数的分组加密算法的构造方法

Publications (2)

Publication Number Publication Date
CN102571330A CN102571330A (zh) 2012-07-11
CN102571330B true CN102571330B (zh) 2014-07-30

Family

ID=46415873

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210022476.6A Active CN102571330B (zh) 2012-02-01 2012-02-01 一种基于随机函数的分组加密算法的构造方法

Country Status (1)

Country Link
CN (1) CN102571330B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103516513B (zh) * 2013-10-22 2017-09-29 桂林电子科技大学 一种抗已知明文密文对攻击的分组加密方法
CN103607276B (zh) * 2013-12-05 2017-06-30 桂林电子科技大学 基于随机函数的抗已知明文密文对攻击的分组加密方法
CN107835070B (zh) * 2015-02-09 2020-09-04 金佳 一种简单的嵌入式加密方法
CN105227583B (zh) * 2015-11-05 2019-08-02 上海斐讯数据通信技术有限公司 一种密钥加密方法及系统、电子设备
CN105577673A (zh) * 2015-12-29 2016-05-11 深圳市瑞铭无限科技有限公司 基于下发加密算法的数据加密方法和服务器
US10331410B2 (en) * 2016-11-09 2019-06-25 Google Llc Hardened random number generator with ring oscillator collapse time random truncation
CN106656475B (zh) * 2017-01-09 2020-01-21 李朋林 一种用于高速加密的新型对称型密钥加密方法
CN109284973B (zh) * 2018-08-24 2022-05-17 吴笑盈 一种机械厂计件工时管理系统
CN109450617A (zh) * 2018-12-06 2019-03-08 成都卫士通信息产业股份有限公司 加解密方法及装置、电子设备、计算机可读存储介质
CN111552990A (zh) * 2020-04-17 2020-08-18 贵州电网有限责任公司 一种基于电网大数据的安全防护方法
CN114721613B (zh) * 2022-06-08 2022-08-16 和众印网南京信息科技有限公司 一种用于印刷机的远程控制方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527627A (zh) * 2008-03-06 2009-09-09 邵斌彬 一种改进的Ri jndael算法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527627A (zh) * 2008-03-06 2009-09-09 邵斌彬 一种改进的Ri jndael算法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
罗平,宋涛.随机分组密码算法框架及实现.《计算机应用研究》.2008,第25卷(第5期), *
胡予濮,陈恺.分组密码的随机算法.《通信保密》.2000,(第83期), *

Also Published As

Publication number Publication date
CN102571330A (zh) 2012-07-11

Similar Documents

Publication Publication Date Title
CN102571330B (zh) 一种基于随机函数的分组加密算法的构造方法
Zhang et al. A framework for the analysis and evaluation of algebraic fault attacks on lightweight block ciphers
US8712036B2 (en) System for encrypting and decrypting a plaintext message with authentication
CN108964872B (zh) 一种基于aes的加密方法及装置
US8509427B2 (en) Hybrid mode cryptographic method and system with message authentication
KR20240015147A (ko) 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치
CN105051677A (zh) 用共享随机比特进行掩码
CN108809626A (zh) 一种白盒sm4密码算法方案与系统
CN105591734A (zh) 一种基于查表的白盒密码非线性编码保护方法
CN108476132A (zh) 用于加密操作的密钥序列生成
CN103607276B (zh) 基于随机函数的抗已知明文密文对攻击的分组加密方法
CN104378196A (zh) 加解密算法的安全执行方法和装置
Clavier et al. Reverse engineering of a secret AES-like cipher by ineffective fault analysis
Ding et al. Related key chosen IV attack on Grain-128a stream cipher
CN103516513A (zh) 基于随机函数的抗已知明文密文对攻击的分组加密方法
CN104125059A (zh) 复合时变密码和时变式数据加密方法
KR101631680B1 (ko) Aes 암호 알고리즘의 s-박스를 이용한 물리적 복제 방지기능 회로
CN108650072A (zh) 一种支持多种对称密码算法芯片及其抗攻击电路实现方法
Wei et al. Image encryption algorithm based on fractional order chaotic system
CN102546152B (zh) 一种实现数据多级加密、解密的方法
Bertoni et al. Keccak and the SHA-3 Standardization
Yoo et al. A method for secure and efficient block cipher using white-box cryptography
CN105391546A (zh) 基于双伪随机变换和Feistel结构的轻量级分组密码技术VHF
CN102404123A (zh) 一种基于算法变换思想的加密方法
Nguyen et al. Improved differential cache attacks on SMS4

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY

Free format text: FORMER OWNER: WANG YONG

Effective date: 20140411

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20140411

Address after: Guilin City, the Guangxi Zhuang Autonomous Region Jinji road 541004 No. 1

Applicant after: Guilin University of Electronic Technology

Address before: 541004 School of computer science and engineering,, Guilin, the Guangxi Zhuang Autonomous Region, China, Guilin University of Electronic Technology

Applicant before: Wang Yong

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210608

Address after: 541004 No. 123, Liuhe Road, Guilin, the Guangxi Zhuang Autonomous Region

Patentee after: Guilin Biqi Information Technology Co.,Ltd.

Address before: 541004 1 Jinji Road, Guilin, the Guangxi Zhuang Autonomous Region

Patentee before: GUILIN University OF ELECTRONIC TECHNOLOGY

TR01 Transfer of patent right