TW201319860A - 基於超橢圓曲線方程式及曲線配對函數的產品認證 - Google Patents

基於超橢圓曲線方程式及曲線配對函數的產品認證 Download PDF

Info

Publication number
TW201319860A
TW201319860A TW101127487A TW101127487A TW201319860A TW 201319860 A TW201319860 A TW 201319860A TW 101127487 A TW101127487 A TW 101127487A TW 101127487 A TW101127487 A TW 101127487A TW 201319860 A TW201319860 A TW 201319860A
Authority
TW
Taiwan
Prior art keywords
product
activation code
private
code
public
Prior art date
Application number
TW101127487A
Other languages
English (en)
Inventor
Ning Shang
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201319860A publication Critical patent/TW201319860A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

揭示認證產品的方法、系統及設備。選擇複數個公共參數以及秘密的主金鑰。公共參數包括超橢圓曲線方程式及曲線配對函數。基於公共參數及秘密的主金鑰來產生公共產品啟動碼及私有產品啟動碼。公共參數及公共產品啟動碼與產品一起儲存。另外,私有產品啟動碼與產品相關聯。若向客戶端設備輸入的私有產品啟動碼滿足用公共參數及公共產品啟動碼實施的數學公式,則產品得到認證。

Description

基於超橢圓曲線方程式及曲線配對函數的產品認證
本發明係關於基於超橢圓曲線方程式及曲線配對函數的產品認證。
在工作中、在家中及在其他各個地方皆經常使用計算設備。計算設備有利地經由網際網路及其他計算網路來實現電子通訊、資料分享(例如,文件、圖片、音樂、影片、多媒體等)、專用軟體的使用、對電子商務資訊的存取。術語計算設備一般是指桌面型電腦、伺服器電腦、膝上型電腦、行動計算裝置(例如,個人數位助理(PDA)、智慧型電話、平板電腦、蜂巢式電話等)以及任何其他類型的電腦系統。
應用軟體可由計算設備用於實施各種不同類型的功能。應用軟體可從供應商購買並藉由儲存媒體(例如,壓縮磁碟(CD))安裝在計算設備上或者可以無線地或經由網際網路下載以在計算設備上安裝。然而,此類應用軟體的購買及使用的安全性及認證對於應用軟體開發者而言日益重要。
已解決該等問題的一種方式是使用涉及基於金鑰的密碼的加密技術。使用基於金鑰的密碼,共同形成訊息的可理解資料序列(通常被稱為明文)經由加密程序在數學上轉換成看上去不可理解的資料(通常稱為密文)。加密是 可逆的,從而允許密文的接收者能夠用恰當的金鑰將密文轉換回明文,而使沒有恰當的金鑰的接收者難以恢復明文。
公開金鑰加密技術是一種類型的基於金鑰的密碼。在公開金鑰加密術中,每個通訊方具有公開金鑰/私密金鑰對。每對中的公開金鑰是公共可用的(或者至少對於意欲發送經加密通訊的彼等通訊方是可用的),但是私密金鑰是保密的。為了向接收方傳達使用加密的明文訊息,發起方使用接收方的公開金鑰將明文訊息加密成密文訊息並向接收方傳達該密文訊息。一旦接收到該密文訊息,接收方使用該接收方保密的私密金鑰來解密該訊息,並且由此恢復原始的明文訊息。
使用加密技術的一個領域是產品認證。在一方或一機器必須證明該方或該機器被授權存取或使用產品或服務的任何情況下均可能需要產品認證。此類情況的實例是在軟體程式的產品ID系統中,其中使用者必須手動輸入衝壓在適當授權的套裝軟體外部上的產品ID序列作為已對該軟體適當地進行了支付的證據。若產品ID序列過長,則上述程序將是繁瑣的且不是使用者友好的。
因此,產品ID序列(以下稱為產品啟動碼)是可列印在軟體、韌體或硬體產品的包裝外部或者經由其他方式遞送(諸如經由網際網路或無線地下載)的符號序列,該符號序列需要由最終使用者手動輸入,以使得產品執行後續操作以認證該產品。產品啟動碼認證產品並且對於防止產 品免受未經授權的使用及盜版而言是有用的。
然而,如先前所描述的、已在過去使用的先前的「秘密的」加密演算法可能易於發現、被反向設計,並且可能被破壞,從而該等類型的秘密演算法本質上是不牢靠的。另外,當前與該等秘密演算法聯用的產品啟動碼通常需要相對較大的產品啟動碼(例如,往往超過30次擊鍵)。因此,以下尋求以相對較小的產品啟動碼來實施非常強的認證程序的技術。
本發明的諸態樣可關於認證產品的方法、系統及設備。選擇複數個公共參數以及秘密的主金鑰。公共參數包括超橢圓曲線方程式及曲線配對函數。基於公共參數及秘密的主金鑰來產生公共產品啟動碼及私有產品啟動碼。公共參數及公共產品啟動碼與產品一起儲存。另外,私有產品啟動碼與產品相關聯。若向客戶端設備輸入的私有產品啟動碼滿足用公共參數及公共產品啟動碼實施的數學公式,則產品得到認證。
措辭「示例性」在本文中用於表示「用作實例、例子或說明」。本文中描述為「示例性」或「實例」的任何實施例不必被解釋為優於或勝過其他實施例。
本發明的諸態樣關於相對較短(例如,13次擊鍵)的私有產品啟動碼,該私有產品啟動碼認證軟體產品並且對於 保護軟體產品免受未經授權的使用及盜版而言是有用的。較短的軟體私有產品啟動碼的使用使得由使用者輸入軟體產品啟動碼的手動程序變得容易。在一個態樣,若由使用者向客戶端設備輸入的私有產品啟動碼滿足用包括超橢圓曲線方程式及曲線配對函數的公共參數以及公共產品啟動碼來實施的數學公式,則就可認證軟體產品。
本發明的諸態樣可關於認證產品的方法、系統及設備。選擇複數個公共參數以及秘密的主金鑰。公共參數包括超橢圓曲線方程式及曲線配對函數。基於公共參數及秘密的主金鑰來產生公共產品啟動碼及私有產品啟動碼。公共參數及公共產品啟動碼與產品一起儲存。另外,私有產品啟動碼與產品相關聯。若向客戶端設備輸入的私有產品啟動碼滿足用公共參數及公共產品啟動碼實施的數學公式,則產品得到認證。
參照圖1,圖1是本發明的諸態樣可在其中實踐的系統100的方塊圖。具體地,系統100包括軟體副本產生器102、分發鏈140及客戶端設備150。軟體副本產生器102包括產品認證器110。軟體副本產生器102產生軟體產品130(例如,CD-ROM、DVD、快閃記憶體等),該軟體產品130通常包含為共同實施一或多個應用程式(例如,文字處理程式、電子資料工作表程式、作業系統、程式組、專用程式等)的完整副本所需要的所有檔案。該等檔案是從原始檔案104接收的,該原始檔案104可以是本端源(例如,產生器102內部的硬碟)或遠端源(例如,經由網路 耦合至產生器102的遠端源)或上述組合。應當領會,軟體產品130可以無線地、經由網際網路或藉由其他網路手段傳送給客戶端設備。亦應當領會,雖然產品130被描述為軟體產品130,但產品130可以是任何類型的產品:硬體、韌體、中介軟體、應用程式、程式等。
產品認證器110產生可包括數字、字母及/或其他符號的私有產品啟動碼162。另外,產品認證器110產生亦經由分發鏈140分發到客戶端設備150的公共產品啟動碼132及公共參數116。
具體地,根據本發明的一個態樣,產品認證器110包括系統啟動器112,該系統啟動器112產生向碼產生器120傳送的秘密的主金鑰114及公共參數116。公共參數116包括超橢圓曲線方程式及曲線配對函數。另外,產品認證器110包括碼產生器120:碼產生器120基於公共參數116及秘密的主金鑰114來產生公共產品啟動碼132及私有產品啟動碼162。碼產生器120將公共參數116及公共產品啟動碼132與軟體產品120儲存在一起並將私有產品啟動碼162與軟體產品相關聯。
作為實例,簡要參照圖2,公共參數116及公共產品啟動碼132可以與軟體產品200儲存在一起(例如,儲存到CD 210)。與軟體產品210相關聯的私有產品啟動碼162可在包裝202上與所購買的產品一起顯示。
再回顧圖1,應當領會,私有產品啟動碼162、公共產品啟動碼132、公共參數116及軟體產品130可無線地或 經由網際網路傳送給客戶端設備150。另外,可採用許多其他的網路手段來將軟體130、公共參數116、公共產品啟動碼132及私有啟動碼162傳送給客戶端設備150。亦應當領會,雖然產品130被描述為軟體產品130,但產品130可以是任何類型的產品:硬體、韌體、中介軟體、應用程式、程式等。
在一個態樣,軟體產品130、公共參數116、公共產品啟動碼132及私有產品啟動碼162可經由分發鏈140提供。分發鏈140表示各種習知分發系統及方法中的任一種,包括可能的一或多個「中間人」(例如,批發商、供應商、分發商、零售商店(線上或實體店)等)。例如,分發鏈140可包括從商店購買軟體CD或者軟體可從網際網路或無線地下載。無論軟體產品130及相關聯的公共參數116、公共產品啟動碼132及私有產品啟動碼162是以何種方式分發的,最終由客戶端設備150的使用者來購買/授權軟體產品130。
客戶端設備150包括碼驗證器160,該碼驗證器160在由使用者輸入的私有產品啟動碼162滿足用公共參數116及公共產品啟動碼132實施的數學公式的情況下認證軟體產品130,如以下將描述的。客戶端設備150可包括顯示裝置158、使用者介面156、處理器152及記憶體154。顯示裝置158可以是客戶端設備150的典型的顯示裝置。客戶端設備150可以是個人電腦、膝上型電腦、伺服器電腦、個人數位助理、蜂巢式電話、智慧型電話、行動設備、平 板電腦或其他類型的計算設備。使用者介面156可以是通常與客戶端設備150聯用的按鍵板、鍵盤或另一類型的使用者輸入裝置。
在一個態樣,客戶端設備150可包括配置成讀取及執行用於以下操作的指令的處理器152及記憶體154:從軟體產品130讀取公共產品啟動碼132及公共參數116;及實施碼驗證器160以在由使用者輸入的私有產品啟動碼162滿足用公共參數116及公共產品啟動碼132實施的數學公式的情況下認證軟體產品130,如以下將更詳細地描述的。碼驗證器160可以是可實施的軟體、中介軟體或韌體模組。
客戶端設備150可從記憶體154讀取軟體程式130並且可在碼驗證器160基於由使用者輸入的私有啟動碼162認證了產品的情況下安裝軟體程式130。因此,安裝程序的一部分涉及由使用者輸入私有產品啟動碼162。該輸入可以是手動輸入(例如,使用者經由使用者介面156鍵入私有產品啟動碼162),或者替換地可以是自動輸入(例如,客戶端設備150用與軟體程式130相關聯的許可證來自動地存取特定欄位並從中提取私有產品啟動碼162)。因此,在客戶端設備150的碼驗證器160驗證了私有產品啟動碼162之後,客戶端設備可安裝軟體程式130。
因此,若碼驗證器160決定私有產品啟動碼162是有效的,則採取合適的動作過程(例如,軟體應用程式130的安裝程式允許將該應用程式安裝在客戶端設備150上)。 然而,若碼驗證器160決定私有產品啟動碼162是無效的,則採取不同的動作過程(例如,安裝程式終止安裝程序,從而防止軟體應用程式130被安裝)。
以下將討論各個實例。在一個態樣,產品可以是由使用者購買或向(例如,經授權)使用者提供的軟體產品,並且可向使用者顯示私有產品啟動碼162。作為一個實例,軟體產品130及私有產品啟動碼162可被(例如,有線地或無線地)(例如,在網際網路上從網站)傳送給使用者,並且可在顯示裝置158上向使用者顯示私有驗證碼162,以使得該使用者可以輸入該私有驗證碼162。作為另一實例,軟體產品130可以是儲存媒體產品(例如,CD、磁碟、快閃記憶體等),該儲存媒體產品儲存所購買的或向(例如,經授權)使用者提供的軟體產品並且可在與儲存媒體產品相關聯的包裝中顯示私有產品啟動碼162(例如,參見圖2)。應當領會,產品可以不僅是軟體,亦可以是諸如硬體、韌體、中介軟體、應用程式、程式等的其他產品。
在一個態樣,決定超橢圓曲線方程式,以便為曲線的雅可比行列式(Jacobian)定義可高效率地計算的曲線配對函數。秘密的主金鑰114可隨機選擇。用於秘密的主金鑰114的亂數可在1與2N之間選擇,其中N是期望的對稱金鑰等效安全等級。作為實例,用於秘密的主金鑰114的亂數可以是1與264之間的數字。作為超橢圓曲線方程式的一個特定實例,超橢圓曲線方程式可以是有限域Fq上的C:y2+h(x)y=f(x)形式,其中選擇C以使得有以下配對函 數:e:G1×G2→GT,其中G1及G2是Jac(C,Fq)的子群或Jac(C,Fq)的商群。應當領會,藉由利用此種類型的方程式,私有產品啟動碼162可被先驗地選擇為對N位元資訊的編碼,並且公共產品啟動碼132可從私有產品啟動碼162推導出來作為對2N位元資訊的編碼,其中由該方法提供的安全等級等效於N位元對稱金鑰。作為一個實例,私有產品啟動碼162可以是精簡啟動碼(例如,13次擊鍵輸入)以達成至少64位元對稱金鑰等效安全性,其中符號[A-Z0-9]或符號[A-Z0-9]之子集被用作輸入字母。
簡要參照圖3,圖示流程圖以說明認證軟體產品130的程序300。在方塊302處,選擇秘密的主金鑰114。在方塊304處,選擇複數個公共參數,包括超橢圓曲線方程式及曲線配對函數。接下來,產生公共產品啟動碼132及私有產品啟動碼162(方塊306)。該等啟動碼基於公共參數及秘密的主金鑰。在方塊308處,將公共參數116及公共產品啟動碼132與軟體產品130儲存在一起。另外,私有產品啟動162與軟體產品130相關聯。
簡要參照圖4,圖示一流程圖以說明允許將軟體產品130安裝在客戶端設備150上的程序400。在方塊402處,在客戶端設備150處從使用者接收私有產品啟動碼162。接下來,在決策方塊404處,客戶端設備150決定私有產品啟動碼162是否滿足用公共參數116及公共產品啟動碼132實施的數學公式。若否,則軟體產品130不被安裝並且使用者被通知軟體不能被安裝(方塊408)。然而,若私 有產品啟動碼162得到認證,則軟體產品130被安裝在客戶端設備上(方塊406)。
因此,根據本發明的諸態樣,三個主要元件可被用於認證軟體產品130:1)系統啟動器122──系統啟動器122可以是產生將由其他模組用於產品啟動碼建立及驗證的系統參數的模組;2)碼產生器120──碼產生器120可以是建立要由最終使用者輸入的私有產品啟動碼162及為啟動碼驗證目的而要嵌入在軟體產品130中的相應資訊/資料的模組;及3)碼驗證器160:碼驗證器160可以是作為由客戶端設備150的處理器152實施的軟體產品130的一部分的模組,該模組手動地輸入私有產品啟動碼162作為輸入並且隨後驗證軟體產品130。
作為實例,可以利用系統啟動器112處的以下方程式及操作:
1.對於系統啟動器112,在給定期望安全等級的情況下,可以選擇在有限域Fq上的虧格(genus)2曲線(例如,超橢圓曲線方程式):C:y2+h(x)y=f(x);以使得f(x)是在q個元素的有限域Fq上定義的5階多項式,並且deg(h)≦2。亦選擇C,以使得有以下配對函數:e:G1×G2→GT;其中G1是Jac(C,Fq)的子群,G2是Jac(C,Fq)的子群或商群或者一般是與Jac(C,Fq)有關的某種形式的群,GT是(Fq k)×的子群((Fq k)×是有限域Fq k的乘法群),其中嵌入度 k較小,並且|G1|=|G2|=|GT|=r是質數,並且使得值ρ=2 log(q)/log(r)1。
2.隨機選擇G2中的元素P2,以使得P2不是G2的本體。
3.隨機選擇整數1<a<r,並且計算G2中的另一元素Q2=[a]P2
亦計算b=a-1(mod r)。因為r是質數,所以作為模r的乘法逆的b始終存在並且可高效率地計算。
4.令系統公共參數116是元組參數=(q,C,e(.,.),P2,Q2),並且用於碼產生器120的秘密金鑰114是a、b。系統啟動器112向碼產生器120提供秘密金鑰114以及包括超橢圓曲線方程式及曲線配對函數的系統公共參數116。
作為實例,關於碼產生器120操作:
1.選擇隨機元素:x0 Fq,以使得P1=(x-x0,y0)是C的雅可比行列式上的一階除數,並且P1在子群G1中。此可按以下方式達成:從Fq隨機選擇x0,隨後在曲線方程式中設置x=x0,並求解y=y0 Fq的二次方程式。驗證除數(x-x0,y0)是否具有r階。若解y=y0不存在或者結果得到的除數的階數不是r,則選擇x0的另一值。在p 1的情況下,找到此類P1的概率較高。
2.選擇約log(q)位元長的x0的表示。由於在上一步驟中有兩個可能的關於y=y0的解,因而再多使用1位元來表示選定的解。關於任何無損編碼,將x0的表示及所添加的1位元轉換成可列印符號序列。例如,若q是80位元並且ASCII字元A-Z、a-z及0-9被用作可能的符號,則經編碼 序列的長度約為14。將此符號序列用作私有產品啟動碼162,該私有產品啟動碼162可按可列印的格式或電子格式遞送給最終使用者(如先前所描述的)。
3.計算另一元素Q1=[b]P1 G1 Jac(C,Fq)。
4.另外,令M是Q1的表示。M可隨後被用作公共產品啟動碼132,該公共產品啟動碼132連同公共系統參數116一起嵌入在軟體產品130中。注意,亦可對產品進行簽名以確保該等嵌入值不被篡改。
作為實例,關於碼驗證器160操作:
1.將由使用者輸入的私有產品啟動碼162定義為M’。將M’解碼為x0及表示對y=y0的兩個解之一的選擇的附加位元。若對於此x0而言不存在y0,則拒絕私有產品啟動碼162。否則從經解碼值重構一階除數=(x-x0,y0)。
2.檢查是否具有階數r。若的階數不是r,則拒絕私有產品啟動碼162。否則,前往下一步驟(3)。
3.從M重構元素Q1
4.計算u=e(P1,P2)。計算v=e(Q1,Q2)。
5.若u=v,則產品認證成功並且軟體可被安裝;否則,認證失敗,並且不執行後續操作(亦即,軟體產品的安裝)。因此,若私有產品啟動碼162滿足(如先前在步驟1-5中所描述的)用包括超橢圓曲線方程式及曲線配對函數的公共參數以及公共產品啟動碼實施的數學函數或演算法,則碼驗證器160就認證了產品。
藉由使用先前所描述的利用超橢圓曲線配對的方法,已 發現用私有產品啟動碼162提供了較高的安全等級,該私有產品啟動碼162的大小一般而言僅為利用其他方法的其他先前使用的啟動碼的一半。
作為一個實例,私有產品啟動碼162可以是可包括大致13次擊鍵輸入的精簡啟動碼,從而該私有產品啟動碼與目前使用的啟動碼相比較而言相對較小。
本文中的教示可被納入各種裝置(例如,設備)中(例如,在裝置內實施或由裝置執行)。例如,本文中教導的一或多個態樣可被納入到無線設備、電話(例如,蜂巢式電話)、個人資料助理(「PDA」)、娛樂設備(例如,音樂或視訊設備)、頭戴式送受話器(例如,頭戴式受話器、耳機等)、話筒、醫療設備(例如,生物計量感測器、心率監視器、計步器、EKG設備等)、使用者I/O設備(例如,手錶、遙控器、照明開關、鍵盤、滑鼠等)、輪胎氣壓監視器、電腦(例如,個人電腦、伺服器電腦、膝上型電腦等)、行動設備、智慧型電話、平板電腦、銷售點設備、娛樂設備、助聽器、機上盒或任何其他合適的設備中。
在一些態樣,無線設備可包括通訊系統的存取設備(例如,Wi-Fi存取點)。此類存取設備可提供例如經由有線或無線通訊鏈路至另一網路(例如廣域網路,諸如網際網路或蜂巢網路)的連通性。因此,存取設備可使得另一設備(例如,Wi-Fi站)能存取該另一網路或某些其他功能性。此外應領會,該等設備中的一者或其兩者可以是可攜式的,或者在一些情形中為相對非可攜式的。
本領域技藝人士應理解,資訊及訊號可使用各種不同技術及技藝中的任何一種來表示。例如,貫穿上面描述始終可能被述及的資料、指令、命令、資訊、訊號、位元、符號及碼片可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或上述任何組合來表示。
本領域技藝人士將進一步領會,結合本文中所揭示的實施例來描述的各種說明性邏輯區塊、模組、電路及演算法步驟可實施為電子硬體、電腦軟體、韌體、中介軟體或上述兩者的組合。為清楚地說明硬體與軟體的此可互換性,以上已經根據其功能性一般化地描述了各種說明性元件、方塊、模組、電路及步驟。此類功能性是被實施為硬體還是軟體取決於具體應用及加諸於整體系統的設計約束。技藝人士對於每種特定應用可以變化的方式來實施所描述的功能性,但此類實施決策不應被解讀成導致脫離了本發明的範疇。
結合本文所揭示的實施例描述的各種說明性邏輯區塊、模組及電路可用通用處理器、數位訊號處理器(DSP)、專用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)或其他可程式設計邏輯裝置、個別閘門或電晶體邏輯、個別硬體元件或其設計成執行本文所描述功能的任何組合來實施或執行。通用處理器可以是微處理器,但在替換方案中,處理器可以是任何習知處理器、控制器、微控制器或狀態機。處理器亦可以被實施為計算設備的組合,例如DSP與微處理器的組合、複數個微處理器、與DSP核心協 調的一或多個微處理器或任何其他此類配置。
結合本文中揭示的實施例來描述的方法或演算法的步驟可直接在硬體中、在由處理器執行的軟體模組中或在上述兩者的組合中直接實施。軟體模組可常駐在RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟、可移除磁碟、CD-ROM或本領域中所知的任何其他形式的儲存媒體中。示例性儲存媒體耦合到處理器以使得該處理器能從/向該儲存媒體讀取及寫入資訊。在替換方案中,儲存媒體可以被整合到處理器。處理器及儲存媒體可常駐在ASIC中。ASIC可常駐在使用者終端中。在替換方案中,處理器及儲存媒體可作為個別元件常駐在使用者終端中。
本發明的各個實施例的諸元件可由硬體、軟體、韌體、微代碼或上述任何組合來實施。當在軟體、韌體或微代碼中實施時,本發明的實施例的要素是包括用於執行必要任務的指令的程式碼或程式碼片段。程式碼片段可以代表程序、函數、副程式、程式、常式、子常式、模組、套裝軟體或者指令、資料結構或程式語句的任何組合。
在一或多個示例性實施例中,所描述的功能可以在硬體、軟體、中介軟體、韌體或上述任何組合中實施。若在軟體中實施為電腦程式產品,則各功能可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或藉該電腦可讀取媒體進行傳送。電腦可讀取媒體包括電腦儲存媒體及通訊媒體兩者,通訊媒體包括促成電腦程式從一地向另一地轉 移的任何媒體。儲存媒體可以是能被電腦存取的任何可用媒體。作為實例而非限定,此類電腦可讀取媒體可包括RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存或其他磁存放裝置或能被用來承載或儲存指令或資料結構形式的期望程式碼且能被電腦存取的任何其他媒體。另外,任何連接亦被正當地稱為電腦可讀取媒體。例如,若軟體是使用同軸電纜、光纖電纜、雙絞線、數位用戶線(DSL)或諸如紅外、無線電以及微波之類的無線技術從web網站、伺服器或其他遠端源傳送而來,則該同軸電纜、光纖電纜、雙絞線、DSL或諸如紅外、無線電以及微波之類的無線技術就被包括在媒體的定義之中。如本文中所使用的磁碟(disk)及光碟(disc)包括壓縮光碟(CD)、鐳射光碟、光碟、數位多功能光碟(DVD)、軟碟及藍光光碟,其中磁碟(disk)往往以磁的方式再現資料,而光碟(disc)用鐳射以光學方式再現資料。上述的組合亦應被包括在電腦可讀取媒體的範疇內。
提供前面對所揭示的實施例的描述是為了使本領域任何技藝人士皆能製作或使用本發明。對該等實施例的各種修改對於本領域技藝人士將是顯而易見的,並且本文中定義的普適原理可被應用於其他實施例而不會脫離本發明的精神或範疇。由此,本發明並非意欲被限定於本文中圖示的實施例,而是應被授予與本文中揭示的原理及新穎性特徵一致的最廣義的範疇。
100‧‧‧系統
102‧‧‧軟體副本產生器
104‧‧‧原始檔案
110‧‧‧產品認證器
112‧‧‧系統啟動器
114‧‧‧秘密的主金鑰
116‧‧‧公共參數
120‧‧‧碼產生器
130‧‧‧軟體產品
132‧‧‧公共產品啟動碼
140‧‧‧分發鏈
150‧‧‧客戶端設備
152‧‧‧處理器
154‧‧‧記憶體
156‧‧‧使用者介面
158‧‧‧顯示裝置
160‧‧‧碼驗證器
162‧‧‧私有產品啟動碼
200‧‧‧軟體產品
202‧‧‧包裝
210‧‧‧軟體產品
300‧‧‧程序
302‧‧‧方塊
304‧‧‧方塊
306‧‧‧方塊
308‧‧‧方塊
400‧‧‧程序
402‧‧‧方塊
404‧‧‧方塊
406‧‧‧方塊
408‧‧‧方塊
圖1是本發明的諸態樣可在其中實踐的系統的方塊圖。
圖2是圖示軟體產品的圖,該軟體產品包括與該軟體產品一起儲存的公共參數及公共產品啟動碼。
圖3是圖示認證軟體產品的程序的流程圖。
圖4是圖示允許軟體產品安裝在客戶端設備上的程序的流程圖。
100‧‧‧系統
102‧‧‧軟體副本產生器
104‧‧‧原始檔案
110‧‧‧產品認證器
112‧‧‧系統啟動器
114‧‧‧秘密的主金鑰
116‧‧‧公共參數
120‧‧‧碼產生器
130‧‧‧軟體產品
132‧‧‧公共產品啟動碼
140‧‧‧分發鏈
150‧‧‧客戶端設備
152‧‧‧處理器
154‧‧‧記憶體
156‧‧‧使用者介面
158‧‧‧顯示裝置
160‧‧‧碼驗證器
162‧‧‧私有產品啟動碼

