CN106100826A - 一种数据变换方法和装置 - Google Patents

一种数据变换方法和装置 Download PDF

Info

Publication number
CN106100826A
CN106100826A CN201610404904.XA CN201610404904A CN106100826A CN 106100826 A CN106100826 A CN 106100826A CN 201610404904 A CN201610404904 A CN 201610404904A CN 106100826 A CN106100826 A CN 106100826A
Authority
CN
China
Prior art keywords
data
linear
box
cryptographic operation
displacement
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.)
Granted
Application number
CN201610404904.XA
Other languages
English (en)
Other versions
CN106100826B (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.)
Datang Microelectronics Technology Co Ltd
Datang Semiconductor Design Co Ltd
Original Assignee
Datang Microelectronics Technology Co Ltd
Datang Semiconductor Design Co Ltd
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 Datang Microelectronics Technology Co Ltd, Datang Semiconductor Design Co Ltd filed Critical Datang Microelectronics Technology Co Ltd
Priority to CN201610404904.XA priority Critical patent/CN106100826B/zh
Publication of CN106100826A publication Critical patent/CN106100826A/zh
Application granted granted Critical
Publication of CN106100826B publication Critical patent/CN106100826B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开一种数据变换方法和装置,该方法包括:根据预定执行次数,重复执行第一加密操作;其中,将原始数据作为第一次第一加密操作的输入数据,将第i次执行第一加密操作的输出数据,作为执行第i+1次第一加密操作的输入数据;并将最后一次第一加密操作的输出数据作为原始数据对应的加密数据;其中,i为小于所述预定执行次数的正整数;输出所述原始数据对应的加密数据。通过本发明的方案,提供了一种加密运算方法,通过线性置换和非线性置换的结合,以及多次运算的设置,保证了加密算法的安全性,此外,可以对任意多位的数据进行加密和解密变换,因此,可以对低于128位或者低于64位的任意位数进行变换,不需要对不足的部分填充0,在实现UID的加密的情况下,保证密文UID的唯一性。

Description

