專利名稱:用一個檢驗者鑒別至少一個受驗者的方案的制作方法
技術領域:
本發明涉及用一臺檢驗設備去鑒別至少一臺識別設備的一種新的過程,本鑒別方案利用一種基于約束線性方程組(CLE)問題的零認識的協議。
CLE問題在于找出一些值,這些值滿足一定數目的與某一素數d同余的線性方程組,此外,這些值又為一個規定集合X的成員。
本發明特別適用于所謂“受保護的”或“安全的”通信,其中兩臺設備,一臺識別設備(通常稱作受驗者)與一臺檢驗設備(通常的稱作檢驗者),在一條其安全沒有保證的信道上交換數據。在這種情況中,互相識別的手段是必不可少的。換言之,在給予一位用戶訪問數據或服務之前,必須使一位檢驗者能夠鑒別該用戶的身份。在許多情況下都需要這種受保護的通信手段。這類例子有傳輸金融業務的銀行計算機、自動提款機、收費電視解碼器及公用電話等。
對于這些應用,常用的鑒別方案是基于秘密密匙加密方法的。直到目前為止,這一直是可資利用的最簡單的技術。在這些實例中,受驗者(通常是一張瀟灑卡(SMART-CARD))檢驗者(諸如讀卡機.解碼器或公用電話)共用同一個秘密密匙。其鑒別是用一種對稱算法或一個單向運算函數完成的。
這些方法的缺點是雙方(受驗者與檢驗者)必須互相合作且對外保密。這一條件并不是永遠可以驗證的。例如由于秘密密匙是在通信線路的兩端,即在受驗者與檢驗者之中存在的,因此偽造者可以購置其檢驗設備并分析它,以了解其內部操作并隨后制造高性能的設備。
眾所周知,迄今為止的用于克服已有傳統方法缺點的方法中,零認識協議能提供最高的安全級。這些零認識協議的功能性特征在于下述事實即使與檢驗者進行無數筆交易且對這一檢驗者本身進行全面分析,也不足以復制該設備。在以下Fiat等人的名義申請的美國專利4748668及以Shamir的名義申請的美國專利4932056中,值得注意地公布了零認識證明的描述。在后一專利中描述了一種基于所謂置換核心問題的稱為“PKP”的鑒別方案。
本發明人研制了一種基于出錯位組譯碼問題的新鑒別方案。這一問題在由Jacgues Stern在CRYPTO93會議上提出的名為“基于出錯位組譯碼的一種新鑒別方案”的論文之中描述(該會議的報告集將在“計算機科學演講筆記”中發表)。上述各種方法的缺點是受驗者與檢驗者之間的信息交換較慢。此外,用在這些方法中的公開或秘密密匙通常是用非常大的位數編碼的,需要可觀的處理能力與存儲器容量。
因此,本發明之目的在于提出一種使檢驗者能快速鑒別受驗者并能采用中等大小的公開與秘密密匙的新鑒別方案,來克服上述缺點。
本發明之目的還在于采用一種根據秘密與公開密匙的密碼技術的、由一個檢驗者鑒別至少一個受驗者的過程,這一鑒別過程是用零認識協議完成的,其中的公開密匙是使用約束線性方程組建立的。這一過程最好包括下述步驟——為了啟動受驗者與檢驗者之間的對話,要建立一個秘密密匙,該秘密密匙由至少一個其坐標選自一固定集合X的n維矢量S構成;以及建立一個公開密匙,該公開密匙包括一個其系數隨機地選自0至d-1整數值的m×n維矩陣m,其中d為接近一個數C的平方的素數;以及包括至少一個矢量P,使P=g(M(S)),其中g為一個由集合X及整數集合(1,2,…,d-1)的子群G所定義的函數,并且該函數將G的元素g(x)與矢量P的各坐標x聯系起來,使得x被唯一地描述為g(x)與X的元素k(x)的積;
——受驗者接收由檢驗者生成的一或多個隨機數,然后將一個密碼散列函數作用在是S、M與這些隨機數的函數的參數上,把用這種方法得出的提交(commitment)返加給檢證者;——根據檢驗者所選擇的隨機數,檢驗者用接收的值與公開密匙檢驗該提交是否正確;——根據所需的安全級,重復上述操作若干次。
在上述鑒別方案中,我們都使用一個所有用戶公用的但隨機地構造的m×n矩陣m。每一位用戶收到一個其坐標選自一個固定集合X的n位字的秘密密匙S。這一集合X中包含c個元素,使得從1至d-1的所有整數都能被唯一地描述成G的一個元素與X的一個元素的積。在該情況下,該系統計算公開密匙P,使P=g(M(S))。
此外,該鑒別過程主要基于提交(commitment)的技術概念,如果U是二進制元素的一個序列,則U的提交是通過一個給定的密碼散列函數生成的U的象.該提交將被用作一個單向函數,換言之,它是通過公布一個用以建立它的原始序列而公開的。散列函數本身可用諸如R.Rivest在CRYPTO90會議上所描述的“MD4”法得出(CPYPTO90報告集,計算機科學演講筆記集,303-311頁)。我們也可使用按照名為“MD5”的方法這一方法的、或者美國標準SHA(安全散列標準,聯邦信息處理標準刊物,1992年10月30日提出)的變形。最后,也可以采用諸如DES(數據加密標準)的加密算法來代替散列函數,其中待散列的報文扮演密匙和/或要編碼的明文的角色。但是我們建議迭代這種散列,使散列的壓縮結果好具有128位。
受驗者也采用一個隨機排列發生器來置換二進制矢量。這種發生器可由一個數字化的白噪聲源制成,例如由所謂的“肘彎”區中的一個反向極化的二極管制成,也可利用Gunter的美國專利4、817、147、或Aragon的4、649、419中所描述的軟件方法來制成。
按照以本發明為基礎的鑒別過程的第一實施例,在全部各種過程分有的第一步驟中,受驗者均將其身份和/或簽有其名的公開密匙透露給檢驗者,然后——在隨機選取兩個分別為m與n維并由從0至d-1的整數構成的矢量U與V及兩個分別為m與n個元素的排列p與q之后,受驗者計算那些通過散列函數H生成的提交h1、h2與h3,并將它們發送給檢驗者h1=H(p,q,MU+P*V)h2=H(U.p,V·q)h3=H((U+S).p,(V-T).q)其中P*V表示與d同余的矢量P與V的分量的逐項積;而T則為矢量K(M(S)),它能被受驗者作為S的一個函數計算出來,或者存儲在該設備的存儲器的一個物理上不可訪問的部分中。
——檢驗者隨機選擇一個數字“b”,使0<b<4,并將它發送給受驗者;——受驗者隨即返回一個如下定義的答復r· 如果b=1,則r由值p,q,U與V構成;· 如果b=2,則r由p,q,及矢量U′=(U+S)與V′=(V-T)構成;· 如果b=3,則 r 由矢量U.p,V.q,U″=(U+S).p及V″=(V-T).q構成;——檢驗者接收答復r,并進行如下步驟· 如果b=1,它便從接收到的元素(p,q,U與V)中計算值MU+P*V與V.p,如果答復正確的話,它們必定使h1=H(p,q,MU+P*V)h2=H(U.p,V.q)· 如果b=2,它便從接收到的元素(p,q,及矢量U′與V′)中計算值MU′+P*V’,U’.p與V’.g,如果答復正確的話,它們必定使h1=H(p,q,MU’+P*V)h3=H(U’.p,V’.q);
如果b=3,它便驗證下式是否成立h2=H(U.p,V.q)h3=H(U″,V″)并且檢驗者還計算兩個矢量U″-U.p及V″-V.q,并檢驗它們是否只由X的元素組成。
在按照本發明的鑒別過程的另一個優選實施例中,在所有各種過程公有的第一步驟中,受驗者將其身份和/或其簽名的公開密匙透露給檢驗者,然后——在隨機選擇兩個分別為m與n維并由從o至d-1的整數構成的矢量U與V,及兩個分別為m與n個元素的排列之后,受驗者計算那些通過散列函數H生成的提交h1與h2,并將它們發送給檢驗者h1=H(p,q,Mv+P*V)h2=H(U.p.V.q)其中P*V表示與d同余的矢量P與V的分量的逐項積;——檢驗者從o至d-1中隨機選擇一個數"a",并將其發送給受驗者;——然后,受驗者計算下列矢量,并將它們發送給檢驗者Y=(aS+U).pZ=(aT-V).q其中T為矢量k(M(S)),受驗者能將它作為S的函數計算出來,或將它存儲在該設備的存儲器的一個物理上不能訪問部分中。
——檢驗者隨機選擇一位"b"(=o或1),并將它送至受驗者——然后,受驗者返回一個如下定義的答復r· 如果b=o,則r由值p與q構成,· 如果b=1,則r由矢量U’=S.p與V’=Tq構成;——檢驗者接收答復r并進行如下步驟· 如果b=0,它便從接收到的元素(p,q)中計算矢量Y’與Z’,使(Y)·p=Y及(Z’)·q=Z,然后計算矢量M(Y’)-P*Z’,如果答復是正確的,它必定使h1=H(p,q,M(Y’)-P*Z’);· 如果b=1,檢驗者計算矢量Y-aU’與aV’-Z,如果答復是正確的,它們必定使h2=H(Y-aU′,aV’-Z);并且檢驗者還檢驗矢量U’與V’是否只包含X的元素。
在下面參照附圖作為非限制性實例所取的兩個較佳實施例的描述中,本發明的其它特征與優點將是顯而易見的。
圖1是說明按照本發明的鑒別過程的第一實施例的圖;圖2是說明按照本發明的鑒別過程的第二實施例的圖。
本發明涉及利用零認識協議的一種新的鑒別方案。在這種情況下,過程的安全性是基于約束線性組(CLE)問題的。CLE問題在于找出n個值,這些值滿足與一個素數d同余的一定數目的線性方程組,且又為一個規定集合X的成員。如果變量的數目是大的,則此問題非常難于用已知的計算方法求解。這里所描述的系統實際上對應于n+m個變量的m個方程的情況,其中m=n=20,這是極大地超出當今計算機能力的一種情況。
為了實現按照本發明的鑒別方案,有關當局選擇并公布一個m×n維的矩陣M,其中最好m=n。這一矩陣包含一些從整數0至d-1中隨機選出的系數,其中d通常為接近一個數c的平方的一個素數.最好d=257,即等于(16×16)+1。當局還選擇n維矢量S的一個集合,其坐標是從一個集合X中隨機選擇的。該集合X是作為一個集合G的函數確定的,集合G是由與D同余的一個數的逐次冪級數構成的一個乘法群,這一集合被選擇成使集合G中的元素個數為c。在這種情況下,便存在著一個也由c個元素構成的集合X,并且1與d-1之間的所有整數都可唯一地定義為,集合G中的一個元素與集合X中的一個元素的積。因此我們用g(u)來表示涉及在1與d-1之間的一個整數u的唯一分解的G的元素,并用k(u)表示X的對應元素。如果U是由1至d-1的整數組成的一個矢量,則g(u)是通過G由U的坐標的映象構成的,而k(u)也是類似也定義的。
將以這一方法所確定的秘密密匙分配給各受驗者。此外,公布由矢量P=g(M(S))構成的所有公開密匙。在本發明的范圍內,這一公開密匙與秘密密匙一樣,可利用一張G與X的元素的表,只用少數字節編碼。這樣,如果d=257并且m=n=20,我們就得到10字節的密匙,這是本發明超過其它已知的零認識協議的一個優點。
下面描述為按照本發明的鑒別方案所特有的兩個實施例第一過程參照圖1描述,其中示意性地示出為了執行鑒別而用在受驗者與檢驗者之間的通信協議。諸如瀟灑卡或電子鑰匙之類形式的受驗者必須是物理上不可訪問的。例如,在瀟灑卡的情況下,必須是不能讀取其內存的。另一方面,對檢驗者的工作環境不能施加任何要求。再者,受驗者在其非易失性存儲器中有其秘密密匙S,這就是n維的矢量S及m×n維的矩陣M;而檢驗者在其非易失性存儲器中有用矢量P構成的所有公開密匙,或者有足夠的數據來鑒別一個簽名密匙P是否已由一個授權的當局產生。當受驗者愿意與檢驗者通信時,這兩個設備執行下述協議——首先,受驗者向檢驗者透露其身份與/或簽有其名的密匙;檢驗者確認其身份和P相符合;——接著,受驗者隨機選擇兩個分別為m與n維的由0至d-1的整數構成的矢量U與V,其中最好m=n;加上兩個分別為m與n個元素的隨機排列p與q然后,受驗等計算下列提交并將它們送到檢驗者h1=H(p,q,MU+P*V)h2=H(U.p,V.q)h3=〔(U+S).p,(V-T).q〕其中P*V指定與d同余的矢量P與V的分量的逐項積,而T為矢量k(M(S));——檢驗者選擇一個隨機數“b”,使0<b<4,并將它送至受驗者;——受驗者將如下定義的一個答復r送給檢驗者· 如果b=1,則r包含值p,q,U與V;· 如果b=2,則r包含p,q,及矢量U’(U+S)與V’=(V-T);· 如果b=3,則r包含矢量U,p,V,q,V"=(U+S).p與V"=(V-T)·q;——檢驗者接收答復r并進行如下步驟· 如果b=1,它從所接收的元素(p,q,U與V)中計算MU+P*V,U·p與V.q的值;如果答復是正確的,這些值應使h1=H(p,q,M+P*V)h2=H(U.p,V,q)·如果b=2,它從所接收的元素(p,q,與矢量U’及V’)中計算MU’+P*V’,U’·p與V’.q的值,如果答復正確,它們應使
h1=H(p.q,MU’+P*V’)h3=H(U’.p,V’.q)·如果b=3,它驗證下式是否成立h2=H(U.p,V.q)h3=H(U",V")并且檢驗者還計算兩個矢量U"-U.p及V.q-S",并檢驗它們是否只由X的元素構成。
如果上述測試全部成功,檢驗者便認為鑒別協議已成功地結束,并將一個控制信號發送到受保護系統的輸入/輸出接口,以啟動一次業務;否則拒絕受驗者如果需要更高級別的安全性,檢驗者可重復上述步驟t遍。
在圖1中概括了上述操作,其中左側示出由受驗者執行的操作,而右側則為檢驗者執行的操作。
下面參照圖2描述按照本發明的鑒別方案的另一個實施例。
第二實施例要求比前面一個作更多的計算,但更快地降低非法穿透該受保護系統的概率。這一實施例包含下述步驟,這些步驟概括在用與圖1相同方式表示的圖2中——首先,受驗者向檢驗者透露其身份和/或其簽名的密匙,象第一實施例一樣;
——接著,受驗者隨機選擇兩個分別為m與n維(m可以等于n)的由0至d-1的整數構成的矢量U與V,加上兩個分別為m與n個元素的隨機排列p與q。然后受驗者計算下述提交,并將它們送至檢驗者h1=H(p,q,MU+P*V)h2=H(U.p,V.q)其中P*V指定與d同余的矢量P與V的分量的逐項積,并且H為一個加密散列函數。
——檢驗者從0至d-1中選擇一個隨機數“a”,并將其送給受驗者。
——受驗者計算下列矢量,并將它們送至檢驗者Y=(aS+U).pZ=(aT-V).q其中T為矢量k(M(S)),它能被受驗者作為S的一個函數計算出來,或者存儲在該設備的存儲器的一個物理上不可訪問的部分中;——檢驗者隨機選擇一位"b"(=0,1),并將其送至受驗者;——受驗者返回如下定義的一個答復r· 如果b=0,則r包含值p與q,· 如果b=1,則r包含矢量U’=S.p與V’=Tq;
——檢驗者接收答復r,并進行如下步驟· 如果b=0,它從所接收的元素(p.q)中計算矢量Y’與Z’,使(Y’).p=Y及(Z’).q=Z,然后計算矢量M(Y’)-P*Z’,如果答復正確,則矢量應使h1=H(p,q,M(Y’)-P*Z’);· 如果b=1,檢驗者計算矢量Y-aU’及aV’-Z,如果答復正確,則該兩個矢量應使h2=H(Y-aU’,aV’-Z);并且檢驗者還檢驗矢量U’與V’,是否只包含X的元素。
如果關于b的測試是成功的,檢驗者便認為已成功地結束鑒別協議,并將一個控制信號送至受保護系統的輸入/輸出接口,以啟動一次業務;否則拒絕受驗者。
為了提高安全級別,受驗者與檢驗者可重復上述步驟t遍,在這樣的情況下,只有當所有遍數的測試都成功時才認為鑒別協議是成功的。最好的選擇t使0<t<60。對于上述第一與第二實施例,值t=35與t=20分別在許多應用中提供滿意的安全級別。
上述兩個實施例不是限制性的,它們可用若干方法修正而仍保持在本發明的范圍中。
權利要求
1.一種用于檢驗者根據使用秘密與公開密匙的密碼技術去鑒別至少一個受驗者的過程,本鑒定過程用一種零認識協議達到,其中的公開密鑰是應用約束線性方程組建立的。
2.按照權利要求1所述的過程,包括下述步驟①為了啟動一次受驗者與檢驗者之間的對話,建立一個秘密密匙,它包含至少一個n維的其坐標選自一個固定集合X的矢量S;以及建立一個公開密匙,它包括含一個m×n維的其系數為隨機選自0至d-1的整數值的矩陣M,其中d為接近一個數c的平方的一個素數;以及包含至少一個矢量P,使P=g(M(S)),其中g為一個由一集合X與整數(1,2,…d-1)集合的子群G所定義的函數,并且g將G的元素g(x)與矢量P的各坐標x相關聯,使得x被唯一地描述成g(x)與X的元素k(x)的積;②受驗者接收由檢驗者生成的一個或多個隨機數,然后向檢驗者返回一個提交,該提交是通過將一個密碼散列函數作用在隨S、M與該隨機數而變的參數上而得出的;③依據由檢驗者選擇的隨機數,檢驗者用所接收的值與公開密匙,檢驗該提交是否正確。
3.按照權利要求1所述的過程,其中重復這些步驟若干遍,以提供較高的安全級別。
4.按照權利要求1所述的過程,其中集合X由c個元素構成,使得從1至d-1的所有整數都能以唯一的方式被定義為G的一個元素與X的一個元素的積。
5.按照權利要求1所述的過程,其中的隨機元素是用分別兩個為m與n維的由0至d-1的整數組成的矢量,以及用兩個分別為m與n個元素的排列p與q構成的。
6.按照權利要求1所述的過程,其中m=n。
7.按照權利要求1所述的過程,其中d=257及n=20。
8.按照權利要求1所述的過程,其中在各鑒別對話開始時,受驗者向檢驗者透露其身份和/或其簽名的公開密匙。
9.按照權利要求1所述的過程,其中,在受驗者與檢驗者之間建立了對話并選定了隨機元素之后①受驗者計算通過一個散列函數H生成的提交h1與h2,并將它們發送至檢驗者h1=H(p,q,MU+P*V)h2=H(U.p,V·q)其中P*V指示與d同余的矢量P與V的分量的逐項積;②檢驗者從0至d-1中隨機選擇一個數a并將它發送給受驗者;③受驗者計算下列矢量并將它們發送給檢驗者Y=(aS+U).pZ=(aT-V).q其中T為矢量k(M(S));④檢驗者隨機選擇一位“b”(=0或1),并將它發送給受驗者;⑤受驗者返回一個如下定義的答復r·如果b=0,則答復r由值p與q構成,·如果b=1,則答復r由矢量U’=S.p及V’=T.q構成;⑥檢驗者接收答復r,并進行如下步驟·如果b=0,則它從接收到的元素(p,q)中計算矢量Y’與Z’,使(Y’).p=Y及(Z’).q=Z,然后計算矢量M(Y’)-P*Z’,如果答復是正確的,應使h1=H(p,q,M(Y’)-P*Z’);·如果b=1,則檢驗者從接收到的元素中計算矢量Y-aU’及aV’-Z,如果答復是正確的,應使h2=H(Y-aU’,aV’-Z)并且檢驗者還檢驗矢量U’與V’中是否只包含X的元素
10.按照權利要求1所述的過程,其中,在建立了受驗者與檢驗者之間的對話,并且選定了隨機元素之后①受驗者計算通過一個散列函數H生成的提交h1、h2與h3,并將它們發送給檢驗者h1=H(p,q,MU+P*V)h2=H(U.p,V,q)h3=H((U+S).P,(V-T).q)其中P*V指定與d同余的矢量P與V的分量的逐項積,而T則為矢量k(M(S)),它能被受驗者作為S的一個函數計算出來,或存儲在受驗者存儲器的一個物理上不可訪問的部分中;②檢驗者隨機選擇一個數“b”,使0<b<4,并將其發送給受驗者;③受驗者返回一個如下定義的答復r·如果b=1,則r由值p,q,U與V構成;·如果b=2,則r由值p,q及矢量U’=(U+S)與V’=(V-T)構成;·如果b=3,則r由值矢量U.p,V.q,U"=(U+S).p與V"=(V-T).q構成;④檢驗者接收答復r,并進行如下步驟·如果b=1,則它從所接收的元素(p,q,U與V)中計算MU+P*V,U.p與V.q的值,如果答復是正確的,它們應使h1=H(p,q,MU+P*V)h2=H(U.p,V,q);·如果b=2,它從所接收的元素(p,q與矢量U’及V’)中計算MU’+PV’,U’.p與V’q的值,如果答復是正確的,它們應使h1=H(p,q,MU’+P*V’)h3=H(U’.p,V’,q);·如果b=3,它檢驗下式是否成立h2=H(U.p.V.q)h3=H(U",V");并且檢驗者還計算兩個矢量U"-U.p及V"-V.q,并檢驗它們是否只由X的元素構成。
11.按照權利要求8所述的過程,其中鑒別操作的步驟被重復t遍,在此,t隨所需的安全級別而增加,只有當所有遍次的測試都成功時,檢驗者才證實受驗者。
12.按照權利要求9所述的過程,其中矢量k(M(S))是由受驗者把它作為S的函數計算的,或者是存儲在受驗者存儲器的一個物理上不可訪問的部分中。
全文摘要
本發明涉及用一個檢驗者去鑒別至少一個受驗者的一種新過程,該鑒別過程基于公開與秘密密匙密碼技術,并利用零認識協議。此外,本協議是通過求解約束線性方程組問題建立的。本發明可用于密碼技術。
文檔編號H04L9/32GK1120209SQ9411349
公開日1996年4月10日 申請日期1994年12月28日 優先權日1993年12月30日
發明者雅克·斯藤 申請人:雅克·斯藤