CN102404123A - 一种基于算法变换思想的加密方法 - Google Patents

一种基于算法变换思想的加密方法 Download PDF

Info

Publication number
CN102404123A
CN102404123A CN2012100009401A CN201210000940A CN102404123A CN 102404123 A CN102404123 A CN 102404123A CN 2012100009401 A CN2012100009401 A CN 2012100009401A CN 201210000940 A CN201210000940 A CN 201210000940A CN 102404123 A CN102404123 A CN 102404123A
Authority
CN
China
Prior art keywords
algorithm
key
encryption method
method based
uncertain
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
Application number
CN2012100009401A
Other languages
English (en)
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN2012100009401A priority Critical patent/CN102404123A/zh
Publication of CN102404123A publication Critical patent/CN102404123A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明属于信息安全领域,涉及一种基于算法变换思想的加密方法,密码(加密)算法是不确定的、可变的,密码算法中的一些运算部件是随机的,是n个函数或者运算方法之一,算法的一些结构是不确定的,或者一些运算部件的顺序是可变的,它们的这些不确定性均由密钥中的一部分数据确定。这种加密方法的优点在于算法不确定使得密码分析缺少关于算法的信息而非常困难。现有许多密码分析针对确定的算法,当算法不确定时候,这些密码分析将难于着手,同时也可以使得算法的形式多样化,而且带来的计算量的增加不大,可以在不明显增加运算量的情况下,极大地增大密钥空间,增加密码系统的不确定性和复杂性,从而增强安全性。

Description

一种基于算法变换思想的加密方法
技术领域
本发明属于信息安全领域,涉及一类新型的加密方法。
背景技术
现有的加密算法都有非常清楚和固定的结构,只有明文、密钥和一些参数是变换的,它们都在固定的算法框架下参与运算,得到密文。由于有确定的结构,进行密码分析会比较容易着手,许多数学的方法可以用于密码的破译。本发明基于这样的观点:1)作为在运算中的变量的密钥的变化对算法的复杂性的影响是有限的,不如算法本身的变化对密码算法的复杂性的影响显著,而且由于许多密码分析是基于固定结构的密码算法,算法的变换使得密码分析的线索会少许多,从而增强密码算法的安全性。2)采用算法变换,相对于增加了算法的复杂性,但是,这并没有直接增加运算量,而传统的方法在增加复杂度和破译难度的同时,往往会增加加密和解密的运算量。这样算法变换的方法在增强安全性的同时并不造成运算量的明显增加。
发明内容
在本发明中先设计一些安全性比较好、运算量小、接近雪崩效应的加密小算法作为加密的部件L,在加密的过程中,总密钥一方面确定算法的结构和调用不同的L的次序和方式以及哪些L被调用,另一方面起到作为传统密钥的作用,即作为参数输入算法参与运算。这些部件可以是S盒、各种运算、各种发生器,也可以是这些的组合或者是一个小型加密算法等。
总密钥对算法结构的影响主要可以通过以下的方式体现:第一,通过密钥决定各个部件运算的顺序,第二,通过密钥决定选用哪些部件;第三,通过密钥决定算法的结构和布局。
由于各个部件接近雪崩效应,所以,这会将各种信息的泄露和线索的暴露降到最低限度。密码分析者也很难通过密文,乃至于选择的明文来确定密码算法的真正结构。
 密钥有两部分的作用,即决定算法和作为传统密钥参与运算,为了增加密钥量,同时增强算法和传统意义密钥参数的独立性,将密钥分成两部分,一部分决定算法的结构,一部分作为参数输入。增加密钥量可以增加算法的自由度和密码系统的不确定性,同时伪密钥的数量也会增加,惟一解距离会加大。这对于保障算法的安全性是有利的。
