CN104113543A - 一种基于分组密码的消息鉴别方法 - Google Patents

一种基于分组密码的消息鉴别方法 Download PDF

Info

Publication number
CN104113543A
CN104113543A CN201410344852.2A CN201410344852A CN104113543A CN 104113543 A CN104113543 A CN 104113543A CN 201410344852 A CN201410344852 A CN 201410344852A CN 104113543 A CN104113543 A CN 104113543A
Authority
CN
China
Prior art keywords
message
matrix
vector
block cipher
sender
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
CN201410344852.2A
Other languages
English (en)
Other versions
CN104113543B (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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201410344852.2A priority Critical patent/CN104113543B/zh
Publication of CN104113543A publication Critical patent/CN104113543A/zh
Application granted granted Critical
Publication of CN104113543B publication Critical patent/CN104113543B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供了一种基于分组密码的消息鉴别方法。本方法为:1)消息发送者S和消息接收者R共同确定一安全强度参数d,共享密钥K0,K1,…Kd,并约定分组密码算法E、矩阵AW×d、矩阵Bd×L和d个互不相同的n比特常数Cstj;2)S和R分别计算Rj=E(K0,Cstj);然后将矩阵A与向量[R1,R2,…,Rd]T相乘,得到向量[X1,X2,..,Xw]T;3)S对消息M填充后分为L块长为n比特的数据块;4)S计算E(K0,Mi⊕Xi)=Zi;将矩阵B与向量[Z1,Z2,…,ZL]T相乘得到向量[S1,S2,…,Sd]T;然后分别使用密钥K1,K2,…,Kd结合算法E对向量[S1,S2,…,Sd]进行d轮分组加密;并将d轮计算结果的和作为该消息M的标签T;5)S将(M,T)发送给R;R计算该消息M的标签T’;如果T=T’,则接受该消息M。本方法能够保护数据的完整性及起源认证。

Description