Claims (42)

  1. 一種用於認證一產品的方法,包括以下步驟:選擇一秘密的主金鑰及包括一超橢圓曲線方程式及一曲線配對函數的複數個公共參數;基於該等公共參數及該秘密的主金鑰來產生一公共產品啟動碼及一私有產品啟動碼;將該等公共參數及該公共產品啟動碼與該產品儲存在一起;將該私有產品啟動碼與該產品相關聯;及若輸入的該私有產品啟動碼滿足用該等公共參數及該公共產品啟動碼實施的一數學公式,則認證該產品。
  2. 如請求項1述及之方法,其中該產品是由一使用者購買的或被提供給該使用者的一軟體產品,並且該私有產品啟動碼被提供給該使用者。
  3. 如請求項1述及之方法,其中該產品是一軟體產品,並且該軟體產品及該私有產品啟動碼被傳送給一使用者。
  4. 如請求項1述及之方法,其中該產品是儲存所購買的或提供給一使用者的軟體的一儲存媒體產品,並且該私有產品啟動碼顯示在與該儲存媒體產品相關聯的包裝中。
  5. 如請求項1述及之方法,其中該私有產品啟動碼是一精簡啟動碼。
  6. 如請求項1述及之方法,其中決定該超橢圓曲線方程式,以便為曲線的雅可比行列式定義能高效率地計算的一曲線配對函數。
  7. 如請求項1述及之方法,其中該秘密的主金鑰是一隨機選擇的數字。
  8. 如請求項1述及之方法,其中該超橢圓曲線方程式是一有限域Fq上的C:y2+h(x)y=f(x)形式,其中C被選擇以使得有一配對函數:e:G1×G2→GT,其中G1及G2是Jac(C,Fq)的一子群或Jac(C,Fq)的一商群。
  9. 如請求項1述及之方法,其中該私有產品啟動碼被先驗地選擇為對N位元資訊的一編碼,並且該公共產品啟動碼從該私有產品啟動碼推導出來作為對2N位元資訊的一編碼,其中由該方法提供的安全等級等效於一N位元對稱金鑰。
  10. 一種用於認證一產品的電腦程式產品,包括:一電腦可讀取媒體,該電腦可讀取媒體包括用於執行以下動作的代碼: 選擇一秘密的主金鑰及包括一超橢圓曲線方程式及一曲線配對函數的複數個公共參數;基於該等公共參數及該秘密的主金鑰來產生一公共產品啟動碼及一私有產品啟動碼;將該等公共參數及該公共產品啟動碼與該產品儲存在一起;將該私有產品啟動碼與該產品相關聯;及若輸入的該私有產品啟動碼滿足用該等公共參數及該公共產品啟動碼實施的一數學公式,則認證該產品。
  11. 如請求項10述及之電腦程式產品,其中該產品是由一使用者購買的或被提供給該使用者的一軟體產品,並且該私有產品啟動碼被提供給該使用者。
  12. 如請求項10述及之電腦程式產品,其中該產品是一軟體產品,並且該軟體產品及該私有產品啟動碼被傳送給一使用者。
  13. 如請求項10述及之電腦程式產品,其中該產品是儲存所購買的或提供給一使用者的軟體的一儲存媒體產品,並且該私有產品啟動碼顯示在與該儲存媒體產品相關聯的包裝中。
  14. 如請求項10述及之電腦程式產品,其中該私有產品啟 動碼是一精簡啟動碼。
  15. 如請求項10述及之電腦程式產品,其中決定該超橢圓曲線方程式,以便為曲線的雅可比行列式定義能高效率地計算的一曲線配對函數。
  16. 如請求項10述及之電腦程式產品,其中該秘密的主金鑰是一隨機選擇的數字。
  17. 如請求項10述及之電腦程式產品,其中該超橢圓曲線方程式是一有限域Fq上的C:y2+h(x)y=f(x)形式,其中C被選擇以使得有一配對函數:e:G1×G2→GT,其中G1及G2是Jac(C,Fq)的一子群或Jac(C,Fq)的一商群。
  18. 如請求項10述及之電腦程式產品,其中該私有產品啟動碼被先驗地選擇為對N位元資訊的一編碼,並且該公共產品啟動碼從該私有產品啟動碼推導出來作為對2N位元資訊的一編碼,其中由該方法提供的安全等級等效於一N位元對稱金鑰。
  19. 一種產品認證器,包括:一系統啟動器,用於選擇一秘密的主金鑰及包括一超橢圓曲線方程式及一曲線配對函數的複數個公共參數;及一碼產生器,用於: 基於該等公共參數及該秘密的主金鑰來產生一公共產品啟動碼及一私有產品啟動碼;將該等公共參數及該公共產品啟動碼與該產品儲存在一起;及將該私有產品啟動碼與該產品相關聯。
  20. 如請求項19述及之產品認證器,其中若輸入的該私有產品啟動碼滿足用該等公共參數及該公共產品啟動碼實施的一數學公式,則包括一碼驗證器的客戶端設備就認證了該產品。
  21. 如請求項19述及之產品認證器,其中該產品是由一使用者購買的或被提供給該使用者的一軟體產品,並且該私有產品啟動碼被提供給該使用者。
  22. 如請求項19述及之產品認證器,其中該產品是一軟體產品,並且該軟體產品及該私有產品啟動碼被傳送給一使用者。
  23. 如請求項19述及之產品認證器,其中該產品是儲存所購買的或提供給一使用者的軟體的一儲存媒體產品,並且該私有產品啟動碼顯示在與該儲存媒體產品相關聯的包裝中。
  24. 如請求項19述及之產品認證器,其中該私有產品啟動碼是一精簡啟動碼。
  25. 如請求項19述及之產品認證器,其中決定該超橢圓曲線方程式,以便為曲線的雅可比行列式定義能高效率地計算的一曲線配對函數。
  26. 如請求項19述及之產品認證器,其中該秘密的主金鑰是一隨機選擇的數字。
  27. 如請求項19述及之產品認證器,其中該超橢圓曲線方程式是一有限域Fq上的C:y2+h(x)y=f(x)形式,其中C被選擇以使得有一配對函數:e:G1×G2→GT,其中G1及G2是Jac(C,Fq)的一子群或Jac(C,Fq)的一商群。
  28. 一種產品認證器,包括:用於選擇一秘密的主金鑰及包括一超橢圓曲線方程式及一曲線配對函數的複數個公共參數的構件;用於基於該等公共參數及該秘密的主金鑰來產生一公共產品啟動碼及一私有產品啟動碼的構件;用於將該等公共參數及該公共產品啟動碼與該產品儲存在一起的構件;及用於將該私有產品啟動碼與該產品相關聯的構件。
  29. 如請求項28述及之產品認證器,其中一客戶端設備包括用於若輸入的該私有產品啟動碼滿足用該等公共參數及該公共產品啟動碼實施的一數學公式則認證該產品的構件。
  30. 如請求項28述及之產品認證器,其中該產品是由一使用者購買的或被提供給該使用者的一軟體產品,並且該私有產品啟動碼被提供給該使用者。
  31. 如請求項28述及之產品認證器,其中該產品是一軟體產品,並且該軟體產品及該私有產品啟動碼被傳送給一使用者。
  32. 如請求項28述及之產品認證器,其中該產品是儲存所購買的或提供給一使用者的軟體的一儲存媒體產品,並且該私有產品啟動碼顯示在與該儲存媒體產品相關聯的包裝中。
  33. 如請求項28述及之產品認證器,其中決定該超橢圓曲線方程式,以便為曲線的雅可比行列式定義能高效率地計算的一曲線配對函數。
  34. 如請求項28述及之產品認證器,其中該超橢圓曲線方程式是一有限域Fq上的C:y2+h(x)y=f(x)形式,其中C被 選擇以使得有一配對函數:e:G1×G2→GT,其中G1及G2是Jac(C,Fq)的一子群或Jac(C,Fq)的一商群。
  35. 一種用於認證一產品的電腦程式產品,包括:一電腦可讀取媒體,該電腦可讀取媒體包括用於執行以下動作的代碼:讀取一公共產品啟動碼及公共參數;及若一私有產品啟動碼滿足用該等公共參數及該公共產品啟動碼實施的一數學公式,則認證該產品,其中該等公共參數包括一超橢圓曲線方程式及一曲線配對函數。
  36. 如請求項35述及之電腦程式產品,其中該產品是由使用者購買的或被提供給該使用者的一軟體產品,並且該私有產品啟動碼由該使用者輸入。
  37. 如請求項35述及之電腦程式產品,其中該產品是一軟體產品,並且該軟體產品及該私有產品啟動碼被傳送給該使用者。
  38. 如請求項35述及之電腦程式產品,其中該產品是儲存所購買的或提供給該使用者的軟體的一儲存媒體產品,並且該私有產品啟動碼顯示在與該儲存媒體產品相關聯的包裝中。
  39. 如請求項35述及之電腦程式產品,其中該私有產品啟動碼是一精簡啟動碼。
  40. 如請求項35述及之電腦程式產品,其中決定該超橢圓曲線方程式,以便為曲線的雅可比行列式定義能高效率地計算的一曲線配對函數。
  41. 如請求項35述及之電腦程式產品,其中該超橢圓曲線方程式是一有限域Fq上的C:y2+h(x)y=f(x)形式,其中C被選擇以使得有一配對函數:e:G1×G2→GT,其中G1及G2是Jac(C,Fq)的一子群或Jac(C,Fq)的一商群。
  42. 如請求項35述及之電腦程式產品,其中該私有產品啟動碼被先驗地選擇為對N位元資訊的一編碼,並且該公共產品啟動碼從該私有產品啟動碼推導出來作為對2N位元資訊的一編碼,其中由該方法提供的安全等級等效於一N位元對稱金鑰。