在每一轮的运算中,有些部分依然是不确定的、随机的,比如某个部分可能是a、b、c、d四个函数之一。
对于一个密码系统,一般将所有的秘密都寓于密钥中,即整个密码系统的不确定性在于密钥中,本发明中虽然算法是不确定的,但是算法在具体的情况下,在密钥已知的情况下却是确定的,这个确定的条件就是密钥。
具体依据这一方法来构造加密算法的时候,可以按照以下步骤:
一、确定加密的算法(函数),函数具有多方面的不确定性和变换形式,包括次序、选择性和其他的变换。算法的设计也考虑传统密码算法的设计原则,保证传统意义上的安全性,并且是可以惟一解密的。这些不同的选择之间得到的密文并没有可区分性,比如不能通过密文就分析确定采用的算法,如算法得到的密文都是没有冗余的,统计特征都是相似的,则不能判定其中的一些随机变换的因子具体是什么。
二、依据算法来确定总密钥的结构,原则为将不同用途的数据进行独立的分块,让算法具有最多的变换方式,同时也方便信息的提取,可以规定每一部分分块的长度。比如,一个12轮的密码算法,其中每一轮的算法都是不一样的,其顺序是可以任意排列的,则决定这一排列次序的那一部分密钥的bit数应该大于等于log212!,再比如某一个部分可能是4个函数之一,则决定这一个函数的密钥数应该不小于2bit。依据这种方法,可以设计一个决定加密算法的密钥部分的结构,然后,附加上算法的传统的密钥那一部分,即是完整的总密钥的结构。
 加密时,第一步先解析总密钥,从中提取参数;第二步通过某些参数确定具体的加密算法;第三步利用传统的密钥加密明文。
其中对于随机顺序的结构,确定各个部分顺序的时候,采用以下的方法:对于需要排序的n个部分设定一个初始顺序从1到n,将提取出来的用于确定顺序的密钥部分的那些bit,转换为十进制值Kf,进行转换确定排列顺序。对于n个部件进行排列,有n!种排列。因此首先计算Km=Kf mod(n!)+1,让其不大于n!。然后根据Km值确定排列的顺序。
解密的时候,类似地解析密钥结构,对应的可以确定解密算法,利用传统密钥解密密文。
现行的密码算法都是有许多轮的运算,均采用相对一致的结构,使得算法的结构简单、对称,并且便于运算,但是,这对于破译来说是有利的,可以将多轮重复的运算改为多轮不同的运算,这些运算具有一些类似,运算量相当的特征,但是也具有很大的差异,这些轮的运算可以是根据密钥来确定顺序的,即其顺序是不确定的。
这种加密方法可以从不同的角度来看待其优越的安全性:1)算法本身不定,密码分析的靶子都是不确定的。2)算法形式更加复杂,算法不确定使得通过已知的明文和密文逆推密钥更加困难。3)相比传统密码算法,密钥的信息量更大。现有密码算法密钥信息量增加往往导致运算量急剧增加,有时候加密运算量与密钥的长度呈指数关系。但是本方法在增加密钥量和运算量的同时,直接计算量的增加并不大,确定算法的计算量不大,并且是一次性的。
虽然算法具有以上优点,且算法更加复杂,破译无线索,但是,单纯考虑计算量并没有多大的增加。即可以在不增加多大运算量的情况下使得安全性大幅度提升。
具体实施方式
以下为一个分组密码的实施例,为了方便和简洁地描述,采用比较简短的算法,并且模仿已经为公众熟知的AES算法的结构和具体加密部件。本算法采用三重变换的算法,这三重分别采用代表性的变换,包括,根据密钥的一部分从多个函数中选取一个函数、根据密钥的一部分确定运算的函数部件的顺序、根据密钥的一部分确定结构。
本实施例是基于对分组长度和密钥长度都是128bit的密码算法,其迭代的轮数为10,在原AES算法中,除了初始轮和结束轮,每一轮均包含字节代换、行移位、列混合和密钥加运算四个环节。结束轮依次包含字节代换、行移位和密钥加运算三个环节,其次序是确定的。
算法的变换性体现在以下几点:1)在中间轮中的行移位、列混合和密钥加运算的顺序是可以任意调换的,由密钥的最前面3比特确定。2)算法中的每一轮的字节代换都是相同的随机函数,这个随机函数的两个具体的函数元素,一个与AES算法相同,即将字节看做GF(28)上的元素,取自己的乘法逆元,如果是00000000则映射到自己,再做一个固定的GF(28)上的可逆仿射变换,即完成字节代换;另外一个则是字节的每一个bit反转,即将0替换为1,1替换为0后的字节进行,接着类似前面的采用相同的乘法逆元代换和仿射变换。字节代换的随机性由密钥中的1bit确定到底是采用两个函数中的哪个,比如如果这一bit是0则不反转,是1则反转。3)初始轮的结构是可变的,初始轮的变换有两种变换情形:第一种是仅有明文与本轮的轮密钥的异或运算,第二种是首先将明文与本轮的轮密钥进行异或运算后,采用行移位进行变换。行移位与其他轮的行移位是相同的,即采用AES的行移位方式。初始轮的两种方式也是由密钥的1个bit确定,这一bit为0即不附加行移位,如果是1则采用行移位。
除了以上具有变换性的部分,本实例的诸如行移位、列混合和密钥加运算的方法均与AES中对应的方法一样。
本实例的密钥的结构为前128bit为密码算法的密钥,后面的一个字节中的前3bit确定中间轮的行移位、列混合和密钥加运算的顺序,具体方法为将3bit值变成十进制x,计算xmod3!,用这个值对应6种排列次序。第4bit确定字节代换的函数,第5bit确定初始轮的结构。对前面128bit密钥采用AES算法相同的密钥,由这些密钥进行密钥的扩展,从扩展密钥中依次取128bit的密钥,分别作为每一轮的轮密钥,参与上面的轮密钥加运算。
下面是另外一个基于修改AES的实施例:将AES的9个中间轮改为不同的形式,分别称为A、B、C、D、E、F、G、H、I轮,它们均有字节代换(S盒)、行移位、列混合和密钥加运算,但是这些内容每一轮都不一样。这9轮的次序由19bit的密钥确定,并且其中A轮的S盒有两种随机的形式,由1bit的密钥确定,C轮中的行移位的循环移位的规则有四种,由2bit的密钥确定, F轮中列混合的运算有四种函数,由2bit的密钥确定,其他的轮是固定不变的。密钥结构上:规定密钥的前128bit是传统的密钥,作为密钥扩展,产生轮密钥,而其后的19bit的十进制值取模9!后加1,用于决定中间轮的次序,随后1bit决定A轮的形式,紧接着的2bit决定C轮的形式,最后的2bit决定F轮的形式。本实施例的描述只详细介绍其变换方面的随机性,而其他的方面不做赘述。