一种基于分组密码的消息鉴别方法
技术领域
本发明主要应用于通信领域,具体涉及一种基于分组密码的消息鉴别方法,可用于实现通讯中对传输数据的完整性检测或者起源认证。
背景技术
数据的完整性保护和起源认证是远距离通信追求的目标之一,通信双方可在共享密钥的前提下借助于消息鉴别码算法实现这些功能。
消息鉴别码MAC(Message Authentication Code)属于对称加密的范畴,要求使用双方首先共享一个密钥K。在发送消息M之前,发送者首先计算T=MAC(K,M),然后把(M,T)发送出去。在收到(M,T)之后,接受者计算T’=MAC(K,M),并比较是否T=T’。若是,则认定消息M合法(M在传输过程中没有被篡改,且确实来自于授权的发送方);若否,则认定消息M非法,并拒绝使用消息M。
常见的消息鉴别码算法有四大类,前三类分别采用分组密码、杂凑函数和泛杂凑函数,第四类是直接设计的算法。在采用分组密码的消息鉴别码算法中,CBC-MAC是最早的一个,其基本结构如图1。
但是,CBC-MAC有一个缺陷,它不能够安全地处理不同长度的消息。为此,人们后来提出了不少改进版本,如EMAC、XCBC、TMAC、OMAC、PMAC、GCBC、XOR-MAC等等。这些后续算法,都能够安全地处理不同长度的消息,但在效率方面(密钥量、内存、状态量依赖、调用分组密码次数等)各有差异。
发明内容
本发明的目的在于提出一种基于分组密码的消息鉴别方法,该算法允许用户通过选择安全参数d以决定需要的安全强度(d越大则算法安全性越强),还能够以全并行的方式调用底层分组密码,以此提高整体效率。
为了实现本发明的目的采用的技术方案概述如下:
一种基于分组密码的消息鉴别方法,其步骤包括三个阶段:
首先通信双方S和R选择安全强度参数d(为一个正整数),共享密钥K0,K1,…Kd,并约定分组密码算法E(其分组长度为n比特)和d个互不相同的n比特常数Cstj,其中j=1,2,…,dj
预计算阶段(发送者S和接收者R都需要操作):
1.1)计算Rj=E(K0,Cstj),j=1,2,…,d;
1.2)将矩阵AW×d与向量[R1,R2,…,Rd]T相乘,即AW×d×[R1,R2,…,Rd]T=[X1,X2,…,Xw]T
标签生成阶段(发送者S操作):
2.1)填充消息M;
2.2)将填充后的消息M分块,得到L块数据块;
2.3)加密数据块,即E(K0,Mi⊕Xi)=Zi;i=1,2,...,L;
2.4)将矩阵Bd×L与向量[Z1,Z2,…,ZL]T相乘,即Bd×L×[Z1,Z2,…,ZL]T=[S1,S2,…,Sd]T
2.5)分别使用密钥K1,K2,…,Kd结合分组密码E以CBC-MAC(分组密码链接模式的消息鉴别码)的方式处理向量[S1,S2,…,Sd];
2.6)计算T=N(d,1)⊕N(d,2)⊕…⊕N(d,d);
2.7)将(M,T)发送给R。
标签接收阶段(接收者R操作):
3.1)在收到(M,T)之后,R首先重复操作步骤2.1至2.5;
3.2)计算T’=N(d,1)⊕N(d,2)⊕…⊕N(d,d);
3.3)R验证是否T’=T。若是,则接受消息M;若否,则认为消息M完整性被破坏或者认为M不是由S发送,拒绝消息M。
所述步骤1.2)中的矩阵AW×d大小由参数W和d决定,其中d为安全强度参数,为一个正整数,由通信双方S和R事先选定,W应该大于任何消息M的分块块数L,即W>L;
所述步骤1.2)中的矩阵AW×d与向量[R1,R2,…,Rd]T的乘法在有限域GF(2n)上进行,其中GF(2n)可由任何一个GF(2)上的n次本原多项式决定;
所述步骤1.2)中的矩阵AW×d应该满足其任意元素不为0n,即a(i,j)≠0n,其中a(i,j)为矩阵AW×d中第i行的第j个元素,长度为n比特;
所述步骤1.2)中的矩阵AW×d应该满足其任意列的任意两元素的和不为零,即a(i1,j)⊕a(i2,j)≠0n,其中a(i,j)为矩阵AW×d中第i行的第j个元素,长度为n比特;
所述步骤1.2)中的矩阵AW×d应该满足其任意d行所构成的d阶方阵为满秩矩阵;
所述步骤2.1)中填充M的方法应该使得人们容易地在填充后的消息中辨认原消息部分和填充部分。比如说,将M视为一个比特串,并在其末尾添加一个比特“1”,然后在“1”之后添加尽可能少的比特“0”,使得填充后的消息长度为n比特的整数倍;
所述步骤2.3)中的⊕为有限域GF(2n)上的加法运算,其中GF(2n)可由任何一个GF(2)上的n次本原多项式决定;
所述步骤2.4)中的矩阵Bd×L与向量[Z1,Z2,…,ZL]T的乘法在有限域GF(2n)上进行,其中GF(2n)可由任何一个GF(2)上的n次本原多项式决定;
所述步骤2.4)中的矩阵Bd×L应该满足其任意元素不为0n,即b(i,j)≠0n,其中b(i,j)为矩阵Bd×L中第i行的第j个元素,长度为n比特;
所述步骤2.4)中的矩阵Bd×L应该满足其任意d列所构成的d阶方阵为满秩矩阵;
所述步骤2.5)中分别使用密钥K1,K2,…,Kd结合分组密码加密算法E以CBC-MAC的方式处理向量[S1,S2,…,Sd];具体为
Forp=1to d do
N(p,j)=E(Kj,N(p-1,j)⊕Sp)
End for
其中N(0,j)=0n,为一个全0的n比特串,j=1,2,…,d;
与现有技术相比,本发明基于分组密码的消息鉴别码方法具有如下技术效果:
1)能够保护数据的完整性,有效识别消息在传输过程中是否被篡改;
2)能够有效识别消息是否来自于授权的发送方S;
3)允许用户通过选择安全参数d以决定需要的安全强度(d越大则算法安全性越强);
4)能够在处理消息阶段(步骤2.3)以全并行的方式调用底层分组密码,以此提高整体算法运行效率;
5)允许用户通过预计算(步骤1.1和1.2)降低标签生成阶段和标签接收阶段的计算量。
附图说明
图1为使用密钥K以分组密码E为底层模块的CBC-MAC;
图2为基于分组密码的消息鉴别方法的整体结构图;
图3为基于分组密码的消息鉴别方法的终止化操作,即分别使用密钥K1,K2,…,Kd结合分组密码算法E以CBC-MAC的方式处理向量[S1,S2,…,Sd]的操作。
具体实施方式
以下结合附图和具体实施例对本发明的方法作详细的说明。
本发明采用一个分组长度为n比特的分组密码算法构造一个消息鉴别码算法,需要通信双方S(发送者)和R(接收者)约定具体的分组密码算法E,确定安全强度参数d,并共享密钥K0,K1,K2,…,Kd和d个互不相同的n比特常数Cstj,其中j=1,2,…,dj。在此基础上,消息发送者S将各个密钥嵌入到分组密码算法E中,以并行化的方式处理消息,如图2和图3所示,最后将得到的标签T连同M发送给消息接收方R。
预计算阶段(发送者S和接收者R都需要操作):
1.1)在密钥K0的作用下使用分组密码算法E加密d个互不相同的n比特常数Cstj,加密结果分别记为Rj。即Rj=E(K0,Cstj),j=1,2,…,d;
1.2)将矩阵AW×d与d个秘密值Rj所构成的向量[R1,R2,…,Rd]T相乘,即AW×d×[R1,R2,…,Rd]T=[X1,X2,…,Xi,…,Xw]T
标签生成阶段(发送者S操作):
2.1)在发送消息M之前,首先对M进行填充,使得填充后的总长度为Ln比特(L为某一正整数);
2.2)将填充后的消息M分块,得到M1,M2,...,Mi,…,ML,满足Mi的长度为n比特(1≤i≤L),且M1M2…ML相连接所得到的比特串恰好为M;
2.3)将Mi和Xi(i=1,2,…,L)逐个相加,并使用密钥K0和分组密码算法E加密,即E(K0,Mi⊕Xi)=Zi
2.4)将矩阵Bd×L与L个秘密值Zi所构成的向量[Z1,Z2,…,ZL]T相乘,即Bd×L×[Z1,Z2,…,ZL]T=[S1,S2,…,Sd]T
2.5)分别使用密钥K1,K2,…,Kd结合分组密码算法E以CBC-MAC的方式处理向量[S1,S2,…,Sd],即
Forp=1to d do
N(p,j)=E(Kj,N(p-1,j)⊕Sp)
End for
其中N(0,j)=0n,为一个全0的n比特串,j=1,2,…,d;
2.6)将所有的N(d,j)的和输出作为算法的输出,即输出T=N(d,1)⊕N(d,2)⊕…⊕N(d,d)作为该消息鉴别码算法的标签;N(d,j)为使用密钥Kj的CBC-MAC的输出值。
2.7)将(M,T)发送给R。
标签接收阶段(接收者R操作):
3.1)在收到(M,T)之后,为鉴别消息M,R首先重复操作步骤2.1至2.5;
3.2)计算T’=N(d,1)⊕N(d,2)⊕…⊕N(d,d);
3.3)R验证是否T’=T。若是,则接受消息M;否则,认为消息M完整性被破坏或者认为M不是由S发送,拒绝消息M。

