認(rèn)證加密設(shè)備、認(rèn)證加密方法以及用于認(rèn)證加密的程序的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及用于通過(guò)使用公共密鑰執(zhí)行認(rèn)證加密的認(rèn)證加密設(shè)備、加密設(shè)備、解碼設(shè)備、認(rèn)證加密方法以及用于認(rèn)證加密的程序。
【背景技術(shù)】
[0002]認(rèn)證加密(AE)是用于通過(guò)使用之前共享的秘密密鑰對(duì)明文消息進(jìn)行加密且同時(shí)向其給出消息認(rèn)證代碼(MAC)的技術(shù)。認(rèn)證加密的使用使得被保護(hù)的內(nèi)容避免被竊聽(tīng),并且檢測(cè)未認(rèn)證的操作。如果認(rèn)證加密被應(yīng)用于通信路徑,可以獲得對(duì)要發(fā)送的內(nèi)容的強(qiáng)保護(hù)。
[0003]下面將描述認(rèn)證加密的基本輸入和輸出。共享秘密密鑰K的兩個(gè)人將在下文中被假定為是Alice和Bob,認(rèn)證加密所加密的消息被假定為從Alice傳送到Bob。
[0004]假設(shè)認(rèn)證加密的加密函數(shù)和解碼函數(shù)分別為AEncJ(和ADec_K。假設(shè)要加密的明文是Μ且引入被稱為初始矢量的變量N。初始矢量N通常是隨機(jī)數(shù),具有短的固定長(zhǎng)度或者由Alice生成的計(jì)數(shù)器。
[0005]首先將描述Alice側(cè)的加密處理。Alice生成初始矢量N,然后執(zhí)行(C,T)=AEnc_K(N,Μ)。這里,AEncJ(被稱為加密函數(shù),使用密鑰K作為參數(shù),C被稱為加密的文本,且T被稱為認(rèn)證標(biāo)簽,這些是用于檢測(cè)更改的固定長(zhǎng)度的變量。Alice傳送初始矢量N、生成的加密文本C和生成的認(rèn)證標(biāo)簽T的組合(N,C,T)給Bob。
[0006]下面將描述Bob側(cè)的解碼處理。這里,Bob從Alice接收到的信息被假定為(N’,C’,T’)。當(dāng)從Alice接收到信息時(shí),Bob執(zhí)行ADec_K(N’,C’,T’)作為解碼處理。ADecJ(是使用密鑰K作為參數(shù)的解碼函數(shù)。如果通信在中間被修改且(N’,C’,T’)不同于(N,C,T),假定指示更改的符號(hào)為Ybot,ADec_K(N’,C,,T,)輸出Ybot。沒(méi)有更改且在(N’,C,,T,)= (N,C,T)的情況下,ADec_K(N’,C’,T ’)輸出解碼的明文Μ’,該明文Μ’具有與由A1 ice加密的明文Μ相同的內(nèi)容。由此,Μ被正確解碼。
[0007]實(shí)踐中,輸入和輸出在許多情況下包括被稱為報(bào)頭Η的變量。報(bào)頭Η不被加密,而是例如要用于表達(dá)協(xié)議版本等的用于消息認(rèn)證的信息。
[0008]通過(guò)包括報(bào)頭H,加密函數(shù)是(C,T)=AEnC_K(N,M,H)的輸入/輸出,對(duì)明文M加密且給出消息認(rèn)證代碼至明文Μ和報(bào)頭Η的組合。Alice傳送初始矢量Ν、報(bào)頭Η、生成的加密文本C和生成的認(rèn)證標(biāo)簽T的組合(N,Η,C,T)給Bob。
[0009]當(dāng)獲得ADec_K(N’,C,,T,,Η’)的輸入/輸出且(N’,C,,Τ,,H,)不同于(N,C,T,H)時(shí),解碼函數(shù)輸出指示更改的符號(hào)Ybot。當(dāng)接收到的(N’,H’,C’,T’)未被更改或者建立了 (Ν’,H’,C’,T’)= (N,H,C,T)時(shí),在接收側(cè)的Bob可以正確地解碼M且確認(rèn)報(bào)頭H未更改。
[0010]輸入/輸出添加了報(bào)頭Η的認(rèn)證加密可以被稱為具有相關(guān)聯(lián)數(shù)據(jù)的認(rèn)證加密(AEAD),并在下面將被簡(jiǎn)單標(biāo)注為“認(rèn)證加密”,除非另外聲明。
[0011]認(rèn)證加密實(shí)現(xiàn)方法之一基于一般組成。這是一種使用安全加密系統(tǒng)和安全MAC系統(tǒng)的組合的方法。例如,通過(guò)公知的組合Enc-then-Auth,使用兩個(gè)密鑰K1和K2來(lái)實(shí)現(xiàn)采用(〇,1')=1^(:_1(20311(3_1(1(10)的認(rèn)證加密。這里411(3_乂乂表示在加密系統(tǒng)中使用的加密函數(shù),MAC_XX表示在MAC系統(tǒng)中使用的MAC給出函數(shù)。
[0012]當(dāng)使用諸如AES(先進(jìn)加密標(biāo)準(zhǔn))加密的塊加密時(shí),例如,加密系統(tǒng)可以利用AES計(jì)數(shù)器模式加密,且MAC系統(tǒng)可以利用CMAC-AES(基于密碼的MAC-AES)。此外,作為一種用于通過(guò)使用一個(gè)塊加密密鑰而不使用兩個(gè)密鑰來(lái)執(zhí)行認(rèn)證加密的方法,已知認(rèn)證加密系統(tǒng)被稱為CCM模式(具有CBC-MAC的計(jì)數(shù)器)(例如,非專利文獻(xiàn)1)。
[0013]然而,所有上面的方法需要兩次通過(guò)處理,包括加密和MAC給出。也就是,數(shù)據(jù)需要被完全掃描至少兩次。此外,當(dāng)輸入明文有m塊時(shí),塊加密需要被調(diào)用m次用于在CCM系統(tǒng)中使用的加密和MAC函數(shù)。因此,塊加密需要被調(diào)用2m次用于對(duì)m±夬明文的認(rèn)證加密處理。也就是,諸如加密函數(shù)或MAC給出函數(shù)的處理函數(shù)需要每明文塊被調(diào)用兩次。處理函數(shù)每塊被調(diào)用兩次的系統(tǒng)也被稱為兩速率系統(tǒng)。兩次通過(guò)或兩速率系統(tǒng)具有的問(wèn)題是處理花費(fèi)長(zhǎng)時(shí)間且具有重負(fù)擔(dān)。
[0014]一種用于解決問(wèn)題的方法是使用塊加密的單次通過(guò)認(rèn)證加密系統(tǒng)。
[0015]在專利文獻(xiàn)1中描述的被稱為0CB模式的認(rèn)證加密系統(tǒng)首先被提議(下面將被稱為0CB系統(tǒng)K0CB系統(tǒng)使得在非專利文獻(xiàn)2中描述的被稱為可調(diào)塊加密的塊加密被擴(kuò)展。
[0016]可調(diào)塊加密是引入稱為Tweak的輔助變量到加密和解碼的認(rèn)證加密系統(tǒng)。當(dāng)塊尺寸為n比特時(shí),具有可調(diào)塊加密的加密可以被表達(dá)為“TE_K(TW,M)=C”,且解碼可以被表達(dá)為“TD_K(Tw,C)=M,,0對(duì)于任何組合(K,Tw),TE_K(Tw,*)在η比特空間中配置置換。它的逆置換是TD_K(Tw,*)。Tw表示輔助變量Tweak,且*表示變量。輔助變量Tw要求用于解碼,但是如果其被釋放,可調(diào)塊加密的安全性不會(huì)被影響。
[0017]在0CB系統(tǒng)中,首先,通過(guò)使用在非專利文獻(xiàn)3中描述的XEX模式,典型塊加密的加密函數(shù)被轉(zhuǎn)換為可調(diào)塊加密的加密函數(shù)或者可調(diào)指派的加密函數(shù)。然后,下面的TEJ(函數(shù)被調(diào)用來(lái)加密初始矢量N和明文M=(M[1],M[2],...,M[m])。每個(gè)M[i]被假設(shè)為η比特塊。0CB系統(tǒng)中使用的ΤΕ_Κ函數(shù)利用對(duì)應(yīng)于Tweak的變量(N,i)。N表示初始矢量且i表示塊識(shí)別號(hào)。
[0018]C[1]=TE_K((N,1),M[1]),
[0019]C[2]=TE_K((N,2),M[2]),
[0020]...,
[0021]C[m]=TE_K((N,m),M[m])
[0022]通過(guò)調(diào)用與如下的消息相同的TE_K函數(shù)來(lái)得到認(rèn)證標(biāo)簽T,,例如,對(duì)于SUM=M[1]xor M[2]xor....xor M[m],認(rèn)證標(biāo)簽T是對(duì)所有明文塊進(jìn)行X0R(異或)。
[0023]T = TE_K((N,m+l),SUM)
[0024]通過(guò)添加Tw=(N,i)以及通過(guò)秘密密鑰K計(jì)算的序列mask_K(N,i)到塊加密的加密函數(shù)E_k的輸入/輸出來(lái)執(zhí)行0CB系統(tǒng)中使用的TEJ(函數(shù)(在XEX模式中轉(zhuǎn)換)。XEX模式中的轉(zhuǎn)換公式被表達(dá)如下。轉(zhuǎn)換公式可以在下面被稱為XEX轉(zhuǎn)換公式。
[0025]TE_K((N,i),M[i])=E_K(M[i]xor mask_K(N,i)xor mask_K(N,i)
[0026]E_K用于計(jì)算掩蔽,且在OCB系統(tǒng)中啟用有效序列處理。也就是,可以有效地進(jìn)行從mask_K(N, i)至丨Jmask_K(N, i+1)的計(jì)算。
[0027]圖19是示意性示出0CB系統(tǒng)中的加密處理的解釋圖。在圖19中,虛線中的塊對(duì)應(yīng)于TE_K((N,i),*)。在圖19中忽略了計(jì)算掩蔽序列的處理的過(guò)程。
[0028]如在圖19中所圖示,EJ(被調(diào)用一次用于計(jì)算L以便在OCB系統(tǒng)中分別得到掩蔽序列和認(rèn)證標(biāo)簽T,但是作為一個(gè)整體,可能一次通過(guò)處理。此外,除了掩蔽序列的計(jì)算,每個(gè)塊中的處理可以并行執(zhí)行。更具體地,對(duì)于m塊明文的塊加密的調(diào)用數(shù)幾乎為m,且?guī)缀跏侵T如CCM系統(tǒng)和GCM(迦羅瓦/計(jì)數(shù)器模式)系統(tǒng)的其它兩次通過(guò)認(rèn)證加密系統(tǒng)的一半。
[0029]引用列表
[0030]專利文獻(xiàn)
[0031]PTL 1:美國(guó)專利N0.8321675說(shuō)明書(shū)
[0032]非專利文獻(xiàn)
[0033]NPL 1:Morris Dworkin,“Recommendat1n for Block Cipher Modes ofOperat1n: The CCM Mode for Authenticat1n and Confidentiality.,,,[線上]May2005 ,NIST Special Publicat1n 800-38C,互聯(lián)網(wǎng)〈URL:http://csrc.nist.gov/publicat1ns/nistpubs/800-38C/SP800-38C_updated-July20_2007.pdf>
[0034]NPL 2:Moses Liskov,Ronald L.Rivest,David Wagner,“Tweakable BlockCiphers.”,2002,Advances in Cryptology-CRYPTO 2002,Lecture Notes in ComputerScience 2442Springer 2002,p.31-46.
[0035]NPL 3:P.Rogaway,“Efficient Instantiat1ns of Tweakable Blockciphersand Refinements to Modes OCB and PMAC.”,2004,Advances in Cryptology-ASIACRYPT’04,LNCS 3329,p.16-31.
【發(fā)明內(nèi)容】
[0036]技術(shù)問(wèn)題
[0037]圖20是示意性示出0CB系統(tǒng)中的解碼處理的解釋圖。在CCM模式或GCM中,作為認(rèn)證加密的解碼處理只通過(guò)塊加密的加密函數(shù)E_K來(lái)獲取,而在0CB系統(tǒng)中,如圖20中所示,不僅塊加密的加密函數(shù)EJ(而且塊加密的解碼函數(shù)DJ(都被要求用于可調(diào)塊加密的解碼處理。
[0038]當(dāng)塊加密的加密函數(shù)和解碼函數(shù)都作為部分被要求用于認(rèn)證加密的加密和解碼時(shí),由于存儲(chǔ)器或電路規(guī)模,造成裝配上的負(fù)擔(dān)增加。代表塊加密AES通常在解碼處理中比在加密中更慢,且事實(shí)表明性能上的差異是在使用AES等的0CB系統(tǒng)中的加密處理和解碼處理之間導(dǎo)致的。
[0039]0CB及其類似單次通過(guò)認(rèn)證加密系統(tǒng)不能解決上面的問(wèn)題。
[0040]因此,本發(fā)明的目標(biāo)是提供一種認(rèn)證加密設(shè)備,用于獲取單次通過(guò)和單速率認(rèn)證加密,通過(guò)使用僅僅一個(gè)加密函數(shù)、一種加密設(shè)備、一種解碼設(shè)備、一種認(rèn)證加密方法、和一種用于認(rèn)證加密的程序而能夠執(zhí)行并行處理且整體執(zhí)行加密和解碼處理。
[0041 ]問(wèn)題的解決方案
[0042]根據(jù)本發(fā)明的一種認(rèn)證加密設(shè)備,其特征在于包括認(rèn)證加密裝置,用于每?jī)蓧K應(yīng)用使用指派有用于輪函數(shù)的輔助變量的加密函數(shù)的兩輪Feistel結(jié)構(gòu)給輸入明文或加密文本,由此生成加密文本或解碼的明文。
[0043]根據(jù)本發(fā)明的一種加密設(shè)備,其特征在于包括加密裝置,用于每?jī)蓧K應(yīng)用使用指派有用于輪函數(shù)的輔助變量的加密函數(shù)的兩輪Feistel結(jié)構(gòu)給輸入明文,由此生成加密文本。
[0044]根據(jù)本發(fā)明的一種解碼設(shè)備,其特征在于包括解碼裝置,用于每?jī)蓧K應(yīng)用使用指派有用于輪函數(shù)的輔助變量的加密函數(shù)的兩輪Feistel結(jié)構(gòu)給輸入加密文本,由此生成解碼的明文。
[0045]根據(jù)本發(fā)明的一種認(rèn)證加密方法,其特征在于,信息處理裝置每?jī)蓧K應(yīng)用使用指派有用于輪函數(shù)的輔助變量的加密函數(shù)的兩輪Feistel結(jié)構(gòu)給輸入明文或加密文本,由此生成加密文本或解碼的明文。
[0046]根據(jù)本發(fā)明的用于認(rèn)證加密的一種程序,其特征在于,使得計(jì)算機(jī)執(zhí)行每?jī)蓧K應(yīng)用使用指派有用于輪函數(shù)的輔助變量的加密函數(shù)的兩輪Feistel結(jié)構(gòu)給輸入明文或加密文本,由此生成加密文本或解碼的明文的處理。
[0047]發(fā)明的有益效果
[0048]根據(jù)本發(fā)明,有可能獲得單次通過(guò)且單速率(one-pass and one-rate)的認(rèn)證加密,能夠通過(guò)僅使用一個(gè)加密函數(shù)來(lái)執(zhí)行并行處理且整體執(zhí)行加密和解碼處理。
【附圖說(shuō)明】
[0049][圖1]描述了根據(jù)本發(fā)明示意性示出整個(gè)加密處理的示例性處理流程的解釋圖。
[0050][圖2]描述了根據(jù)本發(fā)明示意性示出整個(gè)解碼處理的示例性處理流程的解釋圖。
[0051][圖3]描述了示出認(rèn)證加密系統(tǒng)中提供的示例設(shè)備的框圖。
[0052][圖4]描述了示出認(rèn)證加密系統(tǒng)的示例功能結(jié)構(gòu)的框圖。
[0053][圖5]描述了示意性示出實(shí)現(xiàn)具有兩個(gè)輸入變量的偽隨機(jī)函數(shù)的示例的解釋圖。
[0054][圖6]描述了(a)示意性示出使用塊加密XEX模式的采用偽隨機(jī)函數(shù)的整個(gè)加密處理的示例處理流程的解釋圖,以及(b)示意性示出使用塊加密XEX模式的采用偽隨機(jī)函數(shù)的整個(gè)解碼處理的示例處理流的解釋圖。
[0055][圖7]描述了示意性示出實(shí)現(xiàn)具有兩個(gè)輸入變量的偽隨機(jī)函數(shù)的其它示例的解釋圖。
[0056][圖8]描述了根據(jù)第一示例實(shí)施例示出認(rèn)證加密系統(tǒng)的示例加密操作的流程圖。
[0057][圖9]描述了根據(jù)第一示例實(shí)施例示出認(rèn)證加密系統(tǒng)的示例解碼操作的流程圖。
[0058][圖10]描述了示出認(rèn)證加密系統(tǒng)的其它示例結(jié)構(gòu)的框圖。
[0059][圖11]描述了根據(jù)第二示例實(shí)施例示意性示出整個(gè)加密處理的示例處理流程的解釋圖。
[0060][圖12]描述了根據(jù)第二示例實(shí)施例示意性示出整個(gè)解碼處理的示例處理流程的解釋圖。
[0061][圖13]描述了根據(jù)第三示例實(shí)施例示意性示出整個(gè)加密處理的示例處理流程的解釋圖。
[0062][圖14]描述了根據(jù)第三示例實(shí)施例示意性示出整個(gè)解碼處理的示例處理流程的解釋圖。
[0063][圖15]描述了示出用于并行處理的加密設(shè)備100的示例結(jié)構(gòu)的框圖。
[0064][圖16]描述了示出用于并行處理的解碼設(shè)備200的示例結(jié)構(gòu)的框圖。
[0065][圖17]描述了根據(jù)本發(fā)明示出認(rèn)證加密設(shè)備的示例最小結(jié)構(gòu)的框圖。
[0066][圖18]描述了根據(jù)本發(fā)明示出認(rèn)證加密設(shè)備的其它示例結(jié)構(gòu)的框圖。
[0067][圖19]描述了示意性示出OCB系統(tǒng)中整個(gè)加密處理的示例處理流程的解釋圖。
[0068][圖20]描述了示意性示出0CB系統(tǒng)中整個(gè)解碼處理的示例處理流程的解釋圖。
【具體實(shí)施方式】
[0069]首先描述本發(fā)明的概述。本發(fā)明涉及基于塊加密系統(tǒng)使用公共密鑰的加密系統(tǒng),對(duì)每個(gè)確定尺寸進(jìn)行加密。本發(fā)明對(duì)每?jī)蓚€(gè)塊應(yīng)用兩輪Feistel結(jié)構(gòu)。被指派以被稱為Tweak的輔助變量Tw(調(diào)整值)的加密函數(shù)被用于兩輪Feistel結(jié)構(gòu)的一輪函數(shù)。以這種方式,F(xiàn)eistel結(jié)構(gòu)以兩個(gè)塊為單位用于認(rèn)證加密,由此解決上述的問(wèn)題。
[0070]下面將更具體地描述根據(jù)本發(fā)明的認(rèn)證加密系統(tǒng)。本發(fā)明使用下面的變量的序列,假設(shè)將輔助變量Tw引入到加密函數(shù)中。被用作輔助變量Tw的變量的序列可以在下面被稱為“輔助序列”。配置輔助序列,使得不同值被輸入到要在由一個(gè)密鑰進(jìn)行加密時(shí)被調(diào)用的所有加密函數(shù)中。下面將描述這樣一種情況:用于加密一個(gè)明文的具有不同值的初始矢量N、用于識(shí)別單位為兩個(gè)塊的組塊的標(biāo)識(shí)符1、以及用于識(shí)別組塊中的塊與其它處理的j的組合或者(N,i,j)的組合中的輔助序列被用作輔助變量Tw,但是輔助序列不限于此。輔助序列被配置為在加密和解碼時(shí)都能夠生成用于一個(gè)明文的相同的值。例如,用于生成輔助序列的值預(yù)先被定義。上面的示例滿足上面的條件,因?yàn)檩o助序列的值可以基于初始矢量和明文或加密文本的長(zhǎng)度而被唯一地定義。
[0071]例如,假設(shè)每個(gè)塊具有η比特,當(dāng)要被處理的明文或加密文本中的塊的數(shù)目為2m時(shí),則可以假設(shè)(N,1,1),、(N,1,2)、(N,2,1)、(N,2,2)、...、(N,m,1)、(N,m,2)根據(jù)每個(gè)塊的索引被用作輔助序列,且(N,m,3)被用作用于生成認(rèn)證標(biāo)簽的輔助序列。
[0072]使用這樣定義的輔助序列,要被加密的明文Μ在加密處理中在雙塊組塊中被處理。通過(guò)使用輔助序列04,1),04,2)和鍵控的偽隨機(jī)函數(shù)?_1((*,*)作為具有兩個(gè)輸入變量的偽隨機(jī)函數(shù),第i個(gè)加密文本組塊(C[2i],C[21-l])被生成以用于第i個(gè)明文組塊(M[21-l],M[2i],其中(i = l,...,m))。“偽隨機(jī)函數(shù)”是加密函數(shù)基于其屬性的名稱。偽隨機(jī)函數(shù)可以是例如塊加密或鍵控散列函數(shù)的加密函數(shù)。
[0073]圖1是根據(jù)本發(fā)明示意性示出整個(gè)加密處理的示例處理流程的解釋圖。在圖1中,虛線中的塊在兩輪Fe i ste 1結(jié)構(gòu)中,且對(duì)應(yīng)于以兩塊為單位的加密處理中的處理塊。例如,假設(shè)第一輸入變量作為輔助序列,通過(guò)使用具有輔助序列(N,i,1)作為第一輸入變量的F_K((N,i,1),*)、以及具有輔助序列(N,i,2)作為第一輸入變量的F_K( (N,i,2),*)在每個(gè)處理塊中如下地獲取第i個(gè)加密文本組塊(CDiLCD1-lD^or表示每比特的異或。
[0074]C[21-l]=F_K((N,i,l),M[21-l])xor M[2i],
[0075]C[2i]=F_K((N,i,2),C[21-l])xor M[2i_l]
[0076]..?公式(1)
[0077]公式(1)表示通過(guò)使用對(duì)應(yīng)于第i個(gè)明文組塊中的奇數(shù)塊的輔助序列(N,i,l)對(duì)第i個(gè)明文組塊中奇數(shù)塊M[2i_l]運(yùn)行偽隨機(jī)函數(shù)FJ(所獲得的結(jié)果與第i個(gè)明文組塊中被假設(shè)為作為第i個(gè)加密文本組塊中的奇數(shù)塊的加密文本塊C[21-1 ]的偶數(shù)塊M[2i]的X0R,以及通過(guò)使用對(duì)應(yīng)于第i個(gè)明文組塊中的偶數(shù)塊的輔助序列(N,i,2)對(duì)由此獲得的加密文本塊C[2i_l]運(yùn)行偽隨機(jī)函數(shù)FJ(而獲得的結(jié)果與第i個(gè)明文組塊中被假設(shè)為作為第i個(gè)加密文本組塊中的偶數(shù)塊加密文本塊C[2i]的奇數(shù)塊M[21-1]的X0R。針對(duì)所有組塊執(zhí)行該處理。
[0078]除了上面的處理,通過(guò)使用用于生成明文的認(rèn)證標(biāo)簽的輔助序列(N,m,3)和具有兩個(gè)具有密鑰K的輸入變量的偽隨機(jī)函數(shù)FJ(,認(rèn)證標(biāo)簽T被生成用于對(duì)明文中所有偶數(shù)塊Μ[2]、Μ[4]、...、M[2m]取XOR的明文校驗(yàn)和SUM=M[2]xor M[4]xor...xor M[2m],。在圖1中,點(diǎn)劃線中的塊對(duì)應(yīng)于用于認(rèn)證標(biāo)簽生成處理的處理塊。通過(guò)使用例如使用輔助序列(叱111,3)作為第一輸入變量的?_1(((叱111,3),*),如下地獲取認(rèn)證標(biāo)簽1'。在計(jì)算3而中401?可以是任何群組中的加法,諸如算術(shù)加法。
[0079]T=F_K((N,m,3),SUM)..?公式(2)
[0080]用于偶數(shù)塊和奇數(shù)塊的處理可以被互相替換。在此情況下,明文校驗(yàn)和可以從每個(gè)奇數(shù)塊中生成。此外,劃分為以兩個(gè)塊為單位的組塊不限于此。當(dāng)序列處理的需求相對(duì)不高時(shí),諸如沒(méi)有在線計(jì)算時(shí),一個(gè)組塊可以以例如第一塊和第三塊來(lái)創(chuàng)建。輔助序列可以被配置為使得不同值被輸入到圖中所有偽隨機(jī)函數(shù)中,同時(shí)用一個(gè)密鑰來(lái)進(jìn)行加密。在圖中,帶圈+的符號(hào)表示進(jìn)行X0R。
[0081 ]加密文本C、初始矢量N和認(rèn)證標(biāo)簽T被發(fā)送到解碼側(cè)。
[0082]當(dāng)要被解碼的加密文本C、初始矢量N和認(rèn)證標(biāo)簽T在解碼側(cè)被輸入時(shí),首先根據(jù)相同規(guī)則來(lái)確定輔助序列。例如,假設(shè)加密文本C=(C[1],C[2],...,C[2m]),每塊具有η比特,(Ν,1,1),(Ν,1,2),(Ν,2,1),(Ν,2,2),...,(N,m,1),(N,m,2)可以根據(jù)加密文本C中的每個(gè)塊的索引被確定為用作輔助序列,且(N,m,3)可以基于關(guān)于初始矢量N和加密文本的長(zhǎng)度的信息被確定為用作用于生成認(rèn)證標(biāo)簽的輔助序列。
[0083]而且,在解碼處理中,要被解碼的加密文本C被劃分為以兩個(gè)塊為單位的組塊,針對(duì)第i個(gè)加密文本組塊(C[21-l],C[2i],其中(i = l,...,m))使用配置有具有與加密中引入的輔助序列相同的輔助序列的偽隨機(jī)函數(shù)F_K(*,*)的兩輪Feistel結(jié)構(gòu)來(lái)執(zhí)行解碼處理。由此,可以獲取解碼的明文組塊(1’[21]^’[21-1])。
[0084]此外,當(dāng)基于對(duì)明文中的所有生成的偶數(shù)塊M’[2]、M’[4]、...、M’[2m]取XOR得到的明文校驗(yàn)和執(zhí)行與在加密期間執(zhí)行的處理相同的處理時(shí),獲取解碼檢查認(rèn)證標(biāo)簽T。
[0085]圖2是根據(jù)本發(fā)明示意性示出整個(gè)解碼處理的示例處理流程的解釋圖。在圖2中,虛線中的塊在兩輪Feistel結(jié)構(gòu)中,并且對(duì)應(yīng)于以兩塊為單位的解碼處理的處理塊。在每個(gè)處理塊中,通過(guò)使用采用輔助序列(N,i,1)作為第一輸入變量的F_K( (N,i,1),*),,以及使用采用輔助序列(^2)作為第一輸入變量的?_1(((^2),*),獲取如下地解碼的明文塊M’[2i]和M’[21-1]。
[0086]M,[21-l]=F_K((N,i,2),C[21-l])xor C[2i],
[0087]M,[2i]=F_K((N,i,l),M,[21-l])xor C[2i_l]
[0088]...公式(3)
[0089]針對(duì)所有加密文本組塊執(zhí)行這些處理。通過(guò)使用用于生成解碼的明文的認(rèn)證標(biāo)簽的輔助序列(N,m,3)和具有兩個(gè)具有密鑰K的輸入變量的偽隨機(jī)函數(shù)FJ(,解碼檢查認(rèn)證標(biāo)簽T’被生成用于對(duì)解碼的明文中的所有偶數(shù)塊M’[2],M’[4],...,M’[2m]取XOR的用于解碼檢查的明文校驗(yàn)和SUM’=M[2]xor M’[4]xor...xor M’[2m]。在圖2中,點(diǎn)劃線中的塊對(duì)應(yīng)于認(rèn)證標(biāo)簽生成處理的處理塊。通過(guò)使用采用輔助序列(N,m,3)作為第一輸入變量的F_K((N,m,3),*),如下地獲取解碼檢查認(rèn)證標(biāo)簽T,。
[0090]T,=F_K((N,m,3),SUM,)..?公式(4)
[0091]當(dāng)獲取解碼檢查認(rèn)證標(biāo)簽T’時(shí),對(duì)于輸入認(rèn)證標(biāo)簽T是否匹配解碼