Claims (5)

1.一种基于算法变换思想的加密方法,其特征为:密钥未知时,密码算法本身是变换的、不确定的,它由密钥中的一部分数据确定。
2.一种如权利要求1所述的基于算法变换思想的加密方法,其特征为:密码算法中的一些运算部件是随机的,包括:算法的部件是n个函数或者运算方法之一,算法的一些结构是不确定的,或者一些运算部件的顺序是可变的,它们的这些不确定性均由密钥中的一部分数据确定。
3.一种如权利要求2所述的基于算法变换思想的加密方法,其特征为:确定算法的不同随机和变换性的密钥数据是相互独立的。
4.一种如权利要求2所述的基于算法变换思想的加密方法,其特征为密码算法的构造步骤为,先确定加密的算法(函数),函数具有多方面的不确定性和变换形式,算法的设计也考虑传统密码算法的设计原则,保证传统意义上的安全性,并且是可以惟一解密的;其次依据算法来确定总密钥的结构,将不同用途的数据进行独立的分块,可以规定每一部分分块的长度,依据各个部分的长度决定加密算法的密钥部分的结构,然后,附加上算法的传统的密钥那一部分,即是完整的总密钥的结构。
5.一种如权利要求4所述的基于算法变换思想的加密方法,其特征为:加密时先根据密钥的结构提取密钥信息,根据密钥确定算法的具体形式,然后再用确定的算法和密钥进行加密。
CN2012100009401A 2012-01-04 2012-01-04 一种基于算法变换思想的加密方法 Pending CN102404123A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012100009401A CN102404123A (zh) 2012-01-04 2012-01-04 一种基于算法变换思想的加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012100009401A CN102404123A (zh) 2012-01-04 2012-01-04 一种基于算法变换思想的加密方法

Publications (1)

Publication Number Publication Date
CN102404123A true CN102404123A (zh) 2012-04-04

Family

ID=45885944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012100009401A Pending CN102404123A (zh) 2012-01-04 2012-01-04 一种基于算法变换思想的加密方法

Country Status (1)