Claims (10)

1.一种基于分组密码的消息鉴别方法,其步骤为:
1)消息发送者S和消息接收者R共同确定一安全强度参数d,共享密钥K0,K1,…Kd,并约定分组密码算法E、矩阵AW×d,矩阵Bd×L,d个互不相同的n比特常数Cstj;其中,分组密码算法的分组长度为n比特,L为待发送消息M分块块数,W大于L;
2)消息发送者S和消息接收者R分别在密钥K0的作用下使用分组密码算法E加密d个互不相同的n比特常数Cstj,即Rj=E(K0,Cstj),其中,j=1,2,…,d;然后将矩阵AW×d与d个秘密值Rj所构成的向量[R1,R2,…,Rd]T相乘,得到向量[X1,X2,..,Xi,…,Xw]T
3)消息发送者S对消息M进行填充,并将填充后的消息M分为L块长度为n比特的数据块;
4)将Mi和Xi逐个相加,并使用密钥K0和分组密码算法E加密,即E(K0,Mi⊕Xi)=Zi;其中,Mi为第i块数据块,i=1,2,…,L;
5)将矩阵Bd×L与L个秘密值Zi所构成向量[Z1,Z2,…,ZL]T相乘得到向量[S1,S2,…,Sd]T
6)分别使用密钥K1,K2,…,Kd结合分组密码算法E对向量[S1,S2,…,Sd]进行d轮分组加密;并将d轮计算结果的和作为该消息M的标签T;
7)消息发送者S将(M,T)发送给消息接收者R;消息接收者R对收到的消息M进行步骤3)~5)的计算,得到该消息M的标签T’;如果T=T’,则接受该消息M,否则拒绝该消息M。
2.如权利要求1所述的方法,其特征在于所述矩阵AW×d应该满足其任意d行所构成的d阶方阵为满秩矩阵。
3.如权利要求1或2所述的方法,其特征在于所述矩阵AW×d满足其任意元素不为0n,即a(i,j)≠0n,其中a(i,j)为矩阵AW×d中第i行的第j个元素,长度为n比特。
4.如权利要求3所述的方法,其特征在于矩阵AW×d应该满足其任意列的任意两元素的和不为零,其中加法运算在有限域GF(2n)上进行。
5.如权利要求1所述的方法,其特征在于所述矩阵AW×d与向量[R1,R2,…,Rd]T的乘法在有限域GF(2n)上进行;其中GF(2n)由任何一个GF(2)上的n次本原多项式决定。
6.如权利要求1所述的方法,其特征在于所述步骤4)中的加法运算在有限域GF(2n)上进行;其中GF(2n)由任何一个GF(2)上的n次本原多项式决定,⊕为有限域GF(2n)上的加法运算。
7.如权利要求1所述的方法,其特征在于所述矩阵Bd×L满足其任意d列所构成的d阶方阵为满秩矩阵。
8.如权利要求1或6所述的方法,其特征在于所述矩阵Bd×L满足其任意元素不为0n,即b(i,j)≠0n,其中b(i,j)为矩阵Bd×L中第i行的第j个元素,长度为n比特。
9.如权利要求8所述的方法,其特征在于矩阵Bd×L与向量[Z1,Z2,…,ZL]T的乘法在有限域GF(2n)上进行,其中GF(2n)由任何一个GF(2)上的n次本原多项式决定。
10.如权利要求1或2或6或7所述的方法,其特征在于所述分组密码加密算法E以CBC-MAC的方式对向量[S1,S2,…,Sd]进行d轮分组加密。
CN201410344852.2A 2014-07-18 2014-07-18 一种基于分组密码的消息鉴别方法 Expired - Fee Related CN104113543B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410344852.2A CN104113543B (zh) 2014-07-18 2014-07-18 一种基于分组密码的消息鉴别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410344852.2A CN104113543B (zh) 2014-07-18 2014-07-18 一种基于分组密码的消息鉴别方法

