專利名稱:一種身份認(rèn)證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字信息的一種身份認(rèn)證的方法。
背景技術(shù):
隨著計算機(jī)技術(shù)、密碼學(xué)技術(shù)、信息安全技術(shù)、電子商務(wù)技術(shù)、數(shù)字內(nèi)容技術(shù)的發(fā)展,認(rèn)證技術(shù)得到了廣泛的使用。認(rèn)證(Authentication)是證實實體身份的過程,是保證系統(tǒng)安全的重要措施之一。當(dāng)主體提供服務(wù)時,需要確認(rèn)來訪者的身份,訪問者也需要確認(rèn)服務(wù)提供者的身份。
密碼技術(shù)一直在身份證明中起到重要作用,根據(jù)所用密碼體制的不同,可分為基于對稱密鑰技術(shù)的身份認(rèn)證,和基于公開密鑰的身份認(rèn)證兩類。
目前,使用最多的還是基于PKI機(jī)制的非對稱認(rèn)證算法。
PKI(Public Key Infrastructure,公鑰基礎(chǔ)設(shè)施),是目前信息安全領(lǐng)域應(yīng)用最廣泛的技術(shù)之一,比如安全的瀏覽器、安全電子郵件、電子數(shù)據(jù)交換、Internet上信用卡以及VPN等。
PKI的認(rèn)證的一個基礎(chǔ)就是數(shù)字證書,目前使用的數(shù)字證書一般為x.509數(shù)字證書。
數(shù)字證書是一段包含用戶身份信息、用戶公鑰信息以及身份驗證機(jī)構(gòu)數(shù)字簽名的數(shù)據(jù),也是一個經(jīng)證書認(rèn)證中心。數(shù)字簽名中包含公鑰擁有者信息以及公鑰。
基于數(shù)字證書的認(rèn)證,一般是認(rèn)證的雙方相互交換證書,然后使用根證書分別對對方證書的有效性進(jìn)行檢查。
舉例說明假設(shè)有兩臺設(shè)備A、設(shè)備B,它們都有各自的證書和私鑰,且證書都由證書認(rèn)證中心cert_root簽發(fā)。設(shè)備A的證書和私鑰分別為cert_a和key_a,設(shè)備B的證書和私鑰分別為cert_b和key_b,設(shè)備A的根證書為cert_root_a,設(shè)備B的根證書為cert_root_b?,F(xiàn)在如果設(shè)備A要認(rèn)證設(shè)備B則要執(zhí)行如下步驟,在此過程中設(shè)備A稱為認(rèn)證方,設(shè)備B稱為待認(rèn)證方(1)待認(rèn)證方將其證書cert_b發(fā)給認(rèn)證方,認(rèn)證方用其根證書cert_root_a驗證證書cert_b,如果驗證不通過則認(rèn)證失敗,驗證通過進(jìn)入下一步;(2)認(rèn)證方產(chǎn)生隨機(jī)數(shù)rand_a,用證書cert_b中的公鑰對隨機(jī)數(shù)rand_a進(jìn)行加密得到加密結(jié)果enc_rand_a,并將加密結(jié)果enc_rand_a發(fā)送給待認(rèn)證方;
(3)待認(rèn)證方使用私鑰key_b對加密結(jié)果enc_rand_a進(jìn)行解密得到解密結(jié)果rand_a’,并將解密結(jié)果rand_a’發(fā)送給認(rèn)證方;(4)認(rèn)證方比較解密結(jié)果rand_a’和隨機(jī)數(shù)rand_a,如果相等則認(rèn)證成功,否則認(rèn)證失敗。
在認(rèn)證過程中,需要第三方的參與,并且運算復(fù)雜,因為加密與解密必須使用RSA、ECC等非常復(fù)雜的數(shù)學(xué)運算,如RSA必須使用冪指數(shù)運算,ECC必須使用橢圓曲線運算。這樣就非常耗系統(tǒng)資源或者硬件資源,在某些情況下甚至無法實現(xiàn)。此外,在離線的情況下,根本不可能到證書認(rèn)證中心去驗證。因此,其應(yīng)用領(lǐng)域也受到了限制。比如IC卡和IC卡使用設(shè)備之間的認(rèn)證,由于其復(fù)雜性現(xiàn)在基本沒有采用該認(rèn)證機(jī)制。
目前,在某些應(yīng)用中,需要一種簡單有效的認(rèn)證方式,在不需要第三方參與的情況下,能夠以一種簡單的方式實現(xiàn)認(rèn)證功能。比如,在數(shù)字電視接口內(nèi)容保護(hù)中,參與通信的接口需要進(jìn)行認(rèn)證,并且該認(rèn)證在很短的時間內(nèi)需要重復(fù)進(jìn)行,證書頒發(fā)機(jī)構(gòu)無法參與認(rèn)證的過程,因此要求算法非常簡單,PKI機(jī)制不太適用。再比如,在IC卡、USB Key與應(yīng)用終端或者服務(wù)器需要進(jìn)行認(rèn)證,也需要算法簡單,否則IC卡、USB Key無法在規(guī)定時間內(nèi)完成復(fù)雜運算。
正是基于以上背景,需要一種簡單的算法,達(dá)到身份認(rèn)證的目的。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,提供一不需要第三方參與且算法簡單的身份認(rèn)證方法。
本發(fā)明為解決上述技術(shù)問題所采用技術(shù)方案是,一種身份認(rèn)證方法,包括以下步驟(1)密鑰頒發(fā)機(jī)構(gòu)按一定規(guī)律成對產(chǎn)生公鑰、私鑰并分配給設(shè)備;認(rèn)證方的一對公鑰、私鑰分別為P1、S1;待認(rèn)證方的一對公鑰、私鑰為P2、S2;(2)認(rèn)證方產(chǎn)生一個隨機(jī)數(shù)R,并同認(rèn)證方公鑰P1一起傳送到待認(rèn)證方;(3)待認(rèn)證方對收到隨機(jī)數(shù)R、公鑰P1后,將公鑰P2發(fā)送給認(rèn)證方;待認(rèn)證方將隨機(jī)數(shù)R、公鑰P1、私鑰S2進(jìn)行處理得到結(jié)果Y2,并將結(jié)果Y2傳送到認(rèn)證方;(4)認(rèn)證方收到公鑰P2后,將隨機(jī)數(shù)R、公鑰P2、私鑰S1進(jìn)行處理得到結(jié)果Y1;比較結(jié)果Y1與結(jié)果Y2是否相同,如是通過驗證;如否驗證失敗。
采用上述方法不需要第三方參與,也不需要加密、解密算法,可以快速安全地實現(xiàn)身份認(rèn)證。
具體地,步驟(1)所述按一定規(guī)律成對產(chǎn)生公鑰、私鑰具體是,各公鑰與各私鑰的轉(zhuǎn)置進(jìn)行點積的結(jié)果相同;
步驟(3)所述待認(rèn)證方將隨機(jī)數(shù)R、公鑰P1、私鑰S2進(jìn)行處理具體是,待認(rèn)證方將公鑰P1與私鑰S2的轉(zhuǎn)置進(jìn)行點積后得到點積結(jié)果K2,再將點積結(jié)果K2與隨機(jī)數(shù)R進(jìn)行處理;步驟(4)所述認(rèn)證方將隨機(jī)數(shù)R、公鑰P2、私鑰S1進(jìn)行處理具體是,認(rèn)證方將公鑰P2與私鑰S1的轉(zhuǎn)置進(jìn)行點積后得到點積結(jié)果K1,再將點積結(jié)果K1與隨機(jī)數(shù)R進(jìn)行處理。
采用此方法只用簡單的乘法運算、加法或者異或運算即可實現(xiàn)。
進(jìn)一步的,所述按一定規(guī)律成對產(chǎn)生公鑰、私鑰具體是,各公鑰與各私鑰的轉(zhuǎn)置進(jìn)行點積的結(jié)果在有限域內(nèi)相同。
進(jìn)一步的,步驟(3)所述將點積結(jié)果K2與隨機(jī)數(shù)R進(jìn)行處理具體是,采用密碼單向算法對點積結(jié)果K2與隨機(jī)數(shù)R進(jìn)行處理;步驟(4)所述將點積結(jié)果K1與隨機(jī)數(shù)R進(jìn)行處理具體是,采用密碼單向算法對點積結(jié)果K1與隨機(jī)數(shù)R進(jìn)行處理。
更進(jìn)一步的,所述密碼單向算法為HASH算法。
優(yōu)選的,黑名單采用公鑰形式存在,步驟(4)中認(rèn)證方收到公鑰P2后,先判斷公鑰P2是否在黑名單列表中,如是則不再進(jìn)行認(rèn)證,認(rèn)證失?。蝗舴駝t繼續(xù)認(rèn)證。這樣就能將失效設(shè)備控制在系統(tǒng)之外。
本發(fā)明的有益效果是,不需要加密解密,也不需要證書,在不需要第三方參與的情況下,能快速實現(xiàn)設(shè)備間的身份認(rèn)證??梢詫崿F(xiàn)離線身份認(rèn)證,同時同時也具備黑名單功能。采用此認(rèn)證方法的芯片,可以降低開發(fā)難度、降低芯片規(guī)模、提高運算速度,降低芯片成本。適用于IC卡、USB Key、芯片等基于硬件實現(xiàn)的認(rèn)證,也適用于基于軟件實現(xiàn)的認(rèn)證。
具體實施例方式
密鑰頒發(fā)機(jī)構(gòu)從自己的密鑰庫中給每個主體分配一對公鑰/私鑰;密鑰頒發(fā)機(jī)構(gòu)的密鑰庫必須保密,認(rèn)證主體的私鑰也必須保密;每個設(shè)備的公鑰/私鑰對均不一樣,這樣可以實現(xiàn)對某個指定設(shè)備的吊銷。
每個設(shè)備將公鑰/私鑰對均保存在設(shè)備中,其中私鑰要求秘密保存,不允許其它設(shè)備訪問。公鑰可以讓其它的設(shè)備訪問。
令公鑰和私鑰均為1×n的向量,即為行向量;公鑰、私鑰的生成規(guī)律為各公鑰與各私鑰的轉(zhuǎn)置進(jìn)行點積的結(jié)果在有限域內(nèi)相同。密鑰的轉(zhuǎn)置為n×1的向量,即為列向量。兩個向量的點積結(jié)果為標(biāo)量。只要是公鑰與私鑰的產(chǎn)生符合一定的規(guī)則,且該規(guī)則能比較快速地被驗證,那么基于本發(fā)明的思想都可以采用。
假設(shè)有2臺設(shè)備,分配公鑰P1、私鑰S1至設(shè)備A;分配公鑰P2、私鑰S2至設(shè)備B;為簡單起見,設(shè)在有限域GF(28)中進(jìn)行計算。
設(shè)備A公鑰P1為(23,21,1,187),私鑰S1為(134,36,50,98);設(shè)備B公鑰P2為(78,0,156,17),私鑰S2為(7,51,217,159);以設(shè)備A對設(shè)備B進(jìn)行認(rèn)證為例,設(shè)備A為認(rèn)證方,設(shè)備B為待認(rèn)證方,認(rèn)證過程為(1)設(shè)備A首先產(chǎn)生一個隨機(jī)數(shù)R,并和公鑰P1一起傳送給設(shè)備B;(2)設(shè)備B在接收隨機(jī)數(shù)R和公鑰P1后,將自己的公鑰P2傳送給設(shè)備A;(3)設(shè)備B在有限域256內(nèi),計算點積結(jié)果K2=P1·S2T=(23,21,1,187)·(7,51,217,159)T=206,然后計算結(jié)果Y2=f(206,R),并將結(jié)果Y2傳送給設(shè)備A;(4)設(shè)備A收到公鑰P2,在黑名單列表查看公鑰P2是否包含在其中,如是,結(jié)束認(rèn)證,認(rèn)證不成功,并拒絕對設(shè)備B服務(wù);如否,繼續(xù)認(rèn)證程序;(5)設(shè)備A在有限域256內(nèi),計算點積結(jié)果K1=P2·S1T=(78,0,156,17)·(134,36,50,98)T=206,然后計算結(jié)果Y1=f(206,R);Y=f(K,R)一般事先約定,并采用密碼學(xué)領(lǐng)域的單向算法,如HASH算法。
(6)設(shè)備A比較結(jié)果Y1與結(jié)果Y2,如果兩者相等,則認(rèn)為認(rèn)證通過,否則認(rèn)證失敗。
一般現(xiàn)有的PKI技術(shù)體系中,一般以證書的ID作為黑名單。由于每對公鑰/私鑰均是配對的,公鑰值本身很短,因此可以直接作為黑名單。定義公鑰為黑名單的成員,就可以達(dá)到數(shù)字證書黑名單的功能。
另外,隨機(jī)數(shù)R可以由認(rèn)證雙方的任何一方產(chǎn)生,不僅限于認(rèn)證方。本實施例中所有的運算均在有限域中進(jìn)行,一般要求所有的數(shù)均為非負(fù)整數(shù);并且公鑰、私鑰向量成員的個數(shù),一般根據(jù)要求選擇,私鑰的成員整數(shù)值要求必須為大整數(shù),整數(shù)的位數(shù)根據(jù)具體要求考慮。比如安全性、存儲空間等因素。為了降低關(guān)聯(lián)性,可要求在公鑰中保持一定數(shù)量的元素值為0。特別的公鑰的各元素可至包含0和1。
涉及具體運算時,加法也可以使用異或運算代替。
本發(fā)明完全拋棄了傳統(tǒng)的PKI機(jī)制,在整個認(rèn)證過程中,不需要使用傳統(tǒng)的數(shù)字證書以及復(fù)雜的運算,只需要進(jìn)行簡單的乘法、加法或者異或運算就能完成對參與方的認(rèn)證??梢詰?yīng)用在需要進(jìn)行身份認(rèn)證的場合,特別是硬件的場合,如IC卡、數(shù)字接口認(rèn)證等,可以安全、高性能、低成本的實現(xiàn)身份的認(rèn)證。
權(quán)利要求
1.一種身份認(rèn)證方法,其特征在于,包括以下步驟(1)密鑰頒發(fā)機(jī)構(gòu)按一定規(guī)律成對產(chǎn)生公鑰、私鑰并分配給設(shè)備;認(rèn)證方的一對公鑰、私鑰分別為P1、S1;待認(rèn)證方的一對公鑰、私鑰為P2、S2;(2)認(rèn)證方產(chǎn)生一個隨機(jī)數(shù)R,并同認(rèn)證方公鑰P1一起傳送到待認(rèn)證方;(3)待認(rèn)證方對收到隨機(jī)數(shù)R、公鑰P1后,將公鑰P2發(fā)送給認(rèn)證方;待認(rèn)證方將隨機(jī)數(shù)R、公鑰P1、私鑰S2進(jìn)行處理得到結(jié)果Y2,并將結(jié)果Y2傳送到認(rèn)證方;(4)認(rèn)證方收到公鑰P2后,將隨機(jī)數(shù)R、公鑰P2、私鑰S1進(jìn)行處理得到結(jié)果Y1;比較結(jié)果Y1與結(jié)果Y2是否相同,如是通過驗證;如否驗證失敗。
2.如權(quán)利要求1所述一種身份認(rèn)證方法,其特征在于,步驟(1)所述按一定規(guī)律成對產(chǎn)生公鑰、私鑰具體是,各公鑰與各私鑰的轉(zhuǎn)置進(jìn)行點積的結(jié)果相同;步驟(3)所述待認(rèn)證方將隨機(jī)數(shù)R、公鑰P1、私鑰S2進(jìn)行處理具體是,待認(rèn)證方將公鑰P1與私鑰S2的轉(zhuǎn)置進(jìn)行點積后得到點積結(jié)果K2,再將點積結(jié)果K2與隨機(jī)數(shù)R進(jìn)行處理;步驟(4)所述認(rèn)證方將隨機(jī)數(shù)R、公鑰P2、私鑰S1進(jìn)行處理具體是,認(rèn)證方將公鑰P2與私鑰S1的轉(zhuǎn)置進(jìn)行點積后得到點積結(jié)果K1,再將點積結(jié)果K1與隨機(jī)數(shù)R進(jìn)行處理。
3.如權(quán)利要求2所述一種身份認(rèn)證方法,其特征在于,所述按一定規(guī)律成對產(chǎn)生公鑰、私鑰具體是,各公鑰與各私鑰的轉(zhuǎn)置進(jìn)行點積的結(jié)果在有限域內(nèi)相同。
4.如權(quán)利要求1、2或3所述一種身份認(rèn)證方法,其特征在于,步驟(3)所述將點積結(jié)果K2與隨機(jī)數(shù)R進(jìn)行處理具體是,采用密碼單向算法對點積結(jié)果K2與隨機(jī)數(shù)R進(jìn)行處理;步驟(4)所述將點積結(jié)果K1與隨機(jī)數(shù)R進(jìn)行處理具體是,采用密碼單向算法對點積結(jié)果K1與隨機(jī)數(shù)R進(jìn)行處理。
5.如權(quán)利要求4所述一種身份認(rèn)證方法,其特征在于,所述密碼單向算法為HASH算法。
6.如權(quán)利要求1所述一種身份認(rèn)證方法,其特征在于,步驟(4)中認(rèn)證方收到公鑰P2后,先判斷公鑰P2是否在黑名單列表中,如是則不再進(jìn)行認(rèn)證;若否則繼續(xù)認(rèn)證。
全文摘要
本發(fā)明涉及數(shù)字信息的一種身份認(rèn)證的方法。本發(fā)明所要解決的技術(shù)問題是,提供一不需要第三方參與且算法簡單的身份認(rèn)證方法。采用技術(shù)方案包括以下步驟認(rèn)證方產(chǎn)生一個隨機(jī)數(shù)R,并同認(rèn)證方公鑰P1一起傳送到待認(rèn)證方;待認(rèn)證方將隨機(jī)數(shù)R、公鑰P1、私鑰S2進(jìn)行處理得到結(jié)果Y2;認(rèn)證方將隨機(jī)數(shù)R、公鑰P2、私鑰S1進(jìn)行處理得到結(jié)果Y1;比較結(jié)果Y1與結(jié)果Y2是否相同,如是通過驗證;如否驗證失敗。本發(fā)明能快速實現(xiàn)設(shè)備間的身份認(rèn)證。適用于IC卡、USB Key、芯片等基于硬件實現(xiàn)的認(rèn)證,也適用于基于軟件實現(xiàn)的認(rèn)證。
文檔編號H04L9/08GK101064610SQ20071020070
公開日2007年10月31日 申請日期2007年5月25日 優(yōu)先權(quán)日2007年5月25日
發(fā)明者劉賢洪 申請人:四川長虹電器股份有限公司