基于橢圓曲線離散對(duì)數(shù)的無(wú)證書(shū)混合加密
基于橢圓曲線離散對(duì)數(shù)困難問(wèn)題,結(jié)合KEM-DEM混合加密結(jié)構(gòu),提出一個(gè)新的無(wú)證書(shū)混合加密方案。采用橢圓曲線簽名算法保證用戶自主生成公鑰的不可偽造性,利用用戶公鑰生成的會(huì)話密鑰以對(duì)稱加密算法加密明文,保證明文的機(jī)密性,對(duì)明文空間的大小沒(méi)有嚴(yán)格限制。該方案主要涉及橢圓曲線上的點(diǎn)運(yùn)算,與原有無(wú)證書(shū)加密方案中采用雙線性對(duì)計(jì)算相比具有更高的執(zhí)行效率。
一、基于橢圓曲線離散對(duì)數(shù)的無(wú)證書(shū)混合加密相關(guān)知識(shí)
1、橢圓曲線離散對(duì)數(shù)問(wèn)題
E(Fq)橢圓曲線離散對(duì)數(shù)問(wèn)題(ECDLP)定義如下:假設(shè)P是E(Fq)上的一個(gè)點(diǎn),Q是E(Fq)上為P的倍數(shù)點(diǎn),即存在整數(shù)x>0,使Q=xP,在已知P和Q的前提下,計(jì)算出z在計(jì)算上是不可行的,即:
![]()
其中,EECDLP為可忽略量。
2、無(wú)證公鑰加密的形式化定義
一個(gè)無(wú)證書(shū)加密方案一般由7個(gè)算法組成:
(1)參數(shù)生成算法(Setup):輸入安全參數(shù)k,返回系統(tǒng)參數(shù)params和主密鑰masterkey;
(2)部分私鑰提取算法(Partial-Private-Key-Extract):輸入系統(tǒng)參數(shù)params和主密鑰masterkey以及一個(gè)身份標(biāo)識(shí)ID,輸出部分私鑰DID;
(3)設(shè)定秘密值算法(Set-Secret-Value):輸入?yún)?shù)params,輸出一個(gè)秘密值SID;
(4)設(shè)定私鑰算法(Set-Private-Key):輸出參數(shù)params,輸出一個(gè)用戶(全)私鑰SKID;
(5)設(shè)定公鑰算法(Set-Public-Key):輸入?yún)?shù)params、部分私鑰DID、秘密值SID、私鑰SKID,輸出一個(gè)公鑰PKID;
(6)加密算法(Encrypt):輸入?yún)?shù)params、公鑰PKID以及待加密消息m,輸出一個(gè)密文c;
(7)解密算法(Decrypt):輸入?yún)?shù)params、用戶身份ID、(全)私鑰SKID以及待解密的密文c,輸出一個(gè)密文m或一個(gè)錯(cuò)誤指示符。
二、基于橢圓曲線離散對(duì)數(shù)的無(wú)證書(shū)混合加密方案
本文基于橢圓曲線離散對(duì)數(shù)問(wèn)題和無(wú)證書(shū)加密一般模型,提出一個(gè)新的無(wú)證書(shū)混合加密方案。方案的具體執(zhí)行過(guò)程如下:
(1)密鑰生成中心系統(tǒng)參數(shù)生成:選取一個(gè)基域Fq,q為一個(gè)大素?cái)?shù)。選取一個(gè)定義在‘上的橢圓曲線E(Fq)和E(Fq)上的一個(gè)生成元P,其階為一個(gè)可整除#E(q)的大素?cái)?shù)n。選擇一個(gè)安全對(duì)稱加密算法(ENCx,DECK)。選擇2個(gè)密碼安全Hash函數(shù)H:{O,I)*:→(0,l)K,其中,{O,I}K是對(duì)稱加密使用的會(huì)話密鑰空間。公開(kāi)系統(tǒng)參數(shù)params={g,E(Fq),n,P,n,Hi,{0,1)n,(ENCK,DECK))。
(2)密鑰生成中心生成主密鑰:中隨機(jī)選取一個(gè)正整數(shù)s∈Rzn,設(shè)主私鑰為Msk=5;計(jì)算主公鑰Mpk=sP;密鑰生成中心保留主私鑰Msk,公開(kāi)主公鑰Mpk。
(3)密鑰生成中心生成部分私鑰:用戶將身份ID提交給密鑰生成中心后,密鑰生成中心隨機(jī)選取一個(gè)正整數(shù)f∈R Z,計(jì)算eid= tP=(xT,modn);計(jì)算e=H(ID)+xr mod,n;
計(jì)算w= (seID +t) modn。設(shè)部分私鑰為D/D=(t,w),通過(guò)安全信道將其傳輸給用戶。
(4)用戶私鑰生成:隨機(jī)選取一個(gè)正整數(shù)sk∈rZn,設(shè)用戶私鑰為SKID=sk,用戶自己保留。
(5)用戶公鑰生成:計(jì)算PK=skP=(XPK,yPK);隨機(jī)選取一個(gè)正整數(shù)rzn,計(jì)算Q= rP=(xo,yQ);計(jì)算ePK=H(XPK¨yPK)+XQ modn;計(jì)算u=(r-w-ePK)modn。設(shè)用戶公鑰為PKID= (PK.T.ePK,∞,用戶將PKID公開(kāi)給系統(tǒng)其他用戶。
(6)加密,分為3個(gè)執(zhí)行過(guò)程:
1)驗(yàn)證用戶公鑰的真實(shí)性,計(jì)算(xo‘,yQ‘)=up十(H(ID)+xtmodn).ePK.Mpk十ePKT,計(jì)算ePK‘=H(XPX¨yPK)+xt‘。
如果ePK’=ePA,驗(yàn)證成功;否則驗(yàn)證失敗放棄加密。明顯地,驗(yàn)證的正確性基于:
![]()
2)生成會(huì)話密鑰及其封裝:隨機(jī)選取一個(gè)正整數(shù)kERzn,計(jì)算K=Hl(kPK +kP);定義會(huì)話密鑰的封裝為q=kP;
3)加密消息:對(duì)消息M,計(jì)算C=ErViCK(M),輸出密文(C1,C)。
(7)解密,分為2個(gè)執(zhí)行過(guò)程:
1)恢復(fù)會(huì)話密鑰:K/L= Hl(skq+cl);
2)解密消息:若上文的計(jì)算結(jié)果為上,則輸出錯(cuò)誤指示;
否則,計(jì)算M= DECK (C)恢復(fù)明文。
小知識(shí)之公鑰加密
公鑰加密,也叫非對(duì)稱(密鑰)加密(public key encryption),屬于通信科技下的網(wǎng)絡(luò)安全二級(jí)學(xué)科,指的是由對(duì)應(yīng)的一對(duì)唯一性密鑰(即公開(kāi)密鑰和私有密鑰)組成的加密方法。它解決了密鑰的發(fā)布和管理問(wèn)題,是目前商業(yè)密碼的核心。在公鑰加密體制中,沒(méi)有公開(kāi)的是明文,公開(kāi)的是密文,公鑰,算法。