一种数据变换方法和装置
技术领域
本发明涉及密码算法技术领域,尤指一种数据变换方法和装置。
背景技术
UID(User Identity,用户身份标识)一般是一串10~30位长度不等的数字。UID在银行卡等应用中具有重要作用,每张卡片都具有唯一的UID。
卡片发行方在生成UID时,通常会采用固定的规律,例如将一些与卡片生产制造信息、用户身份信息、卡片属性等信息包含在UID中,使每张卡片的UID具有唯一性。但是,有时候发卡方并不希望将这些信息对所有能够读取到UID的人群公开,这就需要采用一种加密算法,对UID进行加密处理。
现有的密码算法,例如DES、AES,以及国密SM4算法等,对明文数据的长度都有要求,例如DES算法要求输入长度为64位,AES要求输入长度为128位等。
由于UID不满足这些算法的数据长度,不能直接使用这些算法。如果非要使用这些算法,则必须对明文UID进行填充,例如不足的部分填充0,这样做尽管实现了UID的加密,但由于加密后得到的数据长度大于明文UID,因此必须对密文UID进行截取,这就不能保证密文UID的唯一性。
发明内容
为了解决上述问题,本发明提出了一种数据变换方法和装置,能够实现UID的加密运算。
为了达到上述目的,本发明提出了一种数据变换方法,所述方法包括:
根据预定执行次数,重复执行第一加密操作;其中,将原始数据作为第一次第一加密操作的输入数据,将第i次执行第一加密操作的输出数据,作为执行第i+1次第一加密操作的输入数据;并将最后一次第一加密操作的输出数据作为原始数据对应的加密数据;其中,i为小于所述预定执行次数的正整数;
输出所述原始数据对应的加密数据。
优选地,所述第一加密操作包括:
对本次第一加密操作的输入数据执行第一线性置换;
对第一线性置换的置换结果执行第一非线性置换,得到本次第一加密操作的输出数据。
优选地,所述执行第一线性置换包括:
根据第一置换数组的各个元素,对所述本次第一加密操作的输入数据中每一位数据进行置换,得到本次第一线性置换的置换结果,包括:
在元素的值为i1时,将所述输入数据中第i1位的数值置换到第j1位,其中,i1为大于0且小于N的正整数,j1为值为i1的元素在第一置换数组中的位置;
其中,第一置换数组包括N个元素,各个元素均为大于0且小于N的正整数,且各个元素的大小均不相同;N为原始数据的位数。
优选地,所述执行第一非线性置换包括:
根据第一映射盒子对第一非线性置换的置换结果进行置换,包括:
通过基本位数为i3的第一映射盒子,对数位为i3的输入数据进行置换;其中,将输入数据的前j3位作为行数,将输入数据的后j4位作为列数,在第一映射盒子中通过上述行数和列数查找对应的数值,并将查找的结果作为上述本次第一加密操作的输出数据;其中,第一映射盒子的基本位数为i3,设置第一映射盒子的行数为2的j3次幂,第一映射盒子的列数为2的j4次幂,j3+j4=i3。
优选地,在所述将最后一次第一加密操作的输出数据作为原始数据对应的加密数据之后,还包括:
根据所述预定执行次数,重复执行第一解密操作;其中,将加密数据作为第一次第一解密操作的输入数据,将第i次执行第一解密操作的输出数据,作为执行第i+1次第一解密操作的输入数据;并将最后一次第一解密操作的输出数据作为加密数据对应的原始数据;其中,i为小于所述预定执行次数的正整数;
输出所述加密数据对应的原始数据。
优选地,所述执行第一解密操作包括:
对本次第一解密操作的输入数据执行第二非线性置换;其中,所述第二非线性置换为第一非线性置换的逆变换;
对第二非线性置换的置换结果执行第二线性置换,得到本次第一解密操作的输出数据;其中,所述第二线性置换为第一线性置换的逆变换。
优选地,所述执行第二线性置换包括:
根据第二置换数组的各个元素,对所述本次第二线性置换的输入数据中每一位数据进行置换,得到本次第二线性置换的置换结果,包括:
在元素的值为i1时,将所述输入数据中第i1位的数值置换到第j1位,其中,i1为大于0且小于N的正整数,j1为值为i1的元素在第二置换数组中的位置;
其中,第二置换数组包括N个元素,各个元素均为大于且0小于N的正整数,且各个元素的大小均不相同;N为原始数据对应的位数;其中,所述第二置换数组为第一置换数组对应的逆运算数组。
优选地,所述执行第二非线性置换包括:
根据第二映射盒子对第二非线性置换的置换结果进行置换,包括:
通过基本位数为i3的第二映射盒子,对数位为i3的输入数据进行置换;其中,将输入数据的前j3位作为行数,将输入数据的后j4位作为列数,在第二映射盒子中通过上述行数和列数查找对应的数值,并将查找的结果作为上述本次第一解密操作的输出数据;
其中,第二映射盒子的基本位数i3,设置第二映射盒子的行数为2的j3次幂,第二映射盒子的列数为2的j4次幂,j3+j4=i3;其中,所述第二映射盒子第一映射盒子对应的逆运算映射盒子。
为了达到上述目的,本发明还提出了一种数据变换装置,所述装置包括:
加密单元,用于对原始数据执行第一加密操作;所述执行第一加密操作包括:根据预定执行次数,重复执行所述第一加密操作;其中,将原始数据作为第一次第一加密操作的输入数据,将第i次执行第一加密操作的输出数据,作为执行第i+1次第一加密操作的输入数据;并将最后一次第一加密操作的输出数据作为原始数据对应的加密数据;其中,i为小于所述预定执行次数的正整数;
输出单元,用于输出所述原始数据对应的加密数据。
优选地,所述加密单元包括:
第一置换模块,用于对本次第一加密操作的输入数据执行第一线性置换;
第二置换模块,用于对第一线性置换的置换结果执行第一非线性置换,得到本次第一加密操作的输出数据。
优选地,所述第一置换模块执行第一线性置换包括:
根据第一置换数组的各个元素,对所述本次第一加密操作的输入数据中每一位数据进行置换,得到本次第一线性置换的置换结果,包括:
在元素的值为i1时,将所述输入数据中第i1位的数值置换到第j1位,其中,i1为大于0且小于N的正整数,j1为值为i1的元素在第一置换数组中的位置;
其中,第一置换数组包括N个元素,各个元素均为大于0且小于N的正整数,且各个元素的大小均不相同;N为原始数据的位数。
优选地,所述第二置换模块执行第一非线性置换包括:
根据第一映射盒子对第一非线性置换的置换结果进行置换,包括:
通过基本位数为i3的第一映射盒子,对数位为i3的输入数据进行置换;其中,将输入数据的前j3位作为行数,将输入数据的后j4位作为列数,在第一映射盒子中通过上述行数和列数查找对应的数值,并将查找的结果作为上述本次第一加密操作的输出数据;其中,第一映射盒子的基本位数为i3,设置第一映射盒子的行数为2的j3次幂,第一映射盒子的列数为2的j4次幂,j3+j4=i3。
优选地,所述装置还包括:
解密单元,用于对加密数据执行第一解密操作,所述执行第一解密操作包括:根据预定执行次数,重复执行所述第一解密操作;其中,将加密数据作为第一次第一解密操作的输入数据,将第i次执行第一解密操作的输出数据,作为执行第i+1次第一解密操作的输入数据;并将最后一次第一解密操作的输出数据作为加密数据对应的原始数据;其中,i为小于所述预定执行次数的正整数;
所述输出单元还用于输出所述加密数据对应的原始数据。
优选地,所述解密单元包括:
第二逆置换模块,用于对本次第一解密操作的输入数据执行第二非线性置换;其中,所述第二非线性置换为第一非线性置换的逆变换;
第一逆置换模块,用于对第二非线性置换的置换结果执行第二线性置换,得到本次第一解密操作的输出数据;其中,所述第二线性置换为第一线性置换的逆变换。
优选地,所述第一逆置换模块执行第二线性置换包括
根据第二置换数组的各个元素,对所述本次第二线性置换的输入数据中每一位数据进行置换,得到本次第二线性置换的置换结果,包括:
在元素的值为i1时,将所述输入数据中第i1位的数值置换到第j1位,其中,i1为大于0且小于N的正整数,j1为值为i1的元素在第二置换数组中的位置;
其中,第二置换数组包括N个元素,各个元素均为大于且0小于N的正整数,且各个元素的大小均不相同;N为原始数据对应的位数;其中,所述第二置换数组为第一置换数组对应的逆运算数组。
优选地,所述第二逆置换模块执行第二非线性置换包括:
根据第二映射盒子对第二非线性置换的置换结果进行置换,包括:
通过基本位数为i3的第二映射盒子,对数位为i3的输入数据进行置换;其中,将输入数据的前j3位作为行数,将输入数据的后j4位作为列数,在第二映射盒子中通过上述行数和列数查找对应的数值,并将查找的结果作为上述本次第一解密操作的输出数据;
其中,第二映射盒子的基本位数i3,设置第二映射盒子的行数为2的j3次幂,第二映射盒子的列数为2的j4次幂,j3+j4=i3;其中,所述第二映射盒子第一映射盒子对应的逆运算映射盒子。
与现有技术相比,本发明提供的技术方案包括:根据预定执行次数,重复执行第一加密操作;其中,将原始数据作为第一次第一加密操作的输入数据,将第i次执行第一加密操作的输出数据,作为执行第i+1次第一加密操作的输入数据;并将最后一次第一加密操作的输出数据作为原始数据对应的加密数据;其中,i为小于所述预定执行次数的正整数;输出所述原始数据对应的加密数据。通过本发明的方案,提供了一种加密运算方法,通过线性置换和非线性置换的结合,以及多次运算的设置,保证了加密算法的安全性,此外,可以对任意多位的数据进行加密和解密变换,因此,提供了一种可以对低于128位或者低于64位的数据进行加密变换的数据变换方法,并且,可以对低于128位或者低于64位的任意位数进行变换,不需要对不足的部分填充0,在实现UID的加密的情况下,保证密文UID的唯一性。
附图说明
下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
图1为本发明提出的一种数据变换方法的示意图;
图2为本发明提出的第一加密操作的示意图;
图3为示例性的对原始数据执行第一加密操作的示意图;
图4为本发明提出的另一种数据变换方法的示意图;
图5为本发明提出的一种数据变换装置的示意图。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的各种方式可以相互组合。
参见图1,本发明提出了一种数据变换方法,所述方法包括:
步骤110,对原始数据执行加密变换;
其中,所述对原始数据执行加密变换包括:根据预定执行次数,重复执行第一加密操作;其中,将原始数据作为第一次第一加密操作的输入数据,将第i次执行第一加密操作的输出数据,作为执行第i+1次第一加密操作的输入数据;并将最后一次第一加密操作的输出数据作为原始数据对应的加密数据;其中,i为小于所述预定执行次数的正整数;
步骤120,输出所述原始数据对应的加密数据。
本发明实施例中,第一加密操作包括至少一次线性置换和至少一次非线性置换,下面的示例中,以第一加密操作包括一次线性置换和一次非线性置换为例进行说明。线性置换通过一个一维数组对输入的数据进行置换,非线性置换通过一个二维数组对输入的数据进行置换,其中,一维数组的元素个数与原始数据的位数相同。
本发明实施例中,步骤110中,第一加密操作包括第一线性置换和第一非线性置换两个部分;
具体地,第一加密操作包括:
步骤210,对本次第一加密操作的输入数据执行第一线性置换;
步骤220,对第一线性置换的置换结果执行第一非线性置换;
步骤210中,在第一线性置换中,根据第一置换数组对第一线性置换的输入数据进行置换。第一置换数组由数字的位索引构成,第一置换数组包括N个元素,各个元素均为大于0小于N的正整数,且各个元素的大小均不相同。如果元素大小为i1,i1为大于0小于N的正整数,表示将本次变换的输入数据中第i1位的数值置换到第j1位,其中,其中,j1为元素在第一置换数组中的位置。其中,N为原始数据对应的位数。
例如,一个示例性的第一置换数组如下所示:
[16,7,20,21,17,12,1,15,
23,5,18,0,10,2,8,24,
14,3,9,22,13,6,25,11,
4,19]
根据上述第一置换数组,第1个元素的大小为16,表示输入数据的第16位变成置换结果的第1位,第2个元素的大小为7,表示输入数据的第7位变成置换结果的第2位,根据第一置换数组各个元素指示的位索引,分别获取置换结果中的各个数位的数值,从而得到本次第一线性置换的置换结果。
步骤220中,所述第一非线性置换包括:根据第一映射盒子(S盒)对第一非线性置换的置换结果进行置换。第一映射盒子包括,
设置第一映射盒子的基本位数i3,设置第一映射盒子的行数为2的j3次幂,第一映射盒子的列数为2的j4次幂,j3+j4=i3,通过基本位数为i3的第一映射盒子,可以对数位为i3的输入数据进行置换,例如,i3为5时,可以同时对5为数据进行置换。
对于i3位的输入数据,将输入数据的前j3位作为行数,将输入数据的后j4位作为列数,在第一映射盒子中通过上述行数和列数查找对应的数值,并将查找的结果作为上述i3位输入数据对应的输出数据;
以i3位数据为单位,对第一非线性置换的输入数据依次通过第一映射盒子执行对应的变换,对于不足i3位的数据,保持不变,通过上述方法,得到第一非线性置换之后的输出数据。
如图3所示,为对原始数据执行第一加密操作的示意图,例如,第一非线性置换的输入数据为26位数据,i3为5,则第一非线性置换通过5次5进5出(输入长度为5位,输出长度也为5位)的S盒变换来实现,可以将26位中的第1位保持不变,其他25位为S盒变换后的结果,也可以将26位中的第26位保持不变,其他25位为S盒变换后的结果。
下面结合一个具体的示例进行说明。
例如,一个示例性的第一映射盒子如下所示,其中,i3设置为5,
以输入数据25为例,对应的二进制表示为11001,以其中的前三位作为行号,也后两位作为列号,从S盒中可以查询得到输出结果为10。输入数据的第1位,再连接5个S盒的输出结果,就构成了非线性置换的输出数据。
本发明实施例中,步骤120中,预定执行次数可以设置为10,也就是说,对原始数据执行10次第一加密操作,从而得到原始数据对应的加密数据。
具体地,整个加密流程由10轮运算完成,每一轮运算包含一次第一线性置换和一次第一非线性置换。加密流程示例性的伪代码如下:
参见图4,本发明还提出了一种数据变换方法,在图1所示的数据变换方法的基础上,所述方法包括:
步骤130,对加密数据执行解密变换;
所述对加密数据执行解密变换括:根据预定执行次数,重复执行第一解密操作;
其中,将加密数据作为第一次第一解密操作的输入数据,将第i次执行第一解密操作的输出数据,作为执行第i+1次第一解密操作的输入数据;并将最后一次第一解密操作的输出数据作为加密数据对应的原始数据;其中,i为小于所述预定执行次数的正整数;
步骤140,输出所述加密数据对应的原始数据。
本发明实施例中,第一解密操作包括至少一次线性置换和至少一次非线性置换,下面的示例中,以第一加密操作包括一次线性置换和一次非线性置换为例进行说明。
本发明实施例中,第一解密操作包括第二线性置换和第二非线性置换两个部分;
具体地,第一解密操作包括:
步骤310,对第二线性置换的置换结果执行第二非线性置换;
步骤320,对本次第一解密操作的输入数据执行第二线性置换;
步骤310中,所述第二非线性置换包括:根据第二映射盒子(S盒)对第二非线性置换的输入数据进行置换。第二映射盒子包括,
设置第二映射盒子的基本位数i3,设置行数为2的j3次幂,列数为2的j4次幂,j3+j4=i3,通过基本位数为i3的第二映射盒子,可以对数位为i3的数据进行置换,例如,i3为5时,可以同时对5为数据进行置换。
对于i3位的输入数据,将输入数据的前j3位作为行数,将输入数据的后j4位作为列数,在第二映射盒子中通过上述行数和列数查找对应的数值,并将查找的结果作为上述i3位输入数据对应的输出数据;
以i3位数据为单位,对第二非线性置换的输入数据依次通过第二映射盒子执行对应的变换,对于不足i3位的数据,保持不变,通过上述方法,得到第二非线性置换之后的输出数据。
例如,第二非线性置换的输入数据为26位数据,i3为5,则第二非线性置换通过5次5进5出(输入长度为5位,输出长度也为5位)的S盒变换来实现,可以将26位中的第1位保持不变,其他25位为S盒变换后的结果,也可以将26位中的第26位保持不变,其他25位为S盒变换后的结果。
下面结合一个具体的示例进行说明。
例如,一个示例性的第二映射盒子如下所示,其中,i3设置为5,
以输入数据25为例,对应的二进制表示为11001,以其中的前三位作为行号,也后两位作为列号,从S盒中可以查询得到输出结果为10。输入数据的第1位,再连接5个S盒的输出结果,就构成了非线性置换的输出数据。
步骤320中,在第二线性置换中,根据第二置换数组对第二线性置换的输入数据进行置换。第二置换数组由数字的位索引构成,第二置换数组包括N个元素,各个元素均为大于0小于N的正整数,且各个元素的大小均不相同。如果元素大小为i1,i1为大于0小于N的正整数,表示将本次变换的输入数据中第i1位的数值置换到第j1位,其中,其中,j1为元素在第二置换数组中的位置。
例如,一个示例性的第二置换数组如下所示:
[11,6,13,17,24,9,21,1,
14,18,,12,23,5,20,16,7,
0,4,10,25,2,3,19,8,
15,22]
根据上述第二置换数组,第1个元素的大小为11,表示输入数据的第11位变成置换结果的第1位,第2个元素的大小为6,表示输入数据的第6位变成置换结果的第2位,根据第二置换数组各个元素指示的位索引,分别获取置换结果中的各个数位的数值,从而得到本次第二线性置换的置换结果。
本发明实施例中,第二置换数组为第一置换数组的逆运算数组。下面结合具体的示例进行说明。
第一置换数组为{k[0],k[1],…,k[N]};
第一置换数组对应的第二置换数组为{ik[0],ik[1],…,ik[N]};
其中,第二置换数组第i个元素ik[i]的大小为j,其中j为k[j]为i的元素在第一置换数组中的位置;
也就是说
如果k[j]=i;那么ik[i]=j;
根据上述对应关系,可以根据第一置换数组中各个元素的数值,得到第二置换数组中各个元素的数值。
例如,一组原始数据为{a0,a1,…,aN};
通过第一置换数组对上述原始数据进行第一线性置换,得到变换后的数据为{ak0,ak1,…,akN};
通过第二置换数组对上述变换后的数据进行第一线性置换,得到变换后的数据为{a0,a1,…,aN}。
下面再给出一个具体的例子,例如,第一置换数组为{3,1,0,2}。一组原始数据{a0,a1,a2,a3}经过线性变换后,该四位数变成{a3,a1,a0,a2};第一置换数组对应的第二置换数组为{2,1,3,0},通过第一置换数组,{a3,a1,a0,a2}被置换为{a0,a1,a2,a3}。
本发明实施例中,第二映射盒子为第一映射盒子的逆运算数组。下面结合具体的示例进行说明。第一映射盒子和第二映射盒子实质为二维数组;
第一映射盒子为:
第一映射盒子的置换关系是0->2,1->3,2->1,3->0;即第一映射盒子的输入为0时,输出为2;输入为1时,输出为3,等等。
对应的,第二映射盒子需要具有置换关系为:2->0,3->1,1->2,0->3;即第一映射盒子的输入为2时,输出为0;输入为3时,输出为1,等等。
通过上述第二映射盒子需要具有的置换关系,可以得到第二映射盒子为:
0 1
0 3 2
1 0 1
本发明实施例中,步骤140中,预定执行次数可以设置为10,也就是说,对加密数据执行10次第一解密操作,其中每一次的输出数据作为下一次第一解密操作的输入数据,从而得到加密数据对应的原始数据。
基于与上述实施例相同或相似的构思,本发明实施例还提供一种数据变换装置,参见图5,本发明提出的一种数据变换装置包括:
加密单元10,用于对原始数据执行第一加密操作;所述执行第一加密操作包括:根据预定执行次数,重复执行所述第一加密操作;其中,将原始数据作为第一次第一加密操作的输入数据,将第i次执行第一加密操作的输出数据,作为执行第i+1次第一加密操作的输入数据;并将最后一次第一加密操作的输出数据作为原始数据对应的加密数据;其中,i为小于所述预定执行次数的正整数;
输出单元20,用于输出所述原始数据对应的加密数据。
本发明实施例中,所述加密单元10包括:
第一置换模块11,用于对本次第一加密操作的输入数据执行第一线性置换;
第二置换模块12,用于对第一线性置换的置换结果执行第一非线性置换,得到本次第一加密操作的输出数据。
本发明实施例中,所述第一置换模块11执行第一线性置换包括:
根据第一置换数组的各个元素,对所述本次第一加密操作的输入数据中每一位数据进行置换,得到本次第一线性置换的置换结果,包括:
在元素的值为i1时,将所述输入数据中第i1位的数值置换到第j1位,其中,i1为大于0且小于N的正整数,j1为值为i1的元素在第一置换数组中的位置;
其中,第一置换数组包括N个元素,各个元素均为大于0且小于N的正整数,且各个元素的大小均不相同;N为原始数据的位数。
本发明实施例中,所述第二置换模块12执行第一非线性置换包括:
根据第一映射盒子对第一非线性置换的置换结果进行置换,包括:
通过基本位数为i3的第一映射盒子,对数位为i3的输入数据进行置换;其中,将输入数据的前j3位作为行数,将输入数据的后j4位作为列数,在第一映射盒子中通过上述行数和列数查找对应的数值,并将查找的结果作为上述本次第一加密操作的输出数据;其中,第一映射盒子的基本位数为i3,设置第一映射盒子的行数为2的j3次幂,第一映射盒子的列数为2的j4次幂,j3+j4=i3。
本发明实施例中,所述装置还包括:
解密单元30,用于对加密数据执行第一解密操作,所述执行第一解密操作包括:根据预定执行次数,重复执行所述第一解密操作;其中,将加密数据作为第一次第一解密操作的输入数据,将第i次执行第一解密操作的输出数据,作为执行第i+1次第一解密操作的输入数据;并将最后一次第一解密操作的输出数据作为加密数据对应的原始数据;其中,i为小于所述预定执行次数的正整数;
所述输出单元20还用于输出所述加密数据对应的原始数据。
本发明实施例中,所述解密单元30包括:
第二逆置换模块32,用于对本次第一解密操作的输入数据执行第二非线性置换;其中,所述第二非线性置换为第一非线性置换的逆变换;
第一逆置换模块31,用于对第二非线性置换的置换结果执行第二线性置换,得到本次第一解密操作的输出数据;其中,所述第二线性置换为第一线性置换的逆变换。
本发明实施例中,所述第一逆置换模块31执行第二线性置换包括
根据第二置换数组的各个元素,对所述本次第二线性置换的输入数据中每一位数据进行置换,得到本次第二线性置换的置换结果,包括:
在元素的值为i1时,将所述输入数据中第i1位的数值置换到第j1位,其中,i1为大于0且小于N的正整数,j1为值为i1的元素在第二置换数组中的位置;
其中,第二置换数组包括N个元素,各个元素均为大于且0小于N的正整数,且各个元素的大小均不相同;N为原始数据对应的位数;其中,所述第二置换数组为第一置换数组对应的逆运算数组。
本发明实施例中,所述第二逆置换模块32执行第二非线性置换包括:
根据第二映射盒子对第二非线性置换的置换结果进行置换,包括:
通过基本位数为i3的第二映射盒子,对数位为i3的输入数据进行置换;其中,将输入数据的前j3位作为行数,将输入数据的后j4位作为列数,在第二映射盒子中通过上述行数和列数查找对应的数值,并将查找的结果作为上述本次第一解密操作的输出数据;
其中,第二映射盒子的基本位数i3,设置第二映射盒子的行数为2的j3次幂,第二映射盒子的列数为2的j4次幂,j3+j4=i3;其中,所述第二映射盒子第一映射盒子对应的逆运算映射盒子。
需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。

