亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Beller-Yacobi協(xié)議的研究與模擬實現(xiàn)

        2012-08-13 09:19:12劉城霞
        關(guān)鍵詞:私鑰公鑰密鑰

        劉城霞

        北京信息科技大學(xué)計算機學(xué)院 北京 100101

        0 引言

        在無線通信中隨著移動用戶對信息服務(wù)的需求越來越多,對移動通信系統(tǒng)安全的要求也越來越高,這不僅包括數(shù)據(jù)通信的安全性,還要求身份認(rèn)證的合法性。目前實現(xiàn)身份認(rèn)證最可行最安全的方式是設(shè)計基于密碼技術(shù)的認(rèn)證協(xié)議,并將其運用于認(rèn)證系統(tǒng)中,Beller-Yacobi認(rèn)證協(xié)議便是實現(xiàn)該功能的協(xié)議之一。

        1 Beller-Yacobi傳輸協(xié)議

        Beller-Yacobi密鑰傳輸協(xié)議被稱為混合密鑰傳輸協(xié)議,它同時使用了對稱加密技術(shù)和非對稱加密技術(shù),也就是說除了使用公鑰加密和數(shù)字簽名外,還使用了對稱加密技術(shù)。

        1.1 信息安全的模型

        信息安全的基本模型可以用圖1表示。

        圖1 信息安全的基本模型

        通信雙方欲傳遞某個消息,則需要考慮通信的安全性。安全傳輸技術(shù)有以下兩個基本成分:①消息的安全傳輸,包括對消息的加密和認(rèn)證。②通信雙方共享的某些秘密信息,如加密密鑰。為了消息的安全傳輸,還需要一個可信的第三方,其作用可能是負(fù)責(zé)向通信雙方發(fā)布秘密信息或者在通信雙方有爭議時進(jìn)行仲裁。所以安全的網(wǎng)絡(luò)通信必須考慮4個方面:①加密算法。②用于加密算法的秘密信息。③秘密信息的分布和共享。④使用加密算法和秘密信息以獲得安全服務(wù)所需的協(xié)議。

        1.2 Beller-Yacobi傳輸協(xié)議的描述

        Beller-Yacobi協(xié)議實現(xiàn)密鑰的傳輸,提供相互的實體認(rèn)證和顯式的密鑰認(rèn)證。首先介紹一下簡化的Beller-Yacobi協(xié)議:

        (1) 系統(tǒng)參數(shù)的選擇。模ns整數(shù)的乘法群中,適當(dāng)?shù)乃財?shù)ns和生成元a被確定為ElGamal系統(tǒng)參數(shù)。可信服務(wù)器T選擇適當(dāng)?shù)乃財?shù)p和q來為RSA簽名生成公開模數(shù)nT =pq,然后為公開指數(shù)eT=3計算一個私鑰dT,使得eT dT=1mod(p-1)(q -1)。

        (2) 系統(tǒng)參數(shù)分發(fā)。T給每個參與方(A和B)分發(fā)一個可信副本,包括T的公鑰和系統(tǒng)參數(shù)nT,(ns,α),并為每個參與方X制定一個惟一的可辨別名稱或識別串IX(如X的名稱和地址)。

        (3) 終端的初始化。每個充當(dāng)A(終端)的參與方都隨機選擇一個整數(shù)a,1<a≤ns-2,并且計算其ElGamal簽名公鑰uA =αamodnS。A保密相應(yīng)的私鑰a,并將uA的一個可信副本傳送給T,通過帶外方式(安全信道或者是親自送交)來向T識別它自己。T生成公鑰證書并返回給A:certA=(IA, uA, GA)(此證書包含A的身份和ElGamal簽名公鑰 , 以 及 由GA=ST( IA, uA)=(h( IA, uA))dTmodnT 產(chǎn) 生 的T的RSA簽名GA)。

        (4) 服務(wù)器端的初始化。每個充當(dāng)B(服務(wù)器)的參與方都產(chǎn)生一個加密私鑰和一個基于公開指數(shù)eB=3的RSA的相應(yīng)公鑰。B選擇一個公鑰模數(shù)nB,為兩個適當(dāng)?shù)拿孛芩財?shù)的乘積,并自己計算相應(yīng)的RSA私鑰dB。B將nB傳送給v,通過所謂的帶外(安全信道)方式來向T識別它自己。T產(chǎn)生公鑰證書并返回給B:certB=(IB,nB,GB)(此證書包含B的身份核RSA加密公鑰nB,以及由GA=ST(IA,uA)=(h(IA,uA))dTmodnT產(chǎn)生的T的RSA簽名GB)。

        其中EK(y)表示使用密鑰K和算法E對y進(jìn)行對稱加密。PX(y)表示應(yīng)用X的公鑰函數(shù)對y加密后的結(jié)果。SX(y)表示應(yīng)用X的私鑰函數(shù)對y簽名后的結(jié)果。IX表示參與方X的一個識別串。h(y)表示y的雜湊,它與簽名方案一同使用。如果y=(y1,...,yn),則輸入為這多個值的級聯(lián)。

        協(xié)議執(zhí)行過程如圖2所示。

        圖2 Beller-Yacobi協(xié)議描述圖

        可信服務(wù)器T負(fù)責(zé)分發(fā)統(tǒng)一的參數(shù),并且針對接收到的關(guān)于 A,B,產(chǎn)生相應(yīng)的簽名,然后發(fā)送相應(yīng)的公鑰證書??尚欧?wù)器T的所有操作都是該協(xié)議的系統(tǒng)設(shè)置準(zhǔn)備階段,也就是又可信第三方分發(fā)密鑰的階段,協(xié)議的關(guān)鍵在與A,B之間的信息交流,以達(dá)到傳送密鑰K的目的。每當(dāng)A,B要將信息傳送給對方的時候都要將由可信服務(wù)器T生成的公鑰認(rèn)證一并傳送,讓對方驗證自己的身份。其中 A使用ElGamal簽名用來產(chǎn)生會話密鑰K(協(xié)議傳輸對象)。而B對ElGamal簽名的認(rèn)證確定密鑰的來源,以及密鑰的正確性。

        2 RSA算法原理

        可信服務(wù)器T要進(jìn)行RSA公鑰的生成及生成公鑰認(rèn)證,那么就有必要了解一下RSA的算法原理和密鑰是如何生成的。

        2.1 RSA密鑰生成算法

        每個實體產(chǎn)生一個RSA公鑰以及一個相應(yīng)的私鑰。每個實體A執(zhí)行如下操作:

        ① 隨機生成兩個不同的大素數(shù)p和q。

        ② 計算n=pq和φ=(p-1)(q-1)。

        ③ 隨機選擇整數(shù)e,1<e<φ,使得gcd(e,φ)=1

        ④ 使用擴(kuò)展的歐幾里得算法計算滿足ed≡1modφ的惟一整數(shù)d,1<d<φ。

        ⑤A的公鑰為(n,e),私鑰為d。

        RSA密鑰生成中的整數(shù)e,d分別稱為加密指數(shù)和解密指數(shù),n稱為模數(shù)。

        2.2 RSA公鑰加密

        B為A對消息m加密,A進(jìn)行解密。

        (1) 加密,B執(zhí)行如下操作:

        ① 獲得A的可信公鑰(n,e)。

        ② 把消息表示成區(qū)間[0,n-1]內(nèi)的整數(shù)m。③ 計算c=memodn。

        ④ 將密文c發(fā)送給A。

        (2) 解密,為了從c中恢復(fù)明文m,A執(zhí)行:用私鑰d恢復(fù)m=cdmodn。

        2.3 RSA簽名認(rèn)證

        實體A簽署消息m∈Μ。任何實體B都可驗證A的簽名,并從中恢復(fù)消息m。

        (1) 簽名生成,實體A執(zhí)行如下操作:

        ① 計算取值在區(qū)間[0,n-1]內(nèi)的整數(shù)=R(m)。

        ② 計算s=modn。

        ③A對m的簽名s。

        (2) 驗證,為驗證A的簽名s且恢復(fù)消息m,實體B應(yīng)當(dāng):

        ① 獲得A的可信公鑰(n,e)。

        ② 計算=semodn。

        ③ 驗證∈ΜR;否則拒絕接收簽名。

        ④ 恢復(fù)

        簽名驗證可行性證明。若s是消息m的簽名,則有s=modn, 其 中=R(m)。 因 為ed≡1modφ, 故

        2.4 RSA加解密算法.NET實現(xiàn)

        (1) RSA公鑰產(chǎn)生

        調(diào)用.NET環(huán)境下的類可直接產(chǎn)生由XML封裝的公鑰。將公鑰發(fā)給A,B,自己保留私鑰,用以后來的簽名和解密。代碼如下:

        public void RSAKey(out string xmlKeys, out string xmlPublicKey)

        {RSACryptoServiceProvider rsa = new RSACryptoService Provider();//初始化對象

        xmlKeys=rsa.ToXmlString(true);//產(chǎn)生私鑰

        xmlPublicKey=rsa.ToXmlString(false);//公鑰 }

        RSA參數(shù)實際存儲在兩個字段中,一個是xmlKeys,存儲公開的RSA參數(shù),另一個是xmlPublicKey,存儲公開和私有的RSA參數(shù)。系統(tǒng)產(chǎn)生的公鑰和私鑰都由XML封裝,形式如:

        (2) RSA公鑰加密

        public string RSAEncrypt(string xmlPublicKey, string m_strEncryptString)

        {RSACryptoServiceProvider rsa = new RSACryptoService Provider();//產(chǎn)生對象

        rsa.FromXmlString(xmlPublicKey); //初始化

        PlainTextBArray = (new UnicodeEncoding()).GetBytes(m_strEncryptString);//轉(zhuǎn)字節(jié)序列

        CypherTextBArray = rsa.Encrypt(PlainTextBArray, false);//加密

        Result = Convert.ToBase64String(CypherTextBArray);return Result; }

        算法將所要機密的明文字符串轉(zhuǎn)換成一個字節(jié)序列,存儲在PlainTextBArray中。再調(diào)用RSA類的Encrypt方法對經(jīng)過處理的密文進(jìn)行加密,以字符串的類型返回。

        (3) RSA簽名

        RSA簽名需要關(guān)鍵的兩個步驟,求哈希(雜湊)值和簽名。下面是GetHash實現(xiàn)代碼:

        public bool GetHash(string m_strSource, ref string strHashData)

        {HashAlgorithm MD5 = HashAlgorithm.Create("MD5");/產(chǎn)生Hash算法

        Buffer

        =System.Text.Encoding.GetEncoding("GB2312").GetBytes(m_strSource);

        HashData = MD5.ComputeHash(Buffer);//計算Hash值

        strHashData = Convert.ToBase64String(HashData);

        return true; }

        這里首先對要求哈希值的字符串進(jìn)行處理,轉(zhuǎn)換成字節(jié)序列,然后計算指定字節(jié)數(shù)組的哈希值,最后將哈希值以字符串的形式輸出。獲得哈希描述后,對該哈希值進(jìn)行簽名。代碼如下:

        public bool SignatureFormatter(string p_strKeyPrivate, byte[]HashbyteSignature, ref byte[] EncryptedSignatureData)

        { RSACryptoServiceProvider RSA = new System.Security.Cryptography.RSACryptoServiceProvider();

        RSA.FromXmlString(p_strKeyPrivate);//用已有的私鑰初始化對象

        SignatureFormatter RSAFormatter = new SignatureFormatter(RSA);

        RSAFormatter.SetHashAlgorithm("MD5");//得到Hash算法

        EncryptedSignatureData = RSAFormatter.CreateSignature(HashbyteSignature);//產(chǎn)生簽名

        return true; }

        首先用之前產(chǎn)生的公鑰進(jìn)行初始化,然后將簽名的算法設(shè)置為 MD5,最后對之前求得的哈希值進(jìn)行簽名。有關(guān)ElGamal簽名和DES對稱加密方法在系統(tǒng)中也實現(xiàn)了,篇幅原因這里不再贅述。

        3 系統(tǒng)運行和測試

        3.1 系統(tǒng)設(shè)置階段

        首先由可信服務(wù)器T產(chǎn)生各個參數(shù),如圖3。公鑰(nt,e)顯示的是系統(tǒng)產(chǎn)生的RSA公鑰,ElGamal參數(shù)是由系統(tǒng)產(chǎn)生的一個隨機大素數(shù)及其本原根。隨后,將參數(shù)發(fā)送給A,B,兩方接收并存儲參數(shù),以備后用。

        圖3 可信服務(wù)器T的系統(tǒng)設(shè)置

        接著,終端A和可信服務(wù)器B產(chǎn)生各自的識別串和參數(shù),然后傳送給可信服務(wù)器T。如圖4所示,Ib為B的識別串,nb是可信服務(wù)器用于RSA加密的公鑰。

        終端A的系統(tǒng)設(shè)置與B類似,不在贅述。A和B設(shè)置后,可信服務(wù)器T接收A,B的參數(shù),通過RSA簽名產(chǎn)生Ga,Gb,再送給A,B。A,B接收各自簽名,即公鑰認(rèn)證,則準(zhǔn)備階段完成。

        圖4 服務(wù)器端B的系統(tǒng)設(shè)置

        3.2 協(xié)議執(zhí)行階段

        這里只描述A與B之間的信息傳輸和發(fā)送。系統(tǒng)設(shè)置完成后,首先由服務(wù)器端B產(chǎn)生一個隨機數(shù)發(fā)送給終端A,發(fā)送的同時將準(zhǔn)備階段時T產(chǎn)生的公鑰認(rèn)證一起發(fā)送,用于A方對于信息來源的檢測。如圖5所示,終端A通過RSA認(rèn)證,來檢驗來自B方的信息。

        圖5 終端A認(rèn)證信息

        認(rèn)證成功之后,終端 A計算其 ElGamal簽名,并和 A的公鑰認(rèn)證一同發(fā)送給 B。發(fā)送前首先對簽名進(jìn)行相應(yīng)的RSA公鑰加密,以及DES對稱加密。由此,B方首先接收到的是加密之后的簽名以及認(rèn)證,然后B方再對加密結(jié)果進(jìn)行解密,最后便是服務(wù)器端B對來自A的信息的認(rèn)證,如圖6所示。

        圖6 服務(wù)器B的最終驗證結(jié)果

        認(rèn)證中首先進(jìn)行公鑰認(rèn)證,通過RSA認(rèn)證來檢驗信息的來源,而后是ElGamal認(rèn)證,認(rèn)證傳輸?shù)拿荑€K的真確性,兩者均驗證成功才能說明協(xié)議執(zhí)行成功。

        4 總結(jié)

        本文分析了Beller-Yacobi協(xié)議的每一個步驟以及所涉及的加密、簽名算法。并以RSA加密算法及簽名算法為例做了詳細(xì)的介紹,并用C# 語言在.NET平臺下編寫了相應(yīng)的算法程序,實現(xiàn)了整個Beller-Yacobi密鑰傳輸協(xié)議的過程。

        [1] 徐勝波,武傳坤,王新梅.移動通信網(wǎng)中的認(rèn)證與密鑰分配[J].電子學(xué)報.1996.

        [2] Alfred J.Menezes, PaulC.van Oorschot, Scott A.Vanstone著,胡磊,王鵬譯.應(yīng)用密碼學(xué)手冊[M].北京:電子工業(yè)出版社.2005.

        [3] 王亞弟,束妮娜,韓繼紅編著.密碼協(xié)議形式化分析[M].北京:機械工業(yè)出版社.2006.

        猜你喜歡
        私鑰公鑰密鑰
        探索企業(yè)創(chuàng)新密鑰
        比特幣的安全性到底有多高
        基于改進(jìn)ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
        密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
        一種基于混沌的公鑰加密方案
        一種基于虛擬私鑰的OpenSSL與CSP交互方案
        一種對稱密鑰的密鑰管理方法及系統(tǒng)
        基于ECC的智能家居密鑰管理機制的實現(xiàn)
        HES:一種更小公鑰的同態(tài)加密算法
        SM2橢圓曲線公鑰密碼算法綜述
        国产精品成年片在线观看| 中文字幕亚洲一区二区三区| 人妖一区二区三区视频| 精人妻无码一区二区三区| 国产精品网站在线观看免费传媒 | 久久精品国产亚洲av蜜点| 成熟丰满熟妇av无码区| 婷婷五月综合丁香在线| 91美女片黄在线观看| 亚州韩国日本区一区二区片| 成人av毛片免费大全| 亚洲熟妇无码av在线播放| 日本50岁丰满熟妇xxxx| 视频一区精品自拍| 亚洲第一页综合av免费在线观看 | 99亚洲男女激情在线观看| 国产一级毛片卡| 女人一级特黄大片国产精品| 人妖在线一区二区三区| 中国少妇×xxxx性裸交| 亚洲av综合日韩| 亚洲是图一区二区视频| 羞涩色进入亚洲一区二区av | 欧美丰满熟妇xxxx性ppx人交| 精品国产乱码久久久久久影片| 欧美人与禽交zozo| 中文字幕国产精品专区| 国产成人一区二区三区乱| 狠狠精品久久久无码中文字幕| 亚洲乱码日产精品bd在线观看 | 日韩精品人妻系列中文字幕| 无码孕妇孕交在线观看| 毛茸茸性xxxx毛茸茸毛茸茸| 亚洲粉嫩av一区二区黑人| 亚洲av高清一区二区在线观看| 中文字幕日韩三级片| 放荡的闷骚娇妻h| 无人视频在线播放在线观看免费| 在线观看国产白浆一区三区| 久久久久无码国产精品一区| 香蕉人妻av久久久久天天|