TW101127487A 2011-07-28 2012-07-30 基於超橢圓曲線方程式及曲線配對函數的產品認證 TW201319860A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/193,575 US8769301B2 (en) 2011-07-28 2011-07-28 Product authentication based upon a hyperelliptic curve equation and a curve pairing function

Publications (1)

Publication Number Publication Date
TW201319860A true TW201319860A (zh) 2013-05-16

Family

ID=47172857

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101127487A TW201319860A (zh) 2011-07-28 2012-07-30 基於超橢圓曲線方程式及曲線配對函數的產品認證

Country Status (3)

Country Link
US (1) US8769301B2 (zh)
TW (1) TW201319860A (zh)
WO (1) WO2013016736A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8905927B2 (en) 2010-11-30 2014-12-09 Universal Electronics Inc. System and method for non-intrusive health monitoring in the home
US9818281B2 (en) * 2011-11-14 2017-11-14 Vital Connect, Inc. Method and system for fall detection of a user
US9588135B1 (en) 2011-11-14 2017-03-07 Vital Connect, Inc. Method and system for fall detection of a user
JP2015075902A (ja) * 2013-10-08 2015-04-20 キヤノン株式会社 画像形成装置、その制御方法とプログラム
US20170192446A1 (en) 2016-01-06 2017-07-06 Nxp B.V. Serial bus apparatus with controller circuit and related uses

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737424A (en) 1996-06-04 1998-04-07 Software Security, Inc. Method and system for secure distribution of protected data using elliptic curve systems
US6163841A (en) 1998-06-23 2000-12-19 Microsoft Corporation Technique for producing privately authenticatable cryptographic signatures and for authenticating such signatures
US7020776B2 (en) * 2000-06-22 2006-03-28 Microsoft Corporation Cryptosystem based on a Jacobian of a curve
US20040044739A1 (en) * 2002-09-04 2004-03-04 Robert Ziegler System and methods for processing PIN-authenticated transactions
US7043015B2 (en) 2002-10-31 2006-05-09 Microsoft Corporation Methods for point compression for Jacobians of hyperelliptic curves
KR20030008183A (ko) * 2002-12-24 2003-01-24 학교법인 한국정보통신학원 겹선형쌍을 이용한 개인식별정보 기반의 원형서명 방법
US20060064349A1 (en) * 2004-09-22 2006-03-23 Microsoft Corporation System and method for rewarding a seller of a computing device
US7639799B2 (en) * 2004-12-14 2009-12-29 Microsoft Corporation Cryptographically processing data based on a Cassels-Tate pairing
US7273181B2 (en) * 2005-07-06 2007-09-25 Kestrel Wireless, Inc. Device and method for authenticating and securing transactions using RF communication
US8117447B2 (en) * 2008-01-10 2012-02-14 Industrial Technology Research Institute Authentication method employing elliptic curve cryptography
US20110295708A1 (en) * 2010-05-25 2011-12-01 beonSoft Inc. Systems and methods for providing software rental services to devices connected to a network

