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

文档序号:7809270阅读:288来源:国知局
一种基于分组密码的消息鉴别方法
【专利摘要】本发明提供了一种基于分组密码的消息鉴别方法。本方法为: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。本方法能够保护数据的完整性及起源认证。
【专利说明】-种基于分组密码的消息鉴别方法

【技术领域】
[0001] 本发明主要应用于通信领域,具体涉及一种基于分组密码的消息鉴别方法,可用 于实现通讯中对传输数据的完整性检测或者起源认证。

【背景技术】
[0002] 数据的完整性保护和起源认证是远距离通信追求的目标之一,通信双方可在共享 密钥的前提下借助于消息鉴别码算法实现这些功能。
[0003] 消息鉴别码MAC (Message Authentication Code)属于对称加密的范畴,要求使用 双方首先共享一个密钥K。在发送消息Μ之前,发送者首先计算T = MAC (K,M),然后把(M, T)发送出去。在收到(M,T)之后,接受者计算Τ' =MAC(K,M),并比较是否T = T'。若是, 则认定消息Μ合法(Μ在传输过程中没有被篡改,且确实来自于授权的发送方);若否,则认 定消息Μ非法,并拒绝使用消息Μ。
[0004] 常见的消息鉴别码算法有四大类,前三类分别采用分组密码、杂凑函数和泛杂凑 函数,第四类是直接设计的算法。在采用分组密码的消息鉴别码算法中,CBC-MAC是最早的 一个,其基本结构如图1。
[0005] 但是,CBC-MAC有一个缺陷,它不能够安全地处理不同长度的消息。为此,人们后 来提出了不少改进版本,如EMAC、XCBC、TMAC、OMAC、PMAC、GCBC、XOR-MAC等等。这些后续算 法,都能够安全地处理不同长度的消息,但在效率方面(密钥量、内存、状态量依赖、调用分 组密码次数等)各有差异。


【发明内容】

[0006] 本发明的目的在于提出一种基于分组密码的消息鉴别方法,该算法允许用户通过 选择安全参数d以决定需要的安全强度(d越大则算法安全性越强),还能够以全并行的方 式调用底层分组密码,以此提高整体效率。
[0007] 为了实现本发明的目的采用的技术方案概述如下:
[0008] -种基于分组密码的消息鉴别方法,其步骤包括三个阶段:
[0009] 首先通信双方S和R选择安全强度参数d (为一个正整数),共享密钥K0, K1,…仄山 并约定分组密码算法E(其分组长度为η比特)和d个互不相同的η比特常数Cstj,其中j =1,2,…,dj。
[0010] 预计算阶段(发送者s和接收者R都需要操作):
[0011] 1. 1)计算 Rj = E(K0, Cstj),j = 1,2,…,d ;
[0012] 1. 2)将矩阵 Awxd 与向量況,R2,…,Rd]T 相乘,即 AwxdX 況,R2,…,Rd]T = [Χ。X2,… ,XW]T;
[0013] 标签生成阶段(发送者S操作):
[0014] 2.1)填充消息Μ;
[0015] 2. 2)将填充后的消息Μ分块,得到L块数据块;
[0016] 2· 3)加密数据块,即 E (K0, Mi ? XJ = Zi ; i = 1,2, · · ·,L ;
[0017] 2.4)将矩阵Bd>a与向量[Zi,Z2,…,ZJ T相乘,即 Bd>aX [Zi,Z2,…,ZJT= [Si,S2,… ,sd]T;
[0018] 2. 5)分别使用密钥Kl,K2, ···,Kd结合分组密码E以CBC-MAC (分组密码链接模式 的消息鉴别码)的方式处理向量[Si,S2,…,Sd];
[0019] 2· 6)计算 T = N (d, 1) ? N (d, 2) ? …? N (d, d);
[0020] 2. 7)将(M,T)发送给 R。
[0021] 标签接收阶段(接收者R操作):
[0022] 3. 1)在收到(M,T)之后,R首先重复操作步骤2. 1至2. 5 ;
[0023] 3. 2)计算 Τ' = N(d, 1) ? N(d, 2) θ …? N(d, d);
[0024] 3. 3) R验证是否Τ' = T。若是,则接受消息Μ ;若否,则认为消息M完整性被破坏 或者认为Μ不是由S发送,拒绝消息Μ。
[0025] 所述步骤1. 2)中的矩阵Awxd大小由参数W和d决定,其中d为安全强度参数,为 一个正整数,由通信双方S和R事先选定,W应该大于任何消息Μ的分块块数L,即W>L ;
[0026] 所述步骤1.2)中的矩阵Awxd与向量[Ri,R2,…,R d]T的乘法在有限域GF(2n)上进 行,其中GF(2n)可由任何一个GF (2)上的η次本原多项式决定;
[0027] 所述步骤1.2)中的矩阵Awxd应该满足其任意元素不为0η,即a(i,j)尹0 η,其中 a(i,j)为矩阵Awxd中第i行的第j个元素,长度为η比特;
[0028] 所述步骤1.2)中的矩阵Awxd应该满足其任意列的任意两元素的和不为零,即 a(il,j) Θ a(i2, j)尹0n,其中a(i,j)为矩阵Awxd中第i行的第j个元素,长度为η比特;
[0029] 所述步骤1.2)中的矩阵Awxd应该满足其任意d行所构成的d阶方阵为满秩矩阵;
[0030] 所述步骤2. 1)中填充Μ的方法应该使得人们容易地在填充后的消息中辨认原消 息部分和填充部分。比如说,将Μ视为一个比特串,并在其末尾添加一个比特" 1",然后在 "1"之后添加尽可能少的比特"0",使得填充后的消息长度为η比特的整数倍;
[0031] 所述步骤2. 3)中的Θ为有限域GF(2n)上的加法运算,其中GF(2n)可由任何一个 GF(2)上的η次本原多项式决定;
[0032] 所述步骤2.4)中的矩阵仏>^与向量[21,2 2,"%幻1的乘法在有限域6?(211)上进 行,其中GF(2 n)可由任何一个GF (2)上的η次本原多项式决定;
[0033] 所述步骤2.4)中的矩阵仏>^应该满足其任意元素不为01^^(^)尹0 11,其中 b (i,j)为矩阵BdxI^中第i行的第j个元素,长度为η比特;
[0034] 所述步骤2. 4)中的矩阵Bd>a应该满足其任意d列所构成的d阶方阵为满秩矩阵;
[0035] 所述步骤2. 5)中分别使用密钥Kl,K2,…,Kd结合分组密码加密算法E以CBC-MAC 的方式处理向量[Si,S2,…,SJ ;具体为
[0036] Forp = lto d do
[0037] N(p, j) = E(Kj, N(p-1, j) ? Sp)
[0038] End for
[0039] 其中 N(0, j) = 0n,为一个全 0 的 n 比特串,j = 1,2, ···,d ;
[0040] 与现有技术相比,本发明基于分组密码的消息鉴别码方法具有如下技术效果:
[0041] 1)能够保护数据的完整性,有效识别消息在传输过程中是否被篡改;
[0042] 2)能够有效识别消息是否来自于授权的发送方S ;
[0043] 3)允许用户通过选择安全参数d以决定需要的安全强度(d越大则算法安全性越 强);
[0044] 4)能够在处理消息阶段(步骤2. 3)以全并行的方式调用底层分组密码,以此提高 整体算法运行效率;
[0045] 5)允许用户通过预计算(步骤1. 1和1. 2)降低标签生成阶段和标签接收阶段的 计算量。