Claims (16)

1.一种数据变换方法,其特征在于,所述方法包括:
根据预定执行次数,重复执行第一加密操作;其中,将原始数据作为第一次第一加密操作的输入数据,将第i次执行第一加密操作的输出数据,作为执行第i+1次第一加密操作的输入数据;并将最后一次第一加密操作的输出数据作为原始数据对应的加密数据;其中,i为小于所述预定执行次数的正整数;
输出所述原始数据对应的加密数据。
2.根据权利要求1所述的数据变换方法,其特征在于,所述第一加密操作包括:
对本次第一加密操作的输入数据执行第一线性置换;
对第一线性置换的置换结果执行第一非线性置换,得到本次第一加密操作的输出数据。
3.根据权利要求2所述的数据变换方法,其特征在于,所述执行第一线性置换包括:
根据第一置换数组的各个元素,对所述本次第一加密操作的输入数据中每一位数据进行置换,得到本次第一线性置换的置换结果,包括:
在元素的值为i1时,将所述输入数据中第i1位的数值置换到第j1位,其中,i1为大于0且小于N的正整数,j1为值为i1的元素在第一置换数组中的位置;
其中,第一置换数组包括N个元素,各个元素均为大于0且小于N的正整数,且各个元素的大小均不相同;N为原始数据的位数。
4.根据权利要求2所述的数据变换方法,其特征在于,所述执行第一非线性置换包括:
根据第一映射盒子对第一非线性置换的置换结果进行置换,包括:
通过基本位数为i3的第一映射盒子,对数位为i3的输入数据进行置换;其中,将输入数据的前j3位作为行数,将输入数据的后j4位作为列数,在第一映射盒子中通过上述行数和列数查找对应的数值,并将查找的结果作为上述本次第一加密操作的输出数据;其中,第一映射盒子的基本位数为i3,设置第一映射盒子的行数为2的j3次幂,第一映射盒子的列数为2的j4次幂,j3+j4=i3。
5.根据权利要求1所述的数据变换方法,其特征在于,在所述将最后一次第一加密操作的输出数据作为原始数据对应的加密数据之后,还包括:
根据所述预定执行次数,重复执行第一解密操作;其中,将加密数据作为第一次第一解密操作的输入数据,将第i次执行第一解密操作的输出数据,作为执行第i+1次第一解密操作的输入数据;并将最后一次第一解密操作的输出数据作为加密数据对应的原始数据;其中,i为小于所述预定执行次数的正整数;
输出所述加密数据对应的原始数据。
6.根据权利要求5所述的数据变换方法,其特征在于,所述执行第一解密操作包括:
对本次第一解密操作的输入数据执行第二非线性置换;其中,所述第二非线性置换为第一非线性置换的逆变换;
对第二非线性置换的置换结果执行第二线性置换,得到本次第一解密操作的输出数据;其中,所述第二线性置换为第一线性置换的逆变换。
7.根据权利要求6所述的数据变换方法,其特征在于,所述执行第二线性置换包括:
根据第二置换数组的各个元素,对所述本次第二线性置换的输入数据中每一位数据进行置换,得到本次第二线性置换的置换结果,包括:
在元素的值为i1时,将所述输入数据中第i1位的数值置换到第j1位,其中,i1为大于0且小于N的正整数,j1为值为i1的元素在第二置换数组中的位置;
其中,第二置换数组包括N个元素,各个元素均为大于且0小于N的正整数,且各个元素的大小均不相同;N为原始数据对应的位数;其中,所述第二置换数组为第一置换数组对应的逆运算数组。
8.根据权利要求6所述的数据变换方法,其特征在于,所述执行第二非线性置换包括:
根据第二映射盒子对第二非线性置换的置换结果进行置换,包括:
通过基本位数为i3的第二映射盒子,对数位为i3的输入数据进行置换;其中,将输入数据的前j3位作为行数,将输入数据的后j4位作为列数,在第二映射盒子中通过上述行数和列数查找对应的数值,并将查找的结果作为上述本次第一解密操作的输出数据;
其中,第二映射盒子的基本位数i3,设置第二映射盒子的行数为2的j3次幂,第二映射盒子的列数为2的j4次幂,j3+j4=i3;其中,所述第二映射盒子第一映射盒子对应的逆运算映射盒子。
9.一种数据变换装置,其特征在于,所述装置包括:
加密单元,用于对原始数据执行第一加密操作;所述执行第一加密操作包括:根据预定执行次数,重复执行所述第一加密操作;其中,将原始数据作为第一次第一加密操作的输入数据,将第i次执行第一加密操作的输出数据,作为执行第i+1次第一加密操作的输入数据;并将最后一次第一加密操作的输出数据作为原始数据对应的加密数据;其中,i为小于所述预定执行次数的正整数;
输出单元,用于输出所述原始数据对应的加密数据。
10.根据权利要求9所述的数据变换装置,其特征在于,所述加密单元包括:
第一置换模块,用于对本次第一加密操作的输入数据执行第一线性置换;
第二置换模块,用于对第一线性置换的置换结果执行第一非线性置换,得到本次第一加密操作的输出数据。
11.根据权利要求10所述的数据变换装置,其特征在于,所述第一置换模块执行第一线性置换包括:
根据第一置换数组的各个元素,对所述本次第一加密操作的输入数据中每一位数据进行置换,得到本次第一线性置换的置换结果,包括:
在元素的值为i1时,将所述输入数据中第i1位的数值置换到第j1位,其中,i1为大于0且小于N的正整数,j1为值为i1的元素在第一置换数组中的位置;
其中,第一置换数组包括N个元素,各个元素均为大于0且小于N的正整数,且各个元素的大小均不相同;N为原始数据的位数。
12.根据权利要求10所述的数据变换装置,其特征在于,所述第二置换模块执行第一非线性置换包括:
根据第一映射盒子对第一非线性置换的置换结果进行置换,包括:
通过基本位数为i3的第一映射盒子,对数位为i3的输入数据进行置换;其中,将输入数据的前j3位作为行数,将输入数据的后j4位作为列数,在第一映射盒子中通过上述行数和列数查找对应的数值,并将查找的结果作为上述本次第一加密操作的输出数据;其中,第一映射盒子的基本位数为i3,设置第一映射盒子的行数为2的j3次幂,第一映射盒子的列数为2的j4次幂,j3+j4=i3。
13.根据权利要求9所述的数据变换装置,其特征在于,所述装置还包括:
解密单元,用于对加密数据执行第一解密操作,所述执行第一解密操作包括:根据预定执行次数,重复执行所述第一解密操作;其中,将加密数据作为第一次第一解密操作的输入数据,将第i次执行第一解密操作的输出数据,作为执行第i+1次第一解密操作的输入数据;并将最后一次第一解密操作的输出数据作为加密数据对应的原始数据;其中,i为小于所述预定执行次数的正整数;
所述输出单元还用于输出所述加密数据对应的原始数据。
14.根据权利要求13所述的数据变换装置,其特征在于,所述解密单元包括:
第二逆置换模块,用于对本次第一解密操作的输入数据执行第二非线性置换;其中,所述第二非线性置换为第一非线性置换的逆变换;
第一逆置换模块,用于对第二非线性置换的置换结果执行第二线性置换,得到本次第一解密操作的输出数据;其中,所述第二线性置换为第一线性置换的逆变换。
15.根据权利要求14所述的数据变换装置,其特征在于,所述第一逆置换模块执行第二线性置换包括
根据第二置换数组的各个元素,对所述本次第二线性置换的输入数据中每一位数据进行置换,得到本次第二线性置换的置换结果,包括:
在元素的值为i1时,将所述输入数据中第i1位的数值置换到第j1位,其中,i1为大于0且小于N的正整数,j1为值为i1的元素在第二置换数组中的位置;
其中,第二置换数组包括N个元素,各个元素均为大于且0小于N的正整数,且各个元素的大小均不相同;N为原始数据对应的位数;其中,所述第二置换数组为第一置换数组对应的逆运算数组。
16.根据权利要求14所述的数据变换装置,其特征在于,所述第二逆置换模块执行第二非线性置换包括:
根据第二映射盒子对第二非线性置换的置换结果进行置换,包括:
通过基本位数为i3的第二映射盒子,对数位为i3的输入数据进行置换;其中,将输入数据的前j3位作为行数,将输入数据的后j4位作为列数,在第二映射盒子中通过上述行数和列数查找对应的数值,并将查找的结果作为上述本次第一解密操作的输出数据;
其中,第二映射盒子的基本位数i3,设置第二映射盒子的行数为2的j3次幂,第二映射盒子的列数为2的j4次幂,j3+j4=i3;其中,所述第二映射盒子第一映射盒子对应的逆运算映射盒子。
CN201610404904.XA 2016-06-08 2016-06-08 一种数据变换方法和装置 Active CN106100826B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610404904.XA CN106100826B (zh) 2016-06-08 2016-06-08 一种数据变换方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610404904.XA CN106100826B (zh) 2016-06-08 2016-06-08 一种数据变换方法和装置

