用於生成和確認基於同源的籤名的系統和方法
2023-05-11 12:49:06
專利名稱:用於生成和確認基於同源的籤名的系統和方法
技術領域:
本發明一般涉及籤名,且尤其涉及基於同源籤名。
背景技術:
產品的偽造和盜版是一個日益嚴重的問題,影響的不僅僅是產品的製造,還有盜版產品的消費者。例如,諸如工具等複製的產品可能沒有被製造成擁有與被複製的產品相同的質量。從而,複製的產品可能不適於消費者預期的目的。當消費者相信該產品是可信的時候,情況可能更複雜,從而給消費者對製造商的貨物質量一個錯誤的印象。在另一示例中,產品可以是軟體的複製的版本。然而,因為該軟體是不可信的,軟體可能無法使用該軟體可信的版本所能使用的所有功能,諸如在軟體本身中包含的特徵、對由製造商為軟體提供的更新的訪問等等。
用於限制產品偽造和盜版的一種技術是使用籤名。例如,籤名可以使用數學技術來生成。為驗證籤名,處理籤名以識別該籤名中是否存在數學性質。如果存在,那麼該籤名一般被認為是有效的。然而,由於消費者可用的計算資源的數量持續增長,存在一種對應的需求,即,開發用於生成和確認籤名的改進的技術,以使日益增長的計算機資源的可用性不能夠被用來「破解」籤名。
發明內容
描述了用於生成和確認籤名的技術。在一個實現中,一種方法包括,通過使用私鑰上包括的多個同源並將籤名和公鑰結合在產品上,來生成籤名,其中,公鑰被配置成確認籤名。
在另一實現中,一種方法包括,使用含有從將多個同源應用於橢圓曲線上一點得到的多個結果的公鑰,來接收籤名並確認該籤名。
在又一實現中,一種計算機可讀介質包括籤名、含有通過將多個同源應用於橢圓曲線上的一點獲得的多個象的公鑰、以及可執行來使用該公鑰確認籤名的一個或多個模塊。
圖1是一個示例性實現中,可操作來使用用於生成和確認籤名的技術的環境的圖示。
圖2是一個示例性實現中,詳細示出圖1中的產品供應者和客戶機的系統的圖示。
圖3是描述一個示例性實現中的過程的流程圖,其中,籤名是使用包括圖2的私鑰的基於同源技術來生成的。
圖4是描述一個示例性實現中的過程的流程圖,其中,由圖3中的過程生成的籤名是使用也包括在含有該籤名的產品上的圖2的公鑰來驗證的。
圖5是描述一個示例性實現中的另一過程的流程圖,其中,使用同源技術來驗證籤名。
在討論中,在各實例中使用相同的標號來參考相同的結構和組件。
具體實施例方式
綜述描述了用於生成和確認籤名的技術。籤名可以用於各種用途,諸如認證消息發送者、文檔籤署者的身份等。例如,籤名可以被配置為產品標識符(PID)(也被稱為產品ID)的全部或部分。該產品標識符而後可以用於確定相應的產品是否是「可信的」。例如,軟體開發者可以向諸如CD-ROM等計算機可讀介質寫入計算機可執行指令(例如,應用程式)。軟體開發者也可以在CD-ROM上包括含有使用數學技術生成的籤名的PID。
當用戶希望在計算機上安裝應用程式時,安裝過程可以涉及校驗,以通過對PID的使用來確定該軟體是否可信。例如,安裝過程可以確定該PID,尤其是該PID內的籤名,是否表現出特定的數學性質。如果是,那麼該應用程式被認為是可信的,且安裝過程繼續。如果不是,則該安裝過程可以被終止,以防止安裝該應用程式的未授權的副本。各種各樣其它技術也可以與籤名相結合來使用,關於它們的討論可以在關於下述附圖的說明中找到。
在以下的討論中,首先描述可使用用於生成和確認籤名的技術的示例性環境。然後描述在該示例性環境以及其它環境中可運作的示例性過程。
示例性環境圖1是一個示例性實現中,可操作來使用用於生成和確認籤名的技術的環境100的圖示。所示出的環境100包括產品供應者102、多個客戶機104(1)、...、104(n)、...、104(N)和產品分發者106。產品供應者102被進一步示出為包括用於向多個客戶機104(1)-104(N)分發的多個產品108(m),其中「m」可以是從1到「M」的任意整數。產品108(m)可以使用各種方法來配置。例如,產品108(m)中的一個或多個可以被配置為物理物品(例如,製造的貨物、含有計算機可執行指令的計算機可讀介質)、電子內容(例如,可下載的歌曲、軟體、數碼相片)等等。
產品108(m)而後可以通過遞送通道110被遞送給產品分發者106以供分發。例如,遞送通道110可以表示產品108(m)向產品分發者106的物理遞送,諸如從製造廠向「磚砂」商店的物理傳送。在另一示例中,遞送通道110可以被配置為用於產品108(m)的電子通信的信道,諸如網絡。產品分發者106而後可以通過各自的遞送通道112(1)、112(n)、112(N),將產品108(m)分發給客戶機104(1)、104(n)、104(N),這些遞送通道可以和遞送通道110相同或不同,例如物理的、網絡等。
如上所述,產品的未授權複製是日益嚴重的問題。因此,產品提供者102可以使用籤名系統114,以對多個產品中的每一個生成籤名116(m)在一個實現中,產品108(m)中的每一個擁有各不相同的多個籤名116(m)中對應的一個。也構想了各種其它實現,諸如用於不同產品組的籤名分組。
籤名系統114被示出為包括可執行來生成籤名116(m)和/或驗證籤名116(m)的籤名模塊118。例如,籤名模塊118可以生成籤名116(m),這樣每一籤名116(m)可以通過可用來確定該籤名116(m)是否有效的測試,從而不會是由惡意的一方生成的。
對籤名116(m)的驗證可以用各種方式來實現。例如,可以向多個客戶機104(1)-104(N)中的每一個提供用於確定籤名116(m)是否有效而無需與產品提供者102通信的技術。在該示例中,由於不需要與產品提供者102的通信偶合,,因此這樣的驗證是可「脫機」完成的。在另一示例中,多個客戶機104(1)-104(N)中的一個或多個可以向產品提供者102傳遞籤名116(m),這樣產品提供者102可以確定該籤名是否有效。例如,客戶機104(n)可能希望接收被配置為應用程式的對產品108(m)的軟體更新。因此,客戶機104(n)可將對應的籤名116(m)傳遞(例如,通過網際網路、電話等)給產品提供者102。產品提供者102而後可以確定客戶機104(n)是否擁有該應用程式的「有效」(即,可信)版本,從而被準許接收更新。在又一示例中,驗證可以由除了產品提供者102和客戶機104(1)-104(N)之外的另一實體實現,諸如獨立的驗證服務。對籤名116(m)的生成和驗證的進一步討論可以在關於圖2的說明中找到。
一般而言,此處討論的任何功能能夠使用軟體、固件(例如,固定邏輯電路)、手動處理或這些實現方式的組合來實現。如此處使用的術語「模塊」和「邏輯」一般表示軟體、固件或軟體和固件的組合。在軟體實現的情況下,模塊、功能或邏輯表示當在處理器(例如,一個或多個CPU)上執行時實現制定任務的程序代碼。程序代碼可以被存儲在一個或多個計算機可讀存儲器設備中,對其的進一步討論可以在關於圖2的說明中找到。下述生成和驗證技術的特徵是平臺不相關的,意味著該技術可以在含有各種處理器的各種商用計算平臺上實現。
圖2是詳細示出圖1的產品提供者102和客戶機104(n)的示例性實現中的系統200的圖示。產品提供者102被示出為包括多個籤名伺服器202(s)(其中,「s」可以是1到「S」的任意整數),而客戶機104(n)被示出為客戶機設備。客戶機104(n)可以被配置成各種不同的設備。例如,客戶機104(n)可以被配置成計算設備,諸如臺式計算機、移動站、娛樂電器、通信上耦合至顯示設備的機頂盒、無線電話、遊戲控制臺等等。從而,客戶機104(n)的範圍可以從帶有充足的存儲器和處理器資源的全資源設備(例如,個人計算機、遊戲控制臺),到帶有有限存儲器和/或處理器資源的低資源設備(例如,傳統的機頂盒、手持遊戲控制臺)。處於下述討論的目的,客戶機104(n)也可以與操作該客戶機的個人和/或實體相關。即,客戶機104(n)也可以描述包括用戶、軟體和/或設備在內的邏輯客戶機。
籤名伺服器202(s)和客戶機104(n)被示出為包括各自的處理器204(o)、206(n)和存儲器208(o)、210(n)。處理器不受構成它們的材料或在其中使用的處理機制的限制。例如,處理器可以由半導體和/或電晶體(例如,電子集成電路(IC))組成。在這樣的上下文中,處理器可執行指令可以是電子可執行指令。或者,處理器的機制或用於處理器的機制,以及計算設備的機制或用於計算設備的機制,可以包括,但不限於,量子計算、光學計算、機械計算(例如,使用納米技術)等等。另外,儘管分別對籤名伺服器202(s)和客戶機104(n)示出了單個存儲器208(o)、210(n),但是可以使用各種類型的存儲器和存儲器組合,諸如隨機訪問存儲器(RAM)、硬碟存儲器、可移動介質存儲器等等。
籤名模塊118被示出為在處理器204(o)上執行且被存儲在存儲器208(o)中。籤名模塊118還被示出為包括籤名生成模塊212和籤名確認模塊214。籤名生成模塊212代表用於生成籤名的功能。籤名確認模塊214代表用於驗證籤名的真實性以確定該籤名是否可能是由籤名生成模塊212或諸如授權第三方等能夠訪問用於生成該籤名的專有技術的實體所生成的功能。
籤名生成模塊212可執行來生成將通過由籤名確認模塊214應用的測試的籤名116(m),該測試用於確定籤名116(m)是否有效,從而不是由惡意的一方所生成的。籤名116(m)被示出為包括在產品ID 216(m)中,該產品ID包含在被配置為計算機可讀介質的產品108(m)上。產品108(m)(即,計算機可讀介質)也被示出為包括用於向客戶機104(n)分發的應用程式218(m)(對應於籤名116(m)和產品ID216(m))。從而,該示例中的產品108(m)可以被認為是應用程式218(m)和/或含有應用程式218(m)的計算機可讀介質。
產品ID 216(m)一般使用字母和/或數字來表示。可以配置產品ID 216(m),以使一實體(例如,客戶機104(n)和/或產品提供者102)能夠通過將籤名116(m)轉化成數字序列,並應用數學算法來確定該數字,從而也是籤名116(m),是否是由能夠訪問用於生成籤名116(m)的技術的實體(例如,圖1中的籤名系統114)生成的,來驗證產品ID 216(m)。
各種技術可以用來生成籤名116(m)。例如,籤名伺服器202(s)被示出為包括私鑰220、公鑰222和存儲在存儲器208(o)中的消息226(k)(其中「k」可以是1到「K」的任意整數)的資料庫224。籤名生成模塊212可執行來使用私鑰220處理多個消息226(k),用以生成多個籤名116(m)。換言之,籤名生成模塊212向消息226(k)應用「變換」以獲得籤名116(m)。關於對消息226(k)的處理以生成籤名的進一步討論可以在關於圖3的說明中找到。
在所示的示例中,產品提供者102是執行籤名生成模塊212來生成籤名116(m)軟體製造商。籤名生成模塊212使用擁有特定數學性質的技術來生成籤名。籤名116(m)而後被包括在產品108(m)上作為產品ID 216(m)的至少一部分。圖2的實現中的產品108(m)是計算機可讀介質,她通過產品分發者106分發給客戶機104(n),且包括用於在客戶機104(n)上安裝的應用程式218(m)和示出為公鑰222(m)的公鑰的版本。產品的客戶機版本被示出為產品108(m),包括產品ID 216(m)和籤名116(m)。
籤名確認模塊214可執行來驗證由籤名生成模塊212生成的籤名116(m)。例如,籤名確認模塊214可以使用包括在產品108(m)中的公鑰222(m)來處理籤名116(m),以來獲取以下兩個回答中的一個(1)是,籤名116(m)是有效的;或(2)否,籤名116(m)是無效的。這個回答是基於籤名116(m)是否展現出特定的數學性質,關於這個的討論可以在關於圖4的說明中找到。在一實現中,使公鑰222成為公共的,以允許沒有生成該籤名的其它實體來驗證籤名116(m),但是私鑰220是被保密的,這樣其它實體不能夠生成含有該特定數學性質的籤名。
繼續上述示例,例如,客戶機104(n)可能希望接收到對應用程式218(n)的更新。為了「證實」客戶機104(n)擁有該軟體的授權副本,客戶機104(n)向產品提供者102提供產品ID 216(n)。產品提供者102而後可以執行籤名確認模塊214,以使用確認技術來確定產品ID 216(n),更確切的是籤名116(n)是否展示出該特定的數學性質。如果是,則產品ID 216(n)被認為是「真實的」,且客戶機104(n)是被授權來接收該更新的。儘管描述了由產品提供者102通過執行籤名確認模塊214執行的確認,然而確認也可以通過在客戶機104(n)以及前述第三方驗證器上執行籤名確認模塊214(n)來實現。
私鑰220和公鑰222可以用各種方法來配置,以提供生成和驗證技術。例如,這些技術可以是基於同源的,在下述示例中它們被配置為在多條橢圓曲線之間的映射。所生成的同源允許使用多條曲線而不是單條曲線來提供籤名。這些技術可以應用於相對較短的數字籤名(例如,由用戶輸入或通過低帶寬信道發送)、加密(例如,基於身份的加密(IBE)解法,從而允許可記憶的公鑰)等等。
例如,公鑰222可以包括有限域、橢圓曲線和配對函數,它們可以如下表示K,是有限域;E2,是在K上的橢圓曲線;以及配對函數e2,將E2上的一對點映射到K的一個非零元素。
私鑰220可以包括下列信息E1,也是在K上的橢圓曲線;與E2同源(可能和E2相同)一這意味著E1和E2擁有同樣的組序;配對函數e1,將E1上的一對點映射到K的一個非零元素;以及P、Q,是E1上的兩個有限點;以及多個同源(Φ1,...,Φt)。
多個同源(Φ1,...,Φt)中的每一個將橢圓曲線E1上的點映射到橢圓曲線E2上的點。選擇220和222中的配對函數,使得如果ΦE1→E2是同源,則對E1上的所有P1、Q1,有e2(Φ(P1),Φ(Q1))=e1(deg(Φ)P1,Q1)。整數deg(Φ)是deg(Φ)的度數,且deg(Φ)P1表示曲線E1上的橢圓曲線標量乘法。為提供驗證,公鑰222還可以包括將多個同源應用於Q的結果信息,表示如下Φ1(Q),Φ2(Q),Φ3(Q),...,Φt(Q)。
這些象的每一個都是在E2上的一個點。公鑰222還可以包括e1(P,Q)的值,它是域K的一個元素。從而,這個示例中的公鑰可以用來驗證籤名是否展示出一特定的數學性質,而不需要能夠使用公鑰來生成展示出該數學性質的額外籤名,進一步討論將在隨後的附圖的說明中找到。
示例性過程下述討論描述了可以使用前述系統和設備來實現的生成和驗證技術。每一過程的各方面可以使用硬體、固件或軟體或其組合來實現。過程被示出為一組框,這些框指定由一個或多個設備執行的操作,且這些操作不必限於用於執行由各個框所示的操作的順序。在下述討論的部分中,會參考圖1的環境100和圖2的系統200。
圖3是描述在一示例性實現中的過程300的流程圖,其中使用基於同源技術來生成籤名。接收消息「m」(框302)。消息可以用各種方法來接收,諸如從隨機數生成器、制定相應產品特徵的描述性串等等。
消息「m」被籤名生成模塊212認作是一列整數,可以表示如下m1,m2,m3,...,mt例如,該列整數可從如前所述的隨機數生成器、轉化的字母數字串等中獲取。
籤名「σ」而後使用私鑰220從消息「m」生成(框304)。例如,籤名「σ」可以使用包括橢圓曲線加法和同源加法的同源技術,使用從私鑰220中獲取的信息來計算,其示例在下述公式中示出(SIGMA)--=m11(P)+m22(P)+...+mtt(P)deg(m11+m22+...+mtt)]]>從而,如上公式所示,共同構成消息m的每一整數(例如,m1,m2,m3,...,mt)與私鑰220的對應同源函數(例如,Φ1,Φ2,Φ3,...,Φt)相乘。此外,籤名是橢圓曲線E2上的一個點。在上述公式中,分子是使用橢圓曲線加法來計算的,而分母被計算為使用同源加法得到的量的度數。
例如,如前所述,Φ1,Φ2,Φ3,...,Φt是含有被稱為度數的數學性質的同源。同源乘以整數是同源。另外,當同一對曲線之間的兩個或多個同源相加,結果還是同源。從而,對Φ1,Φ2,Φ3,...,Φt乘以對應的整數(例如,m1,m2,m3,...,mt)得到的結果相加是同源,從而是使用「同源加法」來計算的。對於分子,E2上的橢圓曲線點(同源的象)Φ1(P),Φ2(P),Φ3(P),...,Φt(P)與對應的整數(例如,m1,m2,m3,...,mt)的乘法使用了橢圓曲線加法。應該注意,籤名「σ」在不知道私鑰220時是不能被計算的。例如,為籤署消息,儘管整數(m1,m2,m3,...,mt)是已知的,然而在這個示例中,私鑰220中排他地包括同源(例如,Φ1,Φ2,Φ3,...,Φt)和它們在P上的象。σ的分母的度數是一個整數—除法是通過反轉分母對共群階數|E1|=|E2|模來完成的。
生成的籤名116(m)和公鑰222的版本(被示出為公鑰222(m))而後被結合在產品108(m)上(框306),該產品被分發給客戶機104(n)(框308)。例如,生成的籤名116(m)可以被結合在包含諸如應用程式218(m)等計算機可執行代碼的計算機可讀介質(例如,CD-ROM)上。生成的籤名116(m)而後可以用來驗證該計算機可讀介質是否是可信的,關於這個的進一步的討論可以在隨後的附圖的說明中找到。
圖4是描述在一示例性實現中的過程400的流程圖,其中,由圖3的過程300生成的籤名116(m)是使用圖2的公鑰222(m)來驗證的,該公鑰也包括在含有籤名116(m)的產品108(m)上。客戶機104(n)接收包含籤名「σ」和公鑰222(m)的產品(例如,如前所述的計算機可讀介質)(框402)。例如,客戶可以在商店裡、通過網際網路等來購買該計算機可讀介質。而後,接收到的產品對客戶機是本地可用的,它被示為圖2中的產品108(n)、應用程式218(n)、公鑰222(n)、產品ID 216(n)和籤名116(n)。
然後執行一模塊(例如,籤名確認模塊214(n)),來驗證結合在該計算機可讀介質上的所生成的籤名是否是有效的(框404)。例如,籤名確認模塊214(n)可以作為應用程式218(m)的安裝模塊的一部分被包括在內。從而,為了安裝應用程式218(m),安裝模塊啟動籤名確認模塊214(n)來確定由用戶輸入的籤名116(m)是否有效。例如,當籤名確認模塊214(n)被執行時,它可以利用公鑰來確定下列表達式是否保持為真(判定框406)e2(σ,m1φ1(Q)+m2φ2(Q)+...+mtφt(Q))=e1(P,Q)如前所述,域元素e1(P,Q)以及象Φ1(Q),Φ2(Q),...,Φt(Q)被包括在公鑰上。如果上述關係式保持為真(判定框406的「是」),那麼籤名116(m)是有效的(框408)。如果上述關係式不為真(判定框406「否」),那麼籤名116(m)是無效的(框410)。確認的結果而後由籤名確認模塊諸如通過用戶界面輸出給負責安裝應用程式218(m)的安裝模塊等(框412)。例如,驗證的結果可以用來通知客戶機104(n),該籤名是有效的,從而可以獲取用於擁有該籤名的對應產品的軟體更新。該驗證可以為各種其它理由而進行,關於這的進一步討論可以在關於圖5的說明中找到。
由此,如以上表達式所示,驗證可以使用籤名、消息和公鑰來執行。從而,任何擁有公鑰的客戶機能夠驗證籤名是否有效,但是在不知道私鑰220的情況下不能夠生成籤名。
令σ是如公式(SIGMA)中定義的在橢圓曲線E2上的一點。下面示出對該驗證技術的證明e2(m11(P)+m22(P)+...+mtt(P)deg(m11+m22+...+mtt),m11(Q)+m22(Q)+...+mtt(Q))]]>上述表達式可以被簡化為e2(m11(P)+m22(P)+...+mtt(P)deg(m11+m22+...+mtt),m11(Q)+m22(Q)+...+mtt(Q))]]>令Φ=m1Φ1+m2(Φ2+...+mtΦt。這是從E1到E2的一個同源。使用前述用於公鑰和私鑰220、222的公式和前述關係式,上述表達式變為e2(σ,Φ(Q))=e2(Φ(P)/deg(Φ),Φ(Q))=e2(Φ(P/deg(Φ)),Φ(Q))=e1(P,Q)顯然,e1(P,Q)是包含在用來驗證籤名116(m)的公鑰222中的表達式中的一個。從而,籤名116(m)可以無需使用私鑰來驗證。
在選擇公鑰時,可以使用使不同的消息產生不同的籤名的方法來選擇同源。這能夠通過保證點Φi(Q)的非平凡小線性組合為非零來完成,因為這一性質保證了,僅給出籤名σ,下述的消息恢復過程能夠恢復原始消息。後者進而等價於在恰當定義的點陣中不存在小的非零向量。為消除給定的點陣中這一小非零向量的存在,可以使用標準點陣基簡化法。上述對同源的使用也將該系統與標準的基於離散對數的系統區分開,因為標準的基於離散對數的系統可能會受到離散對數的攻擊,而所述系統不會。
圖5是描述一示例性實現中的另一過程500的流程圖,其中使用同源技術來驗證籤名。用戶購買了含有包含25個字符的關聯產品標識符(ID)的產品(框502)。而後,產品ID被轉換為數字「x」(框504)。
而後,由數字「x」計算籤名(框506)。例如,數字「x」而後被如下分成兩部分xz=q+rz]]>在上述表達式中,z=|K|是在有限域K中元素的個數。餘數「r」小於|K|,它標識了K的一個元素。該域元素而後作為產品ID的籤名「σ」的橫坐標(框508)。商「q」用作定位該消息的「提示」。
籤名能夠被認為是橢圓曲線上一點的橫坐標(框510),而不是整個點。例如,橢圓曲線「E」可以如下表示Ey2=x3+ax+b在上述表達式中,「a」和「b」是有限域K中的常量;而「x」和「y」是K中的變量。E上的一個有限點是滿足上述橢圓曲線「E」等式的坐標對(x,y)。如果僅有x是已知的,能夠使用域K中的平方根來解出y的可能值。當不存在平方根時,該x可以被排除。
每一候選籤名σ=(x,y)和嵌入的消息m而後通過確定該籤名是否擁有指示出真實性的數學性質來驗證。代碼使用商「q」作為哪裡可以找到該消息的「提示」(框514)。例如,在驗證過程中,一模塊(例如,籤名確認模塊214)被執行來為(m1,m2,m3,...,mt)的每一可能值計算下列表達式,直到找出一個使得該表達式等於e1(P,Q)的消息e2(σ,(m1φ1(Q)+m2φ2(Q)+...+mtφt(Q)))在一實現中,可執行籤名確認模塊214,以通過利用可由處理器(例如,處理器204(o))在一相對較短時間內執行的計算的次數,使用「窮舉搜索」來定位消息。在這個示例中,提示「q」也被用來更高效地定位消息,從而限制了用於計算消息的「步驟」(例如,處理資源)的數量。這樣,提示「q」減少了可用的搜索空間。如果找到一對(x,y)和一消息,使得該表達式等於e1(P,Q),那麼該籤名是有效的,並返回一指出有效性的結果。否則,如果沒有找到這樣的消息,則該籤名被認為是無效的,並返回如前面關於圖4所描述的指出無效性的結果。各種搜索技術可用於消息恢復,諸如小型步驟—大型步驟(baby-step-giant-step)或Pollard的λ方法,它們比「硬算」搜索方法漸進更快速,且與硬算方法相比,可以加倍能夠被恢復的消息的長度。
結論儘管本發明是使用對結構特徵和/或方法動作專用的語言描述的,然而可以理解,在所附權利要求中定義的本發明不必限於所述的具體特徵或動作。相反,揭示了具體特徵和動作作為用於實現所要求保護的本發明的示例性形式。
權利要求
1.一種方法,包括通過使用包括在一私鑰上的多個同源生成籤名;將所述籤名與在產品上的公鑰相結合,其中,所述公鑰被配置成確認所述籤名。
2.如權利要求1所述的方法,其特徵在於所述籤名和所述公鑰是結合在產品上的;以及所述籤名構成了所述產品的產品標識符的至少一部分。
3.如權利要求1所述的方法,其特徵在於,所述多個同源將橢圓曲線E1上的點映射到橢圓曲線E2上的點,且所述私鑰還包括所述橢圓曲線E1;以及P、Q,它們是E1上的兩個有限點。
4.如權利要求1所述的方法,其特徵在於,所述公鑰包括,有限域、橢圓曲線E2、配對函數以及應用所述多個同源的象,它在橢圓曲線E1上的一點上求值。
5.如權利要求1所述的方法,其特徵在於,所述象是橢圓曲線E2上的點。
6.如權利要求1所述的方法,其特徵在於,所述籤名是使用橢圓曲線加法和同源加法來計算的。
7.如權利要求6所述的方法,其特徵在於,所述計算是使用下列表達式進行的=m11(P)+...+mtt(P)deg(m11+...+mtt)]]>其中「σ」是籤名,φ1到φt是所述私鑰上的同源,且所述籤名是同源橢圓曲線E2上的點。
8.如權利要求1所述的方法,其特徵在於,所述公鑰被配置成通過包括向橢圓曲線上的點應用所述多個同源所得到的多個結果來確認所述籤名。
9.如權利要求8所述的方法,其特徵在於,所述確認包括確定下列表達式是否保持為真e2(σ,m1φ1(Q)+…+mtφt(Q))=e1(P,Q)其中,e1和e2是配對函數,P和Q是橢圓曲線E1上的點,m1到mt是構成消息「m」的整數。
10.一種方法,包括接收籤名;以及使用含有將多個同源應用於橢圓曲線上一點得到的多個結果的公鑰來確認所述籤名。
11.如權利要求10所述的方法,其特徵在於,所述籤名和所述公鑰被包括在產品上。
12.如權利要求11所述的方法,其特徵在於,所述產品是計算機可讀介質。
13.如權利要求10所述的方法,其特徵在於,確認包括確定下列表達式是否保持為真e2(σ,m1φ1(Q)+…+mtφt(Q))=e1(P,Q)其中,e1和e2是配對函數,P和Q是橢圓曲線E1上的點,m1到mt是構成消息「m」的整數。
14.如權利要求13所述的方法,其特徵在於,所述消息「m」用於生成所述籤名。
15.如權利要求10所述的方法,其特徵在於,所述籤名是通過使用包括在一私鑰上的多個同源而生成的。
16.如權利要求15所述的方法,其特徵在於,所述多個同源將橢圓曲線E1上的點映射到橢圓曲線E2上的點,且所述私鑰還包括橢圓曲線E1;以及P、Q,它們是E1上的兩個有限點。
17.如權利要求10所述的方法,其特徵在於,所述籤名是使用下列表達式生成的=m11(P)+...+mtt(P)deg(m11+...+mtt)]]>其中,「σ」是所述籤名,φ1到φt是私鑰上的同源,且所述籤名是同源橢圓曲線E2上的一點。
18.一種計算機可讀介質,包括籤名;公鑰,它含有通過將多個同源應用於橢圓曲線上的一點而得到的多個結果;以及一個或多個模塊,它們可執行來使用所述公鑰確認所述籤名。
19.如權利要求18所述的計算機可讀介質,其特徵在於,還包括用於在客戶機上安裝和執行的至少一個其它模塊,且其中,所述一個或多個模塊可執行來基於對所述籤名的確認結果,確定是否安裝所述至少一個其它模塊。
20.如權利要求18所述的計算機可讀介質,其特徵在於,所述籤名是通過使用包括在一私鑰上的多個同源而生成的。
全文摘要
描述了用於生成和確認籤名的技術。在一實現中,一種方法包括通過使用包括在一私鑰上的多個同源生成籤名,並將該籤名和一公鑰結合在產品上,其中該公鑰被配置成確認該籤名。
文檔編號H04L9/10GK1855815SQ20051010365
公開日2006年11月1日 申請日期2005年9月1日 優先權日2005年4月29日
發明者D·Y·交, P·L·蒙哥馬利, R·文卡塔森, V·博伊科 申請人:微軟公司