Publications (2)

Publication Number Publication Date
CN104113543A true CN104113543A (zh) 2014-10-22
CN104113543B CN104113543B (zh) 2017-03-15

Family

ID=51710176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410344852.2A Expired - Fee Related CN104113543B (zh) 2014-07-18 2014-07-18 一种基于分组密码的消息鉴别方法

Country Status (1)

Country Link
CN (1) CN104113543B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104821873A (zh) * 2015-04-20 2015-08-05 陈华 一种密码安全的实现方法
CN108566270A (zh) * 2018-04-26 2018-09-21 成都盛拓源科技有限公司 使用双分组密码的新型加密方法
CN109150504A (zh) * 2017-06-14 2019-01-04 深圳市中兴微电子技术有限公司 一种实现数据传输处理的方法及高级加密标准系统
CN109792383A (zh) * 2016-08-02 2019-05-21 X-逻各斯有限责任公司 用于使用几何代数的增强的以数据为中心的加密系统的方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1832403A (zh) * 2006-04-24 2006-09-13 北京易恒信认证科技有限公司 Cpk可信认证系统
CN101447980A (zh) * 2008-12-25 2009-06-03 中国电子科技集团公司第五十四研究所 抗碰撞的统一用户标识公私钥对映射方法
CN102946315A (zh) * 2012-11-19 2013-02-27 成都卫士通信息产业股份有限公司 一种采用分组方式构造mac码的方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1832403A (zh) * 2006-04-24 2006-09-13 北京易恒信认证科技有限公司 Cpk可信认证系统
CN101447980A (zh) * 2008-12-25 2009-06-03 中国电子科技集团公司第五十四研究所 抗碰撞的统一用户标识公私钥对映射方法
CN102946315A (zh) * 2012-11-19 2013-02-27 成都卫士通信息产业股份有限公司 一种采用分组方式构造mac码的方法及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104821873A (zh) * 2015-04-20 2015-08-05 陈华 一种密码安全的实现方法
CN104821873B (zh) * 2015-04-20 2018-07-03 上海春魁信息技术有限公司 一种密码安全的实现方法
CN109792383A (zh) * 2016-08-02 2019-05-21 X-逻各斯有限责任公司 用于使用几何代数的增强的以数据为中心的加密系统的方法和系统
CN109792383B (zh) * 2016-08-02 2022-11-18 阿尔几何有限责任公司 用于使用几何代数的增强的以数据为中心的加密系统的方法和系统
CN109150504A (zh) * 2017-06-14 2019-01-04 深圳市中兴微电子技术有限公司 一种实现数据传输处理的方法及高级加密标准系统
CN108566270A (zh) * 2018-04-26 2018-09-21 成都盛拓源科技有限公司 使用双分组密码的新型加密方法
CN108566270B (zh) * 2018-04-26 2021-10-01 成都盛拓源科技有限公司 使用双分组密码的新型加密方法