Publications (2)

Publication Number Publication Date
CN106100826A true CN106100826A (zh) 2016-11-09
CN106100826B CN106100826B (zh) 2019-06-07

Family

ID=57228416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610404904.XA Active CN106100826B (zh) 2016-06-08 2016-06-08 一种数据变换方法和装置

Country Status (1)

Country Link
CN (1) CN106100826B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107154851A (zh) * 2017-06-30 2017-09-12 上海众人网络安全技术有限公司 一种数据加密和解密的方法及装置
CN109245884A (zh) * 2018-09-29 2019-01-18 北京金风科创风电设备有限公司 风力发电机组的数据通信方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1426191A (zh) * 2001-12-10 2003-06-25 中国科学院软件研究所 “荡秋千”式的分组密码加密方法
CN104579646A (zh) * 2015-01-30 2015-04-29 南京法威克信息科技有限公司 乱码本有限单向变换及其加解密应用
WO2015145964A1 (en) * 2014-03-28 2015-10-01 Sony Corporation Encryption processing device, encryption processing method, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1426191A (zh) * 2001-12-10 2003-06-25 中国科学院软件研究所 “荡秋千”式的分组密码加密方法
WO2015145964A1 (en) * 2014-03-28 2015-10-01 Sony Corporation Encryption processing device, encryption processing method, and program
CN104579646A (zh) * 2015-01-30 2015-04-29 南京法威克信息科技有限公司 乱码本有限单向变换及其加解密应用

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周文婷等: "DES 加密算法的一种改进方法", 《计算机安全》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107154851A (zh) * 2017-06-30 2017-09-12 上海众人网络安全技术有限公司 一种数据加密和解密的方法及装置
CN107154851B (zh) * 2017-06-30 2020-09-08 上海众人网络安全技术有限公司 一种数据加密和解密的方法及装置
CN109245884A (zh) * 2018-09-29 2019-01-18 北京金风科创风电设备有限公司 风力发电机组的数据通信方法及装置
CN109245884B (zh) * 2018-09-29 2021-06-01 北京金风科创风电设备有限公司 风力发电机组的数据通信方法及装置