Country Link
CN (1) CN102404123A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104393991A (zh) * 2014-12-03 2015-03-04 上海众人科技有限公司 一种算法重构装置及方法
CN104410498A (zh) * 2014-12-03 2015-03-11 上海众人科技有限公司 一种动态口令认证方法及其系统
CN108124182A (zh) * 2016-11-28 2018-06-05 深圳市中兴微电子技术有限公司 一种多路解复用方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1445681A (zh) * 2003-05-01 2003-10-01 南京邮电学院 高安全等级对称密钥算法的加密、解密方法及加密器
CN101459510A (zh) * 2007-12-14 2009-06-17 华为技术有限公司 实时传输数据的加密算法的实现方法及装置
CN102170350A (zh) * 2011-04-11 2011-08-31 桂林电子科技大学 具有误导功能的多重不确定加密系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1445681A (zh) * 2003-05-01 2003-10-01 南京邮电学院 高安全等级对称密钥算法的加密、解密方法及加密器
CN101459510A (zh) * 2007-12-14 2009-06-17 华为技术有限公司 实时传输数据的加密算法的实现方法及装置
CN102170350A (zh) * 2011-04-11 2011-08-31 桂林电子科技大学 具有误导功能的多重不确定加密系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104393991A (zh) * 2014-12-03 2015-03-04 上海众人科技有限公司 一种算法重构装置及方法
CN104410498A (zh) * 2014-12-03 2015-03-11 上海众人科技有限公司 一种动态口令认证方法及其系统
WO2016086572A1 (zh) * 2014-12-03 2016-06-09 上海众人网络安全技术有限公司 一种算法重构装置及方法
CN104393991B (zh) * 2014-12-03 2018-02-23 上海众人网络安全技术有限公司 一种算法重构装置及方法
CN104410498B (zh) * 2014-12-03 2018-04-03 上海众人网络安全技术有限公司 一种动态口令认证方法及其系统
CN108124182A (zh) * 2016-11-28 2018-06-05 深圳市中兴微电子技术有限公司 一种多路解复用方法及装置

Similar Documents

Publication Publication Date Title
CN101882993B (zh) 密码系统及密码方法
US9031228B2 (en) Systems and methods for implementing block cipher algorithms on attacker-controlled systems
CN102571330B (zh) 一种基于随机函数的分组加密算法的构造方法
US8712036B2 (en) System for encrypting and decrypting a plaintext message with authentication
US10320554B1 (en) Differential power analysis resistant encryption and decryption functions
CA2893067C (en) Cryptographic method for securely exchanging messages and device and system for implementing this method
CN102124695B (zh) 用于生成基于密码的消息认证码的方法
CN105051677A (zh) 用共享随机比特进行掩码
CN111492616A (zh) 用于基于晶格的密码学的可配置设备
CN108352981A (zh) 被布置用于计算目标块加密的密码设备
CN105871550A (zh) 一种实现数字信号加密传输的系统
CN103607276B (zh) 基于随机函数的抗已知明文密文对攻击的分组加密方法
JP2011512562A (ja) アクセス及び通信に関するデータのランダム暗号化及び復号化方法
CN105591734A (zh) 一种基于查表的白盒密码非线性编码保护方法
Ding et al. Related key chosen IV attack on Grain-128a stream cipher
CN103516513A (zh) 基于随机函数的抗已知明文密文对攻击的分组加密方法
CN102404123A (zh) 一种基于算法变换思想的加密方法
CN108650072B (zh) 一种支持多种对称密码算法的芯片的抗攻击电路实现方法
KR100667189B1 (ko) 휴대 기기를 위한 aes 암호화 장치 및 방법
Kumar et al. A comparative analysis of encryption algorithms for better utilization
Siddesh et al. AN EFFICIENT VLSI ARCHITECTURE FOR AES AND its FPGA IMPLEMENTATION
US20160379527A1 (en) Skc-jju256 encryption using knights tour solutions as the main key to create a cryptosystem
Verma et al. Analysis of comparison between Single Encryption(Advance Encryption Scheme (AES)) and Multicrypt Encryption Scheme
Hattab et al. Developing the Complexity and Security of the Twofish Algorithm Through a New Key Scheduling Design
Chattamvelli A Symmetric Scheme for Securing Data in Cyber-Physical Systems/IoT Sensor-Based Systems based on AES and SHA256

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120404