Also Published As

Publication number Publication date
US20130031373A1 (en) 2013-01-31
US8769301B2 (en) 2014-07-01
WO2013016736A2 (en) 2013-01-31
WO2013016736A3 (en) 2013-03-21

Similar Documents

Publication Publication Date Title
US10142107B2 (en) Token binding using trust module protected keys
US9882883B2 (en) Method and system for securing communication
Farb et al. Safeslinger: easy-to-use and secure public-key exchange
US10320765B2 (en) Method and system for securing communication
US8995656B2 (en) Multiple hashing in a cryptographic scheme
CN108769027B (zh) 安全通信方法、装置、移动终端和存储介质
EP2798773B1 (en) Generating digital signatures
US8713323B2 (en) Codeword-enhanced peer-to-peer authentication
US20130290712A1 (en) Hashing prefix-free values in a signature scheme
US20200145389A1 (en) Controlling Access to Data
JP2017021330A (ja) リレーショナル暗号化を利用する同等性確認方法及びコンピュータプログラム
TW201319860A (zh) 基於超橢圓曲線方程式及曲線配對函數的產品認證
WO2015019821A1 (ja) 情報処理装置、情報処理方法及びコンピュータプログラム
JP2015528681A (ja) メッセージデータを保護するための装置および方法
JP7250960B2 (ja) ユーザのバイオメトリクスを利用したユーザ認証および署名装置、並びにその方法
KR102443255B1 (ko) 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법
CN114553556B (zh) 数据加密方法、装置、计算机设备和存储介质
US11770241B2 (en) Stateless system to encrypt and decrypt data
WO2015124798A2 (en) Method &amp; system for enabling authenticated operation of a data processing device
CN113904850A (zh) 基于区块链私钥keystore安全登录方法、生成方法、系统及电子设备
TWM605621U (zh) 資訊傳輸加密防護系統
CN110601841B (zh) Sm2协同签名及解密方法、装置
US11652630B2 (en) Managing access to data
Tan et al. JAMBU_CHAT: An Online Chat Application for Android Smartphone
TWI526036B (zh) 資料安全加密方法、用以加密或認證之資料安全系統及資料載體