【专利附图】

【附图说明】
[0046] 图1为使用密钥K以分组密码E为底层模块的CBC-MAC ;
[0047] 图2为基于分组密码的消息鉴别方法的整体结构图;
[0048] 图3为基于分组密码的消息鉴别方法的终止化操作,即分别使用密钥K1,K2,… ,Kd结合分组密码算法Ε以CBC-MAC的方式处理向量Κ,S 2,…,SJ的操作。

【具体实施方式】
[0049] 以下结合附图和具体实施例对本发明的方法作详细的说明。
[0050] 本发明采用一个分组长度为η比特的分组密码算法构造一个消息鉴别码算法,需 要通信双方S (发送者)和R (接收者)约定具体的分组密码算法Ε,确定安全强度参数d, 并共享密钥1?),1(1,1(2,"%1((1和(1个互不相同的11比特常数(^」,其中」=1,2," %(1」。在 此基础上,消息发送者S将各个密钥嵌入到分组密码算法E中,以并行化的方式处理消息, 如图2和图3所示,最后将得到的标签T连同Μ发送给消息接收方R。
[0051] 预计算阶段(发送者S和接收者R都需要操作):
[0052] 1. 1)在密钥Κ0的作用下使用分组密码算法Ε加密d个互不相同的η比特常数 Cstj,加密结果分别记为 Rj。即 Rj = E(K0, Cstj), j = 1,2,…,d ;
[0053] 1. 2)将矩阵Awxd与d个秘密值Rj所构成的向量況,R2,…,Rd] T相乘,即 AwxdX [R1; R2, -, RJT = [X1; X2, -, Xi; -, XW]T ;
[0054] 标签生成阶段(发送者S操作):
[0055] 2. 1)在发送消息M之前,首先对M进行填充,使得填充后的总长度为Ln比特(L为 某一正整数);
[0056] 2. 2)将填充后的消息Μ分块,得到%,M2, . . .,Μ。…,Μ。满足W的长度为η比特 (1彡i彡L),且^Μ2…Α相连接所得到的比特串恰好为Μ ;
[0057] 2. 3)将MdPXji = 1,2,···,υ逐个相加,并使用密钥Κ0和分组密码算法Ε加密, 即 Ε (Κ0, Mi ? Xi) = Zi ;
[0058] 2. 4)将矩阵Bd>a与L个秘密值Zi所构成的向量%,Z2,…,ZJT相乘,即 -,ZL]T= [S^S^-,Sd]T;
[0059] 2. 5)分别使用密钥Kl,K2,…,Kd结合分组密码算法E以CBC-MAC的方式处理向 量[S^ s2,…,sd],即
[0060] Forp = lto d do
[0061] N(p,j) =E(Kj,N(p-l,j) θ Sp)
[0062] End for
[0063] 其中N(0, j) = 0n,为一个全0的n比特串,j = 1,2,…,d ;
[0064] 2. 6)将所有的N(d,j)的和输出作为算法的输出,即输出T = N(d,1) ? N(d,2) θ…? N(d,d)作为该消息鉴别码算法的标签;N(d,j)为使用密钥Kj的 CBC-MAC的输出值。
[0065] 2. 7)将(M,T)发送给 R。
[0066] 标签接收阶段(接收者R操作):
[0067] 3. 1)在收到(M,T)之后,为鉴别消息M,R首先重复操作步骤2. 1至2. 5 ;
[0068] 3. 2)计算 Τ' = N(d, 1) ? N(d, 2) ? …? N(d, d);
[0069] 3. 3) R验证是否Τ' = T。若是,则接受消息M ;否则,认为消息M完整性被破坏或 者认为Μ不是由S发送,拒绝消息M。
【权利要求】
1. 一种基于分组密码的消息鉴别方法,其步骤为: 1) 消息发送者S和消息接收者R共同确定一安全强度参数d,共享密钥KO, K1,…仄山 并约定分组密码算法E、矩阵Awxd,矩阵Bd>a,d个互不相同的η比特常数Cstj ;其中,分组密 码算法的分组长度为η比特,L为待发送消息Μ分块块数,W大于L ; 2) 消息发送者S和消息接收者R分别在密钥Κ0的作用下使用分组密码算法Ε加密d 个互不相同的η比特常数Cstj,即Rj = E (KO, Cstj),其中,j = 1,2,…,d ;然后将矩阵Awxd 与d个秘密值Rj所构成的向量況,R2,…,Rd]T相乘,得到向量%,X 2,. .,\XW]T ; 3) 消息发送者S对消息Μ进行填充,并将填充后的消息Μ分为L块长度为η比特的数 据块; 4) 将吣和Xi逐个相加,并使用密钥Κ0和分组密码算法Ε加密,即E (KO, Mi ? XJ = Zi ; 其中,Mi为第i块数据块,i = 1,2,…,L; 5) 将矩阵Bd>a与L个秘密值Zj构成向量%,Z2,…,ZJT相乘得到向量队S 2,…,Sd] T 6) 分别使用密钥Kl,Κ2,…,Kd结合分组密码算法Ε对向量Κ,S2,…,Sd]进行d轮分 组加密;并将d轮计算结果的和作为该消息Μ的标签T ; 7) 消息发送者S将(Μ,Τ)发送给消息接收者R ;消息接收者R对收到的消息Μ进行步 骤3)?5)的计算,得到该消息Μ的标签Τ' ;如果Τ = Τ',则接受该消息Μ,否则拒绝该消 息Μ。
2. 如权利要求1所述的方法,其特征在于所述矩阵Awxd应该满足其任意d行所构成的 d阶方阵为满秩矩阵。
3. 如权利要求1或2所述的方法,其特征在于所述矩阵Awxd满足其任意元素不为On, 即a(i,j)尹On,其中a(i,j)为矩阵Awxd中第i行的第j个元素,长度为η比特。
4. 如权利要求3所述的方法,其特征在于矩阵Awxd应该满足其任意列的任意两元素的 和不为零,其中加法运算在有限域GF(2 n)上进行。
5. 如权利要求1所述的方法,其特征在于所述矩阵Awxd与向量札馬,…,Rd]T的乘法 在有限域GF(2n)上进行;其中GF(2n)由任何一个GF⑵上的η次本原多项式决定。
6. 如权利要求1所述的方法,其特征在于所述步骤4)中的加法运算在有限域GF(2n) 上进行;其中GF(2 n)由任何一个GF⑵上的η次本原多项式决定,θ为有限域GF(2n)上的 加法运算。
7. 如权利要求1所述的方法,其特征在于所述矩阵Bd>a满足其任意d列所构成的d阶 方阵为满秩矩阵。
8. 如权利要求1或6所述的方法,其特征在于所述矩阵Bdu满足其任意元素不为On, 即b (i,j)尹On,其中b (i,j)为矩阵Bd>a中第i行的第j个元素,长度为η比特。
9. 如权利要求8所述的方法,其特征在于矩阵Bd>a与向量[Ζρ Ζ2,…,ZJT的乘法在有 限域GF(2n)上进行,其中GF(2n)由任何一个GF⑵上的η次本原多项式决定。
10. 如权利要求1或2或6或7所述的方法,其特征在于所述分组密码加密算法Ε以 CBC-MAC的方式对向量[Sp S2,…,Sd]进行d轮分组加密。
【文档编号】H04L12/58GK104113543SQ201410344852
【公开日】2014年10月22日 申请日期:2014年7月18日 优先权日:2014年7月18日
【发明者】张立廷, 吴文玲, 眭晗 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1