Also Published As

Publication number Publication date
CN104113543B (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
US9172529B2 (en) Hybrid encryption schemes
CN111492616B (zh) 用于基于晶格的密码学的可配置设备
CN104270249A (zh) 一种从无证书环境到基于身份环境的签密方法
CN106533656B (zh) 一种基于wsn的密钥多层混合加/解密方法
CN103684794A (zh) 一种基于des、rsa、sha-1加密算法的通信数据加解密方法
CN103795533A (zh) 基于标识符的加密、解密的方法及其执行装置
CN108111306A (zh) 一种配电自动化主站与配电自动化终端之间的通信方法
CN102780698A (zh) 物联网平台中用户终端安全通信的方法
CN105049401A (zh) 一种基于智能车的安全通信方法
CN112511304A (zh) 一种基于混合加密算法的电力数据隐私通信方法
CN111585759B (zh) 一种高效的基于sm9公钥加密算法的线上线下加密方法
CN104301108A (zh) 一种从基于身份环境到无证书环境的签密方法
CN110545169B (zh) 基于非对称密钥池和隐式证书的区块链方法和系统
CN103905187A (zh) 一种基于内容的网络通信加密方法
US20140044262A1 (en) Low Latency Encryption and Authentication in Optical Transport Networks
CN102469173A (zh) 基于组合公钥算法的IPv6网络层可信传输的方法和系统
CN104009842A (zh) 基于des、rsa加密算法及脆弱数字水印的通信数据加解密方法
CN113285959A (zh) 一种邮件加密方法、解密方法及加解密系统
Niederhagen et al. Practical post-quantum cryptography
CN104113543A (zh) 一种基于分组密码的消息鉴别方法
RU2459367C2 (ru) Способ формирования переменного ключа для блочного шифрования и передачи шифрованных данных
CN101964039B (zh) 一种版权对象的加密保护方法和系统
CN101882996A (zh) 一种基于身份的分布式系统中信息加密与解密的方法
CN103269272A (zh) 一种基于短期证书的密钥封装方法
CN109495257B (zh) 一种基于改进国密sm2加密算法的数据采集器加密方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170315

Termination date: 20210718