Also Published As

Publication number Publication date
CN106100826B (zh) 2019-06-07

Similar Documents

Publication Publication Date Title
Farah et al. A novel method for designing S-box based on chaotic map and teaching–learning-based optimization
CN106850221B (zh) 信息加密、解密方法及装置
Zhang et al. On the security of symmetric ciphers based on DNA coding
US9021259B2 (en) Encrypted database system, client terminal, encrypted database server, natural joining method, and program
Aboytes-González et al. Design of a strong S-box based on a matrix approach
CN101952870B (zh) 数据转换器和数据转换方法
US9147079B2 (en) Encrypted database system, client terminal, encrypted database server, natural joining method, and program
CN106506155B (zh) 公有云环境下的密文共享方法
CN103444124B (zh) 加密处理装置、加密处理方法
CN105099652B (zh) 数据加密、解密方法和装置
CN105959098A (zh) 基于多分割Feistel网络的保留格式加密算法
CN103078734A (zh) 解密处理装置、方法和信息处理装置
Zhang et al. Cryptanalysis of image scrambling based on chaotic sequences and Vigenère cipher
CN105162590B (zh) 一种云计算环境中并行同态数据加密方法
CN104618327A (zh) 基于可信操作指令遥控远程自控装置的物联网安全实现方法
Zhang et al. Cryptanalyzing a novel image cipher based on mixed transformed logistic maps
CN104348625A (zh) 加解密装置及其加解密方法
CN103746796B (zh) 一种实现智能卡sm4 密码算法的协处理器
CN103414552B (zh) 一种利用二叉树遍历方式进行加密、解密方法及装置
Das et al. RGB image encryption using microcontroller ATMEGA 32
CN102833077A (zh) 金融ic及金融社保ic卡远程发卡数据传输加解密方法
CN102222188A (zh) 一种信息系统用户密码的生成方法
CN106100826A (zh) 一种数据变换方法和装置
CN106982116A (zh) 一种基于可逆逻辑电路的aes的本地文件加密方法
JP2013157652A (ja) 秘密計算システム、暗号化装置、秘密計算装置及びその方法、プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200806

Address after: 2505 COFCO Plaza, No.2, nanmenwai street, Nankai District, Tianjin

Patentee after: Xin Xin finance leasing (Tianjin) Co.,Ltd.

Address before: 100094 No. 6 Yongjia North Road, Beijing, Haidian District

Co-patentee before: DATANG SEMICONDUCTOR DESIGN Co.,Ltd.

Patentee before: DATANG MICROELECTRONICS TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211102

Address after: 100094 No. 6 Yongjia North Road, Beijing, Haidian District

Patentee after: DATANG MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Patentee after: DATANG SEMICONDUCTOR DESIGN Co.,Ltd.

Address before: 300110 2505 COFCO Plaza, No. 2, nanmenwai street, Nankai District, Tianjin

Patentee before: Xin Xin finance leasing (Tianjin) Co.,Ltd.