欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于模冪運(yùn)算的高效平穩(wěn)編碼的制作方法

文檔序號:10690823閱讀:259來源:國知局
用于模冪運(yùn)算的高效平穩(wěn)編碼的制作方法
【專利摘要】各種實(shí)施例涉及一種對數(shù)據(jù)進(jìn)行編碼的方法和相關(guān)裝置以及非暫時(shí)性機(jī)器可讀存儲媒體,包含:確定待用于對值h進(jìn)行編碼的因子集合S,其中所述因子集合包含與所述值h中的相應(yīng)的數(shù)字位置相關(guān)聯(lián)的多個(gè)子集;從所述因子集合S中選擇多個(gè)因子;以及計(jì)算所述多個(gè)因子的乘積以產(chǎn)生編碼值。各種其它實(shí)施例涉及一種對數(shù)據(jù)進(jìn)行編碼的方法和相關(guān)裝置以及非暫時(shí)性機(jī)器可讀存儲媒體,包含:確定待用于對所述值h進(jìn)行編碼的因子集合S和權(quán)重w;從所述因子集合S中選擇w個(gè)因子的集合T以表示所述值h;以及計(jì)算所述集合T的乘積以產(chǎn)生編碼值。
【專利說明】用于模幕運(yùn)算的高效平穩(wěn)編碼
[0001] 相關(guān)申請交叉引用
[0002] 本申請案是2014年12月23日遞交的第14/580,963號美國專利申請案的部分繼續(xù) 申請案,所述部分繼續(xù)申請案的全部掲示內(nèi)容出于各種目的在此W引用的方式并入本文 中。
技術(shù)領(lǐng)域
[0003] 本文所掲示的各種實(shí)施例大體上設(shè)及數(shù)據(jù)編碼和數(shù)字簽名,并且更確切地說但非 排他地,設(shè)及用于基于RSA的數(shù)字簽名方案的編碼。
【背景技術(shù)】
[0004] 數(shù)字簽名方案通常在對消息進(jìn)行簽名之前將編碼過程應(yīng)用于數(shù)據(jù)W確保數(shù)據(jù)符 合預(yù)先選擇的字母表,所述方案應(yīng)用于所述預(yù)先選擇的字母表。舉例來說,使用密鑰3元組< N,e,d>的標(biāo)準(zhǔn)RSA算法首先將每個(gè)符號轉(zhuǎn)換成0和N之間的對應(yīng)值。其它編碼方案可W用于 輸入值的不同集合使得簽名方案能夠采用輸入值集合中的值的各種數(shù)學(xué)特性。
[0005] 在編碼之后,編碼值用于形成簽名W用于發(fā)射。例如RSA等一些加密算法利用模幕 函數(shù)來形成此類簽名。作為一個(gè)實(shí)例,RSA使用私有密鑰對沛,(1〉通過計(jì)算bd mod N處理編 碼值bnRSA將隨后使用公共密鑰對沛,6〉通過首先計(jì)算s6 mod N驗(yàn)證簽名值S。隨后將解碼 函數(shù)應(yīng)用于所得值W檢索原始值。

【發(fā)明內(nèi)容】

[0006] 各種實(shí)施例的簡要概述在下文呈現(xiàn)。在W下概述中可W做出一些簡化和省略,所 述概述意圖突出且引入各種實(shí)施例的一些方面,但不限制本發(fā)明的范圍。足W允許本領(lǐng)域 普通技術(shù)人員產(chǎn)生且使用發(fā)明性概念的優(yōu)選實(shí)施例的詳細(xì)描述將跟隨在稍后的章節(jié)中。
[0007] 本文中所描述的各種實(shí)施例設(shè)及一種用指令編碼W用于執(zhí)行模幕運(yùn)算的非暫時(shí) 性機(jī)器可讀媒體,所述非暫時(shí)性機(jī)器可讀媒體包含:用于確定待取幕的值b的多個(gè)因子的指 令;用于從查找表檢索與多個(gè)因子相關(guān)聯(lián)的多個(gè)查找表項(xiàng)的指令;用于計(jì)算多個(gè)查找表項(xiàng) 的乘積的指令;W及用于使用加密密鑰模數(shù)N來計(jì)算乘積的留數(shù)W產(chǎn)生取幕值S的指令。
[000引本文中所描述的各種實(shí)施例設(shè)及一種用于執(zhí)行模幕運(yùn)算的裝置,非暫時(shí)性機(jī)器可 讀媒體包含:存儲器,其被配置成存儲查找表;W及與存儲器通信的處理器,所述處理器被 配置成:確定待取幕的值b的多個(gè)因子;從查找表檢索與多個(gè)因子相關(guān)聯(lián)的多個(gè)查找表項(xiàng); 計(jì)算多個(gè)查找表項(xiàng)的乘積;W及使用加密密鑰模數(shù)N來計(jì)算乘積的留數(shù),W產(chǎn)生取幕值S。
[0009] 本文中所描述的各種實(shí)施例設(shè)及一種用于執(zhí)行模幕運(yùn)算的方法,包含:確定待取 幕的值b的多個(gè)因子;從查找表檢索與多個(gè)因子相關(guān)聯(lián)的多個(gè)查找表項(xiàng);計(jì)算多個(gè)查找表項(xiàng) 的乘積;W及使用加密密鑰模數(shù)N來計(jì)算乘積的留數(shù)W產(chǎn)生取幕值S。
[0010] 本文中描述各種實(shí)施例,其中確定待取幕的值b的多個(gè)因子包含:通過從因子集合 S識別多個(gè)因子W表示值h來對值h進(jìn)行編碼。
[0011] 本文中描述各種實(shí)施例,其中:確定待取幕的值b的多個(gè)因子包含:確定對應(yīng)地與 因子集合S中的多個(gè)因子相關(guān)聯(lián)的多個(gè)索引;W及檢索與多個(gè)因子相關(guān)聯(lián)的多個(gè)查找表項(xiàng) 包含:從查找表中對應(yīng)地由多個(gè)索引指示的位置檢索多個(gè)查找表項(xiàng)。
[0012] 各種實(shí)施例另外包含:計(jì)算將被數(shù)字簽名的消息m的摘要h;對摘要h進(jìn)行編碼W產(chǎn) 生待取幕的值b;W及將消息m和取幕值S作為數(shù)字簽名發(fā)射到網(wǎng)絡(luò)裝置。
[0013] 各種實(shí)施例另外包含:從網(wǎng)絡(luò)裝置接收查找表;W及存儲查找表W用于隨后通過 檢索多個(gè)查找表項(xiàng)來獲取。
[0014] 本文中描述各種實(shí)施例,其中多個(gè)因子是屬于預(yù)先確定的因子集合S的多個(gè)質(zhì)數(shù)。
[0015] 各種實(shí)施例另外包含對值h進(jìn)行編碼W產(chǎn)生待取幕的值b,包含:迭代值h的位位 置;在設(shè)定在值hi中在位置i處的位時(shí),將與在因子的集合S內(nèi)的位位置i相對應(yīng)的因子Si包 含在編碼值b中。
[0016] 本文中所描述的各種實(shí)施例設(shè)及一種用于產(chǎn)生用于執(zhí)行模幕運(yùn)算的查找表的方 法所述方法包含:確定與編碼算法相關(guān)聯(lián)的因子集合S;基于因子集合S的對應(yīng)的因子、秘密 指數(shù)dW及加密密鑰模數(shù)N來計(jì)算多個(gè)模幕;將多個(gè)模幕存儲在查找表中;W及將查找表發(fā) 射到至少一個(gè)用戶裝置。
[0017] 本文中所描述的各種實(shí)施例設(shè)及一種用于產(chǎn)生用于執(zhí)行模幕運(yùn)算的查找表的裝 置,所述裝置包含:網(wǎng)絡(luò)接口;存儲器;W及與網(wǎng)絡(luò)接口和存儲器通信的處理器,所述處理器 被配置成:確定與編碼算法相關(guān)聯(lián)的因子集合S;基于因子集合S的對應(yīng)的因子、秘密指數(shù)d W及加密密鑰模數(shù)N來計(jì)算多個(gè)模幕;將多個(gè)模幕存儲在查找表中;W及經(jīng)由網(wǎng)絡(luò)接口將查 找表發(fā)射到至少一個(gè)用戶裝置。
[0018] 本文中所描述的各種實(shí)施例設(shè)及一種用于產(chǎn)生用于執(zhí)行模幕運(yùn)算的查找表的方 法,所述方法包含:確定與編碼算法相關(guān)聯(lián)的因子集合S;基于因子集合S的對應(yīng)的因子、秘 密指數(shù)dW及加密密鑰模數(shù)N來計(jì)算多個(gè)模幕;將多個(gè)模幕存儲在查找表中;W及將查找表 發(fā)射到至少一個(gè)用戶裝置。
[0019] 各種實(shí)施例另外包含產(chǎn)生加密密鑰,所述加密密鑰包含秘密指數(shù)d、公共指數(shù)eW 及加密密鑰模數(shù)N。
[0020] 本文中描述各種實(shí)施例,因子集合S是有序集合,由此因子集合S的個(gè)別的因子Si 與對應(yīng)的索引i相關(guān)聯(lián);將多個(gè)模幕存儲在查找表中包含:將多個(gè)模幕中的某一模幕存儲在 與索引i相關(guān)聯(lián)的查找表中,所述索引與因子si相關(guān)聯(lián),所述模幕運(yùn)算基于所述因子。
[0021] 各種實(shí)施例另外包含參與數(shù)字簽名方案,包含:從至少一個(gè)用戶裝置接收消息m和 簽名S;使用公共指數(shù)e和加密密鑰模數(shù)N來計(jì)算簽名S的模幕W產(chǎn)生第一整數(shù)b;對第一整數(shù) b進(jìn)行解碼W產(chǎn)生第二整數(shù)a;計(jì)算消息m的摘要h;W及通過比較摘要h與第二整數(shù)a來驗(yàn)證 消息m。
[0022] 本文中描述各種實(shí)施例,其中參與數(shù)字簽名方案包含:驗(yàn)證第一整數(shù)b屬于編碼域 V,所述編碼域基于因子集合S而被確定。
[0023] 本文中所描述的各種實(shí)施例設(shè)及一種用指令編碼W用于對值h進(jìn)行編碼的非暫時(shí) 性機(jī)器可讀媒體,所述非暫時(shí)性機(jī)器可讀媒體包含:
[0024] 用于確定將用于對值h進(jìn)行編碼的因子集合S的指令,其中所述因子集合包含與值 h中對應(yīng)的數(shù)字位置相關(guān)聯(lián)的多個(gè)子集;
[0025] 用于從因子集合S選擇多個(gè)因子的指令,包含:
[0026] 用于從與數(shù)字位置相關(guān)聯(lián)的多個(gè)子集選擇子集的指令,W及
[0027] 用于基于值h中在與選定子集相關(guān)聯(lián)的數(shù)字位置處的數(shù)字值而從選定子集選擇因 子的指令;W及
[0028] 用于計(jì)算多個(gè)因子的乘積W產(chǎn)生編碼值的指令。
[0029] 本文中所描述的各種實(shí)施例設(shè)及一種用于對值h進(jìn)行編碼的裝置,包含:存儲器; W及與存儲器通信的處理器,所述處理器被配置成:
[0030] 確定將用于對值h進(jìn)行編碼的因子集合S,其中所述因子集合包含與值h中對應(yīng)的 數(shù)字位置相關(guān)聯(lián)的多個(gè)子集;
[0031] 從因子集合S選擇多個(gè)因子,包括:
[0032] 從與數(shù)字位置相關(guān)聯(lián)的多個(gè)子集選擇子集,W及
[0033] 基于值h中在與選定子集相關(guān)聯(lián)的數(shù)字位置處的數(shù)字值而從選定子集選擇因子; W及
[0034] 計(jì)算多個(gè)因子的乘積W產(chǎn)生編碼值。
[0035] 本文中所描述的各種實(shí)施例設(shè)及一種用于對值h進(jìn)行編碼的方法,所述方法包含:
[0036] 確定將用于對值h進(jìn)行編碼的因子集合S,其中所述因子集合包含與值h中對應(yīng)的 數(shù)字位置相關(guān)聯(lián)的多個(gè)子集;
[0037] 從因子集合S選擇多個(gè)因子,包含:
[0038] 從與數(shù)字位置相關(guān)聯(lián)的多個(gè)子集選擇子集,W及
[0039] 基于值h中在與選定子集相關(guān)聯(lián)的數(shù)字位置處的數(shù)字值而從選定子集選擇因子; W及
[0040] 計(jì)算多個(gè)因子的乘積W產(chǎn)生編碼值。
[0041] 各種實(shí)施例另外包含進(jìn)一步包含:用于將值h轉(zhuǎn)換成r進(jìn)制表示,其中多個(gè)子集具 有等于基數(shù)r的對應(yīng)的長度,且數(shù)字位置與值h的r進(jìn)制數(shù)相對應(yīng)。
[0042] 本文中描述各種實(shí)施例,其中因子集合S包含質(zhì)數(shù)幕的集合,所述質(zhì)數(shù)幕的集合包 含至少一個(gè)非質(zhì)數(shù)。
[0043] 本文中描述各種實(shí)施例,其中:因子集合S是有序集合,由此在因子集合S內(nèi)的因子 對應(yīng)地與索引相關(guān)聯(lián);從與數(shù)字位置相關(guān)聯(lián)的多個(gè)子集選擇子集包含:將值h的基數(shù)r乘W 與數(shù)字位置相對應(yīng)的第一索引i W獲得第二索引j ;且基于值h中在與選定子集相關(guān)聯(lián)的數(shù) 字位置處的數(shù)字值而從選定子集選擇因子包含:將值h中的位于與第一索引i相對應(yīng)的數(shù)字 位置處的數(shù)字與第二索引j相加,W及在因子集合S內(nèi)檢索與第二索引j相對應(yīng)的因子。
[0044] 各種實(shí)施例另外包含:計(jì)算值hW作為將被數(shù)字簽名的消息m的摘要;計(jì)算簽名sW 作為編碼值的模幕;W及將消息m和簽名S發(fā)射到另一裝置。
[0045] 各種實(shí)施例另外包含執(zhí)行編碼值的模幕運(yùn)算,包含:從先前存儲的查找表檢索多 個(gè)項(xiàng),W及計(jì)算所述多個(gè)項(xiàng)的乘積。
[0046] 各種實(shí)施例另外包含從網(wǎng)絡(luò)服務(wù)器接收查找表和存儲查找表。
[0047] 本文中所描述的各種實(shí)施例設(shè)及一種用指令編碼W用于對值h進(jìn)行編碼的非暫時(shí) 性機(jī)器可讀媒體,所述非暫時(shí)性機(jī)器可讀媒體包含:用于確定將用于對值h進(jìn)行編碼的因子 集合S和權(quán)重W的指令;用于從因子集合S選擇W因子的集合TW表示值h的指令;W及用于計(jì) 算集合τ的乘積W產(chǎn)生編碼值的指令。
[0048] 本文中所描述的各種實(shí)施例設(shè)及一種用于對值h進(jìn)行編碼的裝置,包含:存儲器; W及與存儲器通信的處理器,所述處理器被配置成:確定將用于對值h進(jìn)行編碼的因子集合 S和權(quán)重W;從因子集合S中選擇W個(gè)因子的集合TW表示值h;W及計(jì)算集合T的乘積W產(chǎn)生編 碼值。
[0049] 本文中所描述的各種實(shí)施例設(shè)及一種用于對值h進(jìn)行編碼的方法,包含:確定將用 于對值h進(jìn)行編碼的因子集合S和權(quán)重W;從因子集合S選擇W因子的集合TW表示值h;W及計(jì) 算集合T的乘積W產(chǎn)生編碼值。
[0050] 本文中描述各種實(shí)施例,其中從因子集合S選擇W因子的集合TW表示值h包含:對 值h應(yīng)用不排名函數(shù)W將在因子集合S內(nèi)位于與值h相對應(yīng)的排名處的W子集識別為選定集 人下 口 1 〇
[0051] 本文中描述各種實(shí)施例,其中應(yīng)用不排名函數(shù)包含:基于值h從多個(gè)可能的不排名 函數(shù)選擇所述不排名函數(shù)。
[0052] 本文中描述各種實(shí)施例,其中因子集合S包含質(zhì)數(shù)幕的集合。
[0053] 各種實(shí)施例另外包含:計(jì)算值hW作為將被數(shù)字簽名的消息m的摘要;計(jì)算簽名sW 作為編碼值的模幕;W及將消息m和簽名S發(fā)射到另一裝置。
[0054] 各種實(shí)施例另外包含執(zhí)行編碼值的模幕運(yùn)算,包含:從先前存儲的查找表檢索多 個(gè)項(xiàng),W及計(jì)算所述多個(gè)項(xiàng)的乘積。
[0055] 本文中所描述的各種實(shí)施例設(shè)及一種用由處理器執(zhí)行的指令編碼W用于產(chǎn)生用 于執(zhí)行模幕運(yùn)算的查找表的非暫時(shí)性機(jī)器可讀媒體,所述非暫時(shí)性機(jī)器可讀媒體包含:用 于確定與編碼算法相關(guān)聯(lián)的因子集合S的指令;用于確定因子集合S的基礎(chǔ)因子集合少^用 于產(chǎn)生查找表的指令;用于基于基礎(chǔ)因子集合少的對應(yīng)的因子、秘密指數(shù)dW及加密密鑰模 數(shù)N來計(jì)算多個(gè)模幕的指令;用于將多個(gè)模幕存儲在查找表中的指令;W及用于將查找表發(fā) 射到至少一個(gè)用戶裝置的指令。
[0056] 本文中所描述的各種實(shí)施例設(shè)及一種用于產(chǎn)生用于執(zhí)行模幕運(yùn)算的查找表的裝 置,所述裝置包含:網(wǎng)絡(luò)接口;存儲器;W及與網(wǎng)絡(luò)接口和存儲器通信的處理器,所述處理器 被配置成:確定與編碼算法相關(guān)聯(lián)的因子集合S;確定因子集合S的基礎(chǔ)因子集合少^用于 產(chǎn)生查找表;基于基礎(chǔ)因子集合少的對應(yīng)的因子、秘密指數(shù)dW及加密密鑰模數(shù)N來計(jì)算多 個(gè)模幕;將多個(gè)模幕存儲在查找表中;W及經(jīng)由網(wǎng)絡(luò)接口將查找表發(fā)射到至少一個(gè)用戶裝 置。
[0057] 本文中所描述的各種實(shí)施例設(shè)及一種用于產(chǎn)生用于執(zhí)行模幕的查找表的方法,所 述方法包含:確定與編碼算法相關(guān)聯(lián)的因子集合S;確定因子集合S的基礎(chǔ)因子集合少W用 于產(chǎn)生查找表;基于基礎(chǔ)因子集合少的對應(yīng)的因子、秘密指數(shù)dW及加密密鑰模數(shù)N來計(jì)算 多個(gè)模幕;將多個(gè)模幕存儲在查找表中;W及將查找表發(fā)射到至少一個(gè)用戶裝置。
[0058] 本文中描述各種實(shí)施例,其中:因子集合S包含質(zhì)數(shù)幕的集合,且基礎(chǔ)因子集合少 包含質(zhì)數(shù)的集合,集合S的質(zhì)數(shù)幕由所述質(zhì)數(shù)的集合構(gòu)造。
[0059] 各種實(shí)施例另外包含參與數(shù)字簽名方案,包含:從至少一個(gè)用戶裝置接收消息m和 簽名S;使用公共指數(shù)e和加密密鑰模數(shù)N來計(jì)算簽名S的模幕W產(chǎn)生第一整數(shù)b;對第一整數(shù) b進(jìn)行解碼W產(chǎn)生第二整數(shù)a;計(jì)算消息m的摘要h;W及通過比較摘要h與第二整數(shù)a來驗(yàn)證 消息m。
[0060] 本文中描述各種實(shí)施例,其中對第一整數(shù)b進(jìn)行解碼W產(chǎn)生第二整數(shù)a包含:識別 用于對第一整數(shù)b進(jìn)行編碼的因子集合S;從因子集合S識別包含于第一整數(shù)b中的多個(gè)因 子;識別與多個(gè)因子中的對應(yīng)因子相對應(yīng)的多個(gè)索引;從多個(gè)索引得到多個(gè)項(xiàng);W及計(jì)算多 個(gè)項(xiàng)的總和W產(chǎn)生第二整數(shù)曰。
[0061] 本文中描述各種實(shí)施例,其中從多個(gè)索引得到多個(gè)項(xiàng)包含:識別多個(gè)索引的多個(gè) 序列識別符,由此當(dāng)對多個(gè)索引進(jìn)行排序時(shí),序列識別符記錄相對應(yīng)的索引在多個(gè)索引內(nèi) 的位置;基于多個(gè)索引和基數(shù)r計(jì)算多個(gè)留數(shù);基于將基數(shù)r升高到與多個(gè)序列識別符相對 應(yīng)的幕來計(jì)算多個(gè)幕;W及通過計(jì)算多個(gè)留數(shù)對應(yīng)地與多個(gè)幕的乘積來計(jì)算多個(gè)項(xiàng)。
[0062] 本文描述各種實(shí)施例,其中對第一整數(shù)b進(jìn)行解碼W產(chǎn)生第二整數(shù)a包含:識別用 于對第一整數(shù)b進(jìn)行編碼的因子集合S和權(quán)重W;從因子集合S識別包含于第一整數(shù)b中的多 個(gè)因子T;對多個(gè)因子T應(yīng)用排名函數(shù)W將多個(gè)因子T在因子集合S內(nèi)的排名識別為第二整數(shù) 過〇
[0063] 本文描述另外各種系統(tǒng),其中上述方法、裝置或非暫時(shí)性媒體中的一個(gè)或多個(gè)彼 此結(jié)合而操作。例如,此系統(tǒng)可W包含一種用于產(chǎn)生模幕或?qū)χ颠M(jìn)行編碼的方法、裝置或非 暫時(shí)性媒體,所述方法、裝置或非暫時(shí)性媒體結(jié)合用于產(chǎn)生查找表、驗(yàn)證模幕或?qū)χ颠M(jìn)行解 碼的一種方法、裝置或非暫時(shí)性媒體而操作。
【附圖說明】
[0064] 為了更好的理解各種實(shí)施例,參考附圖,其中:
[0065] 圖1示出用于實(shí)施本文中描述的編碼和簽名方案的硬件系統(tǒng)的實(shí)例;
[0066] 圖2示出用于提供用戶裝置安全內(nèi)容的系統(tǒng)W及處理所述安全內(nèi)容的軟件應(yīng)用程 序的實(shí)例;
[0067] 圖3示出用于對消息進(jìn)行數(shù)字簽名的方法的實(shí)例;
[0068] 圖4示出用于驗(yàn)證數(shù)字簽名的方法的實(shí)例;
[0069] 圖5示出用于產(chǎn)生查找表的方法的實(shí)例;
[0070] 圖6示出編碼方法的第一實(shí)例;
[0071] 圖7示出解碼方法的第一實(shí)例;
[0072] 圖8示出編碼方法的第二實(shí)例;
[0073] 圖9示出解碼方法的第二實(shí)例;
[0074] 圖10示出編碼方法的第Ξ實(shí)例;W及
[0075] 圖11示出解碼方法的第Ξ實(shí)例。
[0076] 為了便于理解,相同參考標(biāo)號用于表示具有基本上相同或類似結(jié)構(gòu)或基本上相同 或類似功能的元件。
【具體實(shí)施方式】
[0077] 本文中所呈現(xiàn)的描述和圖式示出了各種原理。應(yīng)了解,本領(lǐng)域的技術(shù)人員將能夠 設(shè)計(jì)各種布置,盡管本文中未明確地描述或示出所述布置,但所述布置體現(xiàn)運(yùn)些原理且包 含于本發(fā)明的范圍內(nèi)。如本文所使用,術(shù)語"或"是指非獨(dú)占的或(即,和/或),除非另外指明 (例如,"否則"或者"或在替代方案中")。另外,本文所描述的各種實(shí)施例未必是相互排斥 的,并且可W組合W產(chǎn)生并入本文中描述的原理的另外實(shí)施例。
[0078] 鑒于加密的不斷增長的情況和應(yīng)用,例如在不可信平臺上的應(yīng)用,最近的努力已 致力于"白箱密碼術(shù)"的概念,其中加密方案被研發(fā)成安全的,甚至當(dāng)加密實(shí)施方案遭遇到 攻擊者時(shí)也是如此。白箱密碼術(shù)設(shè)及通過工程改造 W在不可信平臺上執(zhí)行的加密算法的軟 件實(shí)施方案的設(shè)計(jì)和分析。確切地說,運(yùn)是其中特定裝置的用戶可W解密消息(通過秘密密 鑰)的情境,所述消息通過用戶的公共密鑰加密,但是無法提取或得到足夠的信息來恢復(fù)此 秘密密鑰。此外,假定在運(yùn)類實(shí)施方案中用戶可W是攻擊者:例如,攻擊者已經(jīng)完全獲取了 軟件實(shí)施方案,可W在任何時(shí)間暫停、更改和恢復(fù)軟件實(shí)施方案的執(zhí)行。
[0079] 舉例來說,在數(shù)字權(quán)限管理系統(tǒng)中,希望向內(nèi)容消費(fèi)者提供容易地認(rèn)證他們自身 作為被授權(quán)獲取內(nèi)容的一方的能力。然而,還希望防止內(nèi)容消費(fèi)者出于向其它方提供對僅 授權(quán)給原始內(nèi)容消費(fèi)者的相同內(nèi)容的獲取的目的與那些其它方分享憑證。
[0080] 此情境的一個(gè)白箱方法是向內(nèi)容消費(fèi)者提供使用私有密鑰d來對消息進(jìn)行數(shù)字簽 名的能力,所述私有密鑰被分配給內(nèi)容消費(fèi)者而不實(shí)際上將私有密鑰d給予內(nèi)容消費(fèi)者。為 此,可實(shí)際上基于私有密鑰d向內(nèi)容消費(fèi)者提供預(yù)先計(jì)算的取幕值的查找表。在各種系統(tǒng) 中,例如,查找表可W通過例如中屯、數(shù)字權(quán)限管理服務(wù)器提供給內(nèi)容消費(fèi)者,所述中屯、數(shù)字 權(quán)限管理服務(wù)器用于向服務(wù)于受保護(hù)內(nèi)容的一個(gè)或多個(gè)媒體服務(wù)器認(rèn)證內(nèi)容消費(fèi)者。內(nèi)容 消費(fèi)者可隨后使用此查找表來計(jì)算數(shù)字簽名,盡管他們并不知曉他們的私有密鑰d的值。期 望的是在運(yùn)些努力之后簡化方案并且減少貢獻(xiàn)于執(zhí)行的資源,例如,減小查找表的大小。
[0081] 應(yīng)了解,雖然本文中描述的各種實(shí)例是在數(shù)字簽名方案的情形下說明的,但是本 文所描述的各種方面可適用于數(shù)據(jù)加密方案,其中數(shù)據(jù)用公共密鑰加密并且使用私有密鑰 檢索。
[0082] 圖1示出用于實(shí)施本文中描述的編碼和簽名方案或查找表產(chǎn)生方案的硬件系統(tǒng) 100的實(shí)例。硬件系統(tǒng)100可實(shí)際上對應(yīng)于可W參與數(shù)字簽名方案的任何裝置,例如,個(gè)人計(jì) 算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、移動通信裝置、服務(wù)器、刀片、智能卡、近場通信(NFC)裝 置,或其它裝置。舉例來說,硬件系統(tǒng)可對應(yīng)于用于接收和呈現(xiàn)數(shù)字內(nèi)容的機(jī)頂盒,或?qū)?yīng) 于用于提供數(shù)字內(nèi)容的服務(wù)器。本文中描述的方法的各種應(yīng)用將是顯而易見的,例如,數(shù)字 權(quán)限管理(DRM)、銀行應(yīng)用W及例如移動電話和電視機(jī)機(jī)頂盒等裝置中的一般保護(hù)加密密 鑰。
[0083] 如圖所示,裝置100包含經(jīng)由一個(gè)或多個(gè)系統(tǒng)總線110互連的處理器120、存儲器 130、用戶接口 140、網(wǎng)絡(luò)接口 150W及存儲裝置160。應(yīng)理解,在一些方面中,圖1構(gòu)成抽象圖 并且裝置100的組件的實(shí)際組織可能與所示的相比復(fù)雜的多。
[0084] 處理器120可W是能夠執(zhí)行存儲在存儲器130或存儲裝置150中的指令的任何硬件 裝置。因此,處理器可W包含微處理器、現(xiàn)場可編程口陣列(FPGA)、專用集成電路(ASIC)或 其它類似裝置。
[0085] 存儲器130可W包含各種存儲器,例如,L1、L2或L3高速緩沖存儲器或系統(tǒng)存儲器。 因此,存儲器130可W包含靜態(tài)隨機(jī)存取存儲器(SRAM)、動態(tài)RAM(DRAM)、快閃存儲器、只讀 存儲器(ROM),或其它類似存儲器裝置。
[0086] 用戶接口 140可W包含用于使得能夠與例如管理員等用戶通信的一個(gè)或多個(gè)裝 置。舉例來說,用戶接口 140可W包含用于接收用戶命令的顯示器、鼠標(biāo)和鍵盤。在一些實(shí)施 例中,用戶接口 140可W包含可經(jīng)由網(wǎng)絡(luò)接口 150呈現(xiàn)給遠(yuǎn)端終端的命令行界面或圖形用戶 界面。
[0087] 網(wǎng)絡(luò)接口 150可W包含用于使得能夠與其它硬件裝置通信的一個(gè)或多個(gè)裝置。舉 例來說,網(wǎng)絡(luò)接口 150可W包含網(wǎng)絡(luò)接口卡(NIC),所述網(wǎng)絡(luò)接口卡被配置成根據(jù)W太網(wǎng)協(xié) 議通信。另外,網(wǎng)絡(luò)接口 150可實(shí)施TCP/IP找W用于根據(jù)TCP/IP協(xié)議通信。用于網(wǎng)絡(luò)接口 150 的各種替代的或另外的硬件或配置將是顯而易見的。
[0088] 存儲裝置160可W包含一個(gè)或多個(gè)機(jī)器可讀存儲媒體,例如,只讀存儲器(ROM)、隨 機(jī)存取存儲器(RAM)、磁盤存儲媒體、光學(xué)存儲媒體、快閃存儲器裝置或類似存儲媒體。在各 種實(shí)施例中,存儲裝置160可存儲指令W用于由處理器120執(zhí)行,或者可W存儲數(shù)據(jù),處理器 120可W對所述數(shù)據(jù)進(jìn)行操作。
[0089] 舉例來說,在硬件裝置100實(shí)施用戶裝置的情況下,存儲裝置160包含數(shù)字簽名算 法,所述數(shù)字簽名算法用于產(chǎn)生用于驗(yàn)證硬件裝置或其用戶的身份標(biāo)識的數(shù)字簽名或用于 驗(yàn)證從其它裝置接收的數(shù)字簽名。為了支持?jǐn)?shù)字簽名算法162,存儲裝置160還包含編碼或 解碼算法164和模幕算法166。如將在下文中借助于各種實(shí)例更詳細(xì)地理解和說明的,編碼 算法164將初始值轉(zhuǎn)換成屬于一個(gè)集合,模幕算法166在所述集合上操作,而解碼算法164將 此編碼集合中的值轉(zhuǎn)換回到原始集合(例如,整數(shù)的集合等)中的值。模幕算法166使用升高 到秘密指數(shù)d或公共指數(shù)e(取決于簽名是對應(yīng)地被計(jì)算還是被驗(yàn)證)的幕的編碼值的加密 密鑰模數(shù)N來計(jì)算相當(dāng)于留數(shù)的模幕。在遵循白箱密碼術(shù)方法的各種實(shí)施例中,模幕算法 166并不獲取秘密指數(shù)d,并且實(shí)際上存儲裝置160包含查找表168,所述查找表可W由模幕 算法166使用W執(zhí)行如在W下各種實(shí)例中描述的其功能。
[0090] 在硬件裝置100實(shí)施內(nèi)容服務(wù)器或其它服務(wù)器W用于分配查找表的情況下,存儲 裝置包含查找表產(chǎn)生指令172。運(yùn)些指令172可利用加密密鑰(包含秘密指數(shù),d)和用于形成 編碼域V的因子集合SW預(yù)先計(jì)算因子的模幕,使得裝置不獲取秘密指數(shù)d,然而運(yùn)些指令可 使用預(yù)先計(jì)算的模幕來構(gòu)造屬于編碼域V的任何編碼值的模幕。在一些此類實(shí)施例中,裝置 100也可W產(chǎn)生加密密鑰或因子集合,并且因此,存儲裝置160可存儲加密密鑰產(chǎn)生指令174 或因子集合產(chǎn)生指令176。應(yīng)了解,在一些實(shí)施例中,加密密鑰或因子集合對于每個(gè)用戶可 W是唯一的,對于所有用戶可W是恒定的,或其某一組合可W是恒定的。另外,在一些實(shí)施 例中,內(nèi)容服務(wù)器或其它服務(wù)器也可W參與數(shù)字簽名方案(例如,驗(yàn)證裝置的身份標(biāo)識,查 找表先前發(fā)射到所述裝置),并且因此還可包含數(shù)字簽名算法162、編碼/解碼算法164和模 幕算法166。
[0091] 將顯而易見的是,描述為存儲在存儲裝置160中的各種信息可另外地或替代地存 儲在存儲器130中。在運(yùn)方面中,存儲器130也可W被視為構(gòu)成"存儲裝置"并且存儲裝置160 可被視為"存儲器"。各種其它布置將是顯而易見的。另外,存儲器130和存儲裝置160可都被 視作"非暫時(shí)性機(jī)器可讀媒體"。如本文所使用,術(shù)語"非暫時(shí)性'將被理解為不包括暫時(shí)信 號但是包含所有形式的存儲裝置,包含易失性存儲器和非易失性存儲器運(yùn)兩者。
[0092] 雖然硬件裝置100示出為包含每個(gè)所描述的組件中的一個(gè)組件,但是各種組件可 W在各種實(shí)施例中復(fù)制。舉例來說,處理器120可W包含多個(gè)微處理器,所述微處理器被配 置成獨(dú)立地執(zhí)行本文中所描述的方法或被配置成執(zhí)行本文中所描述的方法的步驟或子例 程,使得多個(gè)處理器協(xié)作w實(shí)現(xiàn)本文中描述的功能性。在其它實(shí)施例中,例如在其中裝置 100在云計(jì)算環(huán)境中實(shí)施的那些實(shí)施例中,各種組件可物理地位于不同機(jī)器中。舉例來說, 處理器120可W包含在第一數(shù)據(jù)中屯、服務(wù)器中的第一微處理器W及在第二數(shù)據(jù)中屯、服務(wù)器 中的第二微處理器。各種其它布置將是顯而易見的。
[0093] 圖2示出用于將安全內(nèi)容提供給用戶裝置且提供處理所述安全內(nèi)容的軟件應(yīng)用程 序的系統(tǒng)的實(shí)例。所述系統(tǒng)包含內(nèi)容服務(wù)器200、應(yīng)用程序服務(wù)器220、用戶裝置250、252和 數(shù)據(jù)網(wǎng)絡(luò)240。用戶裝置250、252可請求經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)240獲取由內(nèi)容服務(wù)器200提供的安全 內(nèi)容。數(shù)據(jù)網(wǎng)絡(luò)可W是提供用戶裝置250、252與內(nèi)容服務(wù)器200和應(yīng)用程序服務(wù)器220之間 的連接性的任何數(shù)據(jù)網(wǎng)絡(luò)。用戶裝置250、252可W是多個(gè)裝置中的一個(gè)裝置,例如,機(jī)頂盒、 流媒體播放器、數(shù)字視頻錄像機(jī)、平板計(jì)算機(jī)、移動電話、膝上型計(jì)算機(jī)、便攜式媒體裝置、 智能手表、桌面計(jì)算機(jī)、媒體服務(wù)器等。
[0094] 針對獲取的用戶請求可首先需要下載可用于處理由內(nèi)容服務(wù)器200提供的安全內(nèi) 容的軟件應(yīng)用程序。軟件應(yīng)用程序可W從應(yīng)用程序服務(wù)器220中下載。軟件應(yīng)用程序可W使 用上文所述的技術(shù)隱藏并且如上文所述操作。一旦用戶裝置250、252安裝軟件應(yīng)用程序,用 戶裝置隨后就可從內(nèi)容服務(wù)器200下載安全內(nèi)容并且使用所下載的軟件應(yīng)用程序獲取安全 內(nèi)容。舉例來說,所下載的軟件應(yīng)用程序可執(zhí)行從內(nèi)容服務(wù)器接收的加密內(nèi)容的解密。在其 它實(shí)施例中,軟件應(yīng)用程序可執(zhí)行其它安全操作,例如,加密、數(shù)字簽名產(chǎn)生和驗(yàn)證等。 [00M]內(nèi)容服務(wù)器200可控制對提供給用戶裝置250、252的安全內(nèi)容的獲取。因此當(dāng)內(nèi)容 服務(wù)器200接收針對安全內(nèi)容的請求時(shí),內(nèi)容服務(wù)器200可將安全內(nèi)容發(fā)射到請求用戶裝 置。類似地,應(yīng)用程序服務(wù)器220可控制對提供給用戶裝置250、252的軟件應(yīng)用程序的獲取。 因此當(dāng)內(nèi)容服務(wù)器220接收針對軟件應(yīng)用程序的請求時(shí),應(yīng)用程序服務(wù)器220可將軟件應(yīng)用 程序發(fā)射到請求用戶裝置。在將軟件應(yīng)用程序或安全內(nèi)容提供給用戶裝置之前,請求軟件 應(yīng)用程序或安全內(nèi)容的用戶裝置也可W通過相應(yīng)的服務(wù)器來認(rèn)證。
[0096] 內(nèi)容服務(wù)器200可W包含經(jīng)由一個(gè)或多個(gè)系統(tǒng)總線208互連的處理器202、存儲器 204、用戶接口206、網(wǎng)絡(luò)接口210和內(nèi)容存儲裝置212。應(yīng)理解,在一些方面中,圖2構(gòu)成抽象 圖并且裝置200的組件的實(shí)際組織可能與所示的相比復(fù)雜的多。
[0097] 處理器202可W是能夠執(zhí)行存儲在存儲器204或存儲裝置212中的指令的任何硬件 裝置。因此,處理器可W包含微處理器、現(xiàn)場可編程口陣列(FPGA)、專用集成電路(ASIC)或 其它類似裝置。
[0098] 存儲器204可W包含各種存儲器,例如,L1、L2或L3高速緩沖存儲器或系統(tǒng)存儲器。 因此,存儲器204可W包含靜態(tài)隨機(jī)存取存儲器(SRAM)、動態(tài)RAM(DRAM)、快閃存儲器、只讀 存儲器(ROM),或其它類似存儲器裝置。
[0099] 用戶接口 206可W包含用于使得能夠與例如管理員等用戶通信的一個(gè)或多個(gè)裝 置。舉例來說,用戶接口 206可W包含用于接收用戶命令的顯示器、鼠標(biāo)和鍵盤。
[0100] 網(wǎng)絡(luò)接口 210可W包含用于使得能夠與其它硬件裝置通信的一個(gè)或多個(gè)裝置。舉 例來說,網(wǎng)絡(luò)接口 210可W包含網(wǎng)絡(luò)接口卡(NIC),所述網(wǎng)絡(luò)接口卡被配置成根據(jù)W太網(wǎng)協(xié) 議通信。另外,網(wǎng)絡(luò)接口 210可實(shí)施TCP/IP找W用于根據(jù)TCP/IP協(xié)議通信。用于網(wǎng)絡(luò)接口 210 的各種替代的或另外的硬件或配置將是顯而易見的。
[0101 ]內(nèi)容存儲裝置212可W包含一個(gè)或多個(gè)機(jī)器可讀內(nèi)容存儲媒體,例如只讀存儲器 (ROM)、隨機(jī)存取存儲器(RAM)、磁盤存儲媒體、光學(xué)存儲媒體、快閃存儲器裝置或類似存儲 媒體。在各種實(shí)施例中,內(nèi)容存儲裝置212可存儲將提供給用戶的內(nèi)容。
[0102] 應(yīng)用程序服務(wù)器220包含如同在內(nèi)容服務(wù)器200中的那些的元件,并且內(nèi)容服務(wù)器 200中的相同元件的描述適用于應(yīng)用程序服務(wù)器220。并且,內(nèi)容存儲裝置722被應(yīng)用程序存 儲裝置232代替。另外,應(yīng)注意內(nèi)容服務(wù)器和應(yīng)用程序服務(wù)器可W在單個(gè)服務(wù)器上實(shí)施。并 且,此類服務(wù)器可W在分布式計(jì)算機(jī)系統(tǒng)上實(shí)施W及在上云計(jì)算機(jī)系統(tǒng)上實(shí)施。
[0103] 如將理解,本文中描述的模幕、編碼或數(shù)字簽名方法可W在圖2的系統(tǒng)或類似系統(tǒng) 內(nèi)W各種方式部署和利用。舉例來說,用戶裝置250、252可由制造商或其它賣方提供,所述 用戶裝置被預(yù)配置成將簽署的消息發(fā)射到內(nèi)容服務(wù)器200W請求內(nèi)容的提供。替代地,用戶 裝置250、252可能未完全針對此類操作預(yù)配置;實(shí)際上,應(yīng)用程序服務(wù)器220可與用戶裝置 250、252通信W實(shí)現(xiàn)此類配置。舉例來說,應(yīng)用程序服務(wù)器可發(fā)射代碼指令W用于實(shí)施本文 中所描述的方法或限定一個(gè)或多個(gè)查找表的數(shù)據(jù)。
[0104] 圖3示出用于對消息進(jìn)行數(shù)字簽名的方法300的實(shí)例。方法300可對應(yīng)于圖1的數(shù)字 簽名算法162。舉例來說,在裝置請求內(nèi)容傳遞的實(shí)施例中,裝置可執(zhí)行例如方法300等方法 W對請求消息進(jìn)行數(shù)字簽名W證明請求者的身份標(biāo)識。用于執(zhí)行例如方法300等數(shù)字簽名 方法的各種替代情況將是顯而易見的。
[0105] 方法在步驟305中開始并且前進(jìn)到步驟310,在步驟310,裝置計(jì)算待簽名的消息m 的摘要h。舉例來說,消息可W是請求將內(nèi)容傳遞到裝置的請求消息。摘要可根據(jù)例如將哈 希函數(shù)應(yīng)用到整個(gè)消息(*心、υ的任何方法計(jì)算。替代地,在一些實(shí)施例中,完全的非摘要方 法可W用于數(shù)字簽名,在此情況下可省略步驟310。
[0106] 接下來,在步驟315中,裝置將摘要(或其它值化編碼到編碼域V中,在所述編碼域 內(nèi)W下模幕步驟被配置成操作。具體來說,根據(jù)各種實(shí)施例,編碼域V是基于預(yù)先選擇的因 子集合S限定或產(chǎn)生的。因子集合S可W例如是質(zhì)數(shù)的集合、質(zhì)數(shù)幕的集合、相對于彼此互質(zhì) 的數(shù)目的集合或整數(shù)的任意集合。鑒于本發(fā)明因子集合S的選擇之間的各種權(quán)衡將是顯而 易見的。舉例來說,質(zhì)數(shù)的集合可提供與非互質(zhì)的任意整數(shù)的集合相比對"誤檢"簽名驗(yàn)證 的更大的防御,但是也可能需要較大查找表W預(yù)先計(jì)算和存儲。給定此因子集合S,編碼域 可被定義為可作為S中的因子的乘積構(gòu)造的任何整數(shù),
[0107]
[010引其中Ν是加密密鑰的模數(shù)。舉例來說,給定因子集合5={2,3,5},可^示出50£¥, 因?yàn)?0 = 21巧2。另一方面,70并不落入此實(shí)例編碼域V內(nèi),因?yàn)槠滟|(zhì)數(shù)因子中的一個(gè)質(zhì)數(shù)因 子,7既,不是S的元素也不是S中的元素的因子。針對步驟315可利用各種編碼算法W實(shí)現(xiàn)值 h e送到編碼值bev的轉(zhuǎn)換。在下文中將相對于圖6、8和10更詳細(xì)地描述各種實(shí)例編碼方 法。
[0109] 在步驟320中,裝置識別編碼值b的在因子集合S內(nèi)的1因子,使得
[0110]
[0111]舉例來說,給定編碼值b,裝置可利用試除法來識別S中的哪些因子是b的因子。在 其它實(shí)施例中,例如,其中在步驟315中編碼算法在S中選擇因子的實(shí)施例,因子可能已經(jīng)提 供于步驟320中。舉例來說,編碼算法可向前共享選定因子W用于方法300的剩余的步驟中。 替代地,在一些實(shí)施例中,編碼和模幕算法可組合,使得當(dāng)因子被選擇用于原始值時(shí),它們 被取模幕(例如,完全通過計(jì)算或參考查找表)并且隨后僅組合成乘積。
[0112]接下來,在步驟325中,裝置計(jì)算簽名S作為編碼值的模幕。在裝置獲取秘密指數(shù)d 的情況下,裝置可將模幕完全計(jì)算為,
[0113:
[0114] 換句話說,所述裝置可計(jì)算b的因子集合S中的每個(gè)因子的模幕并且隨后計(jì)算運(yùn)些 所得值的乘積。替代地,在裝置不具有秘密指數(shù)d的值且實(shí)際上具有S中的每個(gè)因子的模幕 的預(yù)先計(jì)算的查找表的情況下,裝置可實(shí)際上計(jì)算對應(yīng)于編碼值b的1因子的查找表項(xiàng)的乘 積。舉例來說,給定查找表L和索引函數(shù)t(x),所述索引函數(shù)針對因子X返回在因子集合S內(nèi) 的因子的索引(或簡單地給定1因子的索引),裝置可將模幕計(jì)算為
[0115]
[0116] 在已經(jīng)計(jì)算簽名S之后,裝置隨后將簽名S連同消息m-起發(fā)射到接收方,例如,在 內(nèi)容請求的情況下,發(fā)射到內(nèi)容服務(wù)器。在步驟335中方法300隨后前進(jìn)到結(jié)束。
[0117] 在接收消息和簽名對之后,接收方裝置可前進(jìn)W驗(yàn)證簽名。舉例來說,在接收方裝 置是內(nèi)容服務(wù)器的情況下,服務(wù)器可驗(yàn)證簽名并且僅當(dāng)簽名經(jīng)過驗(yàn)證才開始服務(wù)于內(nèi)容。 用于簽名驗(yàn)證的各種其它情況和結(jié)果將是顯而易見的。
[0118] 圖4示出用于驗(yàn)證數(shù)字簽名的方法400的實(shí)例。方法300可對應(yīng)于圖1的數(shù)字簽名算 法162。方法400可結(jié)合方法300(或與其類似的方法)操作,并且為了實(shí)現(xiàn)此類互補(bǔ)操作,運(yùn) 兩種方法可用關(guān)于因子集合S、編碼域V、編碼/解碼算法對(它們自身可W是互補(bǔ)算法)、哈 希函數(shù)或加密密鑰的公共元素<e,N〉的先驗(yàn)協(xié)定實(shí)施。
[0119] 方法400在步驟405中開始并且前進(jìn)到步驟410,在步驟410中,裝置從發(fā)送裝置接 收消息和簽名。舉例來說,簽名S可通過執(zhí)行方法300或其類似方法的發(fā)送裝置產(chǎn)生且發(fā)射 到裝置。接下來,在步驟415中,裝置計(jì)算簽名的模幕W產(chǎn)生編碼值b。如將理解,當(dāng)通過方法 300計(jì)算的簽名S再次用于模幕運(yùn)算但是具有公共指數(shù)e而不是私有指數(shù)加寸,將恢復(fù)原始的 預(yù)先模幕值b(只要指數(shù)d和e是匹配的對)。在步驟415中模幕可根據(jù)任何方法計(jì)算,例如,簡 單明了的數(shù)學(xué)計(jì)算、簽名的質(zhì)數(shù)因子的模幕的計(jì)算,或甚至參考基于用于所有小于N的質(zhì)數(shù) 的公共指數(shù)e而用模幕預(yù)先計(jì)算的單獨(dú)的查找表。
[0120] 在步驟420中,裝置確定恢復(fù)值b是否屬于編碼域V。舉例來說,裝置可使用試除法 確定是否可W使用來自因子集合S的因子構(gòu)造值b。如果恢復(fù)值b并不屬于編碼域V,那么方 法400前進(jìn)到步驟445,其中裝置確定簽名被確定為未驗(yàn)證的。否則的話,方法400前進(jìn)到步 驟425。
[0121] 在步驟425中,裝置使用解碼算法對整數(shù)b進(jìn)行解碼W產(chǎn)生整數(shù)a。如同方法300的 編碼步驟315-樣,解碼步驟425可實(shí)際上利用任何方法來將編碼值bev轉(zhuǎn)換成未經(jīng)編碼值 a S,所述方法補(bǔ)充用于形成簽名S的編碼方法使得
[0122]解碼(編碼(X))=X。
[0123] 在下文中將相對于圖7、9和11更詳細(xì)地描述解碼方法的各種實(shí)例。
[0124] 在步驟430中,裝置計(jì)算消息m的摘要W產(chǎn)生值h。如同方法300的摘要步驟310 - 樣,摘要函數(shù)可實(shí)際上是任何函數(shù),例如預(yù)先選擇且同意的哈希函數(shù)。替代地,在不計(jì)算摘 要的情況下,消息m可被視為值h。在步驟435中,裝置確定恢復(fù)值a是否匹配摘要值h。如果不 匹配,那么方法前進(jìn)到步驟445,其中裝置確定簽名無法驗(yàn)證。否則的話,方法前進(jìn)到步驟 440,其中裝置確定簽名被驗(yàn)證并且接受消息對為真實(shí)的(例如,響應(yīng)于包含于消息中的請 求而前進(jìn))。在步驟440或445中作出關(guān)于驗(yàn)證的確定之后,在步驟450中方法前進(jìn)到結(jié)束。
[0125] 圖5示出用于產(chǎn)生待用于例如方法300等數(shù)字簽名產(chǎn)生方法中的查找表的方法500 的實(shí)例。用于產(chǎn)生用于例如方法400等數(shù)字簽名驗(yàn)證方法中的查找表的各種修改將是顯而 易見的。方法500可對應(yīng)于圖1的查找表產(chǎn)生指令172。在各種實(shí)施例中,方法500可基于將由 方法300或400使用的各種值產(chǎn)生查找表。舉例來說,方法500可具有加密密鑰<6,(1,齡、因子 集合S、編碼域V、編碼/解碼方法對等。
[01%]方法500在步驟505中開始并且前進(jìn)到步驟510,其中裝置確定因子集合S,所述因 子集合將用于數(shù)字簽名方案中并且查找表基于所述因子集合。在一些實(shí)施例中,此步驟可 替代地確定因子集合的子集少,查找表基于所述子集。具體來說,在集合S內(nèi)的一些因子自 身是集合S中的其它因子的乘積的情況下,運(yùn)些因子可從查找表中省略,因?yàn)樗鼈兛蒞簡單 地由較小因子重構(gòu)。舉例來說,在一些實(shí)施例中,集合S可包含非質(zhì)數(shù)的因子??紤]S={2,3, 4,5,7}的情況。在構(gòu)造查找表時(shí),裝置可實(shí)際上利用子集少二{2,3,5,7},因?yàn)?可由2(4 = 22)構(gòu)造,使得查找表項(xiàng)4潛在地冗余。在其它實(shí)施例中,裝置仍可在查找表中包含此類冗余 項(xiàng)。應(yīng)了解移除此類冗余項(xiàng)引起查找表大小與計(jì)算效率之間的權(quán)衡。
[0127] 在又一替代實(shí)施例中,查找表可基于集合少產(chǎn)生,集合少包含不是S的成員的一個(gè) 或多個(gè)元素。舉例來說,考慮5={22,32,24,52,7 2} = {4,9,16,25,49}的情況。雖然查找表可 W基于具有5個(gè)元素的S產(chǎn)生,但是查找表可替代地基于少={2,3,5,7}通過4個(gè)元素產(chǎn)生。 任一表可用于精確地計(jì)算模幕。在運(yùn)兩個(gè)實(shí)施例中,少可被稱為因子集合S的基礎(chǔ)因子集 厶 1=1 〇
[0128] 出于簡潔起見,如本文參考查找表產(chǎn)生所使用,選擇作為查找表的基礎(chǔ)的集合將 被稱作S,而不管此集合是全因子集合還是其子集。用于實(shí)現(xiàn)基于因子的子集的查找表的計(jì) 算的各種修改將是顯而易見的。
[0129] 在步驟515中,裝置通過輸入因子集合S中的每個(gè)元素來初始化新查找表。隨后,在 步驟520中,裝置將索引初始化到0的起始值。隨后,在步驟525中,裝置設(shè)定當(dāng)前查找表項(xiàng)的 值。具體來說,裝置使用秘密指數(shù)d和加密密鑰模數(shù)N來計(jì)算S中的第i個(gè)元素的模幕。裝置隨 后將查找表的第i項(xiàng)L[i]設(shè)定成等于所計(jì)算的值。隨后,在步驟530中,裝置使索引i遞增。
[0130] 在步驟535中,裝置確定S中的最后一個(gè)因子是否已經(jīng)得到處理,產(chǎn)生完整的查找 表。舉例來說,裝置可確定i現(xiàn)在是否等于(或在某種程度上大于)S的長度。如果不是,那么 方法500循環(huán)回到步驟525,在步驟525中可W計(jì)算下一個(gè)查找表項(xiàng)。否則的話,方法500前進(jìn) 到步驟540,其中裝置將查找表L發(fā)送到一個(gè)或多個(gè)裝置W用于執(zhí)行模幕運(yùn)算,作為例如方 法300等數(shù)字簽名方法的一部分。方法500隨后在步驟545中前進(jìn)到結(jié)束。
[0131] 如上文所指出,本文中描述的模幕方案可W結(jié)合各種編碼和解碼方法使用。根據(jù) 第一實(shí)例,給定X位整數(shù),編碼函數(shù)可計(jì)算B平滑輸出(用于適當(dāng)?shù)剡x擇的最大質(zhì)數(shù)B)。根據(jù) 此實(shí)例,集合S被選擇為至多B個(gè)質(zhì)數(shù)的有序子集:
[01創(chuàng) S={Si}其中Si是質(zhì)數(shù),Si《B,并且只要1化則Si<Sj
[0133] 第一實(shí)例編碼函數(shù)可隨后針對2進(jìn)制表示的X位整數(shù)h定義為
[0134]
[0135] 因此,取決于h的位表示,第一實(shí)例編碼方法計(jì)算至多B個(gè)質(zhì)數(shù)的子集的乘積。解碼 函數(shù)的第一實(shí)例可隨后被定義為
[0136]
[0137] 因此,第一實(shí)例解碼方法確定S中的哪些因子包含于編碼值中并且基于所識別的 因子設(shè)定位。在一些實(shí)施例中,可W選擇B的值,使得S中的因子的乘積并不超過將結(jié)合編碼 值的隨后的模幕使用的加密模數(shù)N。
[0138] 作為第一實(shí)例的替代方案,相同編碼和解碼方法可W用于不同因子集合。舉例來 說,集合S可實(shí)際上被定義為質(zhì)數(shù)幕的集合:
[0139]
[0140] 集合S可隨后受限于由S的前K《|S|個(gè)元素 Si組成的子集SkcS,其中SQ<si<...< SK-1。此特定集合將在下文中被稱為"質(zhì)數(shù)平方幕"因子集合。
[0141] 圖6示出編碼方法600的此第一實(shí)例的實(shí)例實(shí)施方案。此方法可對應(yīng)于圖1的編碼 算法164并且可W在步驟315中被稱作數(shù)字簽名產(chǎn)生方法300。替代地,編碼方法600可W用 于在本文中描述的數(shù)字簽名或模幕方法之外的各種其它情況。
[0142] 方法在步驟605中開始并且前進(jìn)到步驟610,在步驟610中,裝置將待編碼的值h轉(zhuǎn) 換成二進(jìn)制表示。替代地,在各種實(shí)施例中,整數(shù)h可能已經(jīng)W二進(jìn)制形式表示并且不需要 進(jìn)一步轉(zhuǎn)換;在此類實(shí)施例中,可W省略步驟610。
[0143] 接下來,在步驟615中,裝置可確定待用于編碼的因子集合S。舉例來說,因子集合S 可通過硬編碼到方法600中、從存儲器檢索,或從例如內(nèi)容服務(wù)器等另一裝置接收而預(yù)先確 定。舉例來說,根據(jù)例如上文所述的一個(gè)方案的質(zhì)數(shù)幕方案,因子集合S可W是前X個(gè)質(zhì)數(shù)的 集合或前X個(gè)質(zhì)數(shù)幕的集合。用作因子集合S的各種替代的集合將是顯而易見的。在步驟620 中,裝置隨后初始化編碼值b和當(dāng)前索引i。
[0144] 在進(jìn)入方法600的循環(huán)后,裝置將一個(gè)項(xiàng)并入到工作編碼值b中。如圖所示,b的當(dāng) 前值(初始化為1)乘W-個(gè)因子,所述因子對應(yīng)于升高到整數(shù)h的在對應(yīng)于當(dāng)前索引的位位 置處的二進(jìn)制數(shù)字(即,位)的幕的當(dāng)前索引。換句話說,當(dāng)當(dāng)前位是'1'時(shí),對應(yīng)于位位置的 S中的因子并入到工作編碼值中;否則的話,編碼值并不基于當(dāng)前位位置改變?;谡麛?shù)h修 改編碼值的各種替代方式將是顯而易見的。舉例來說,通過使S的大小加倍,每個(gè)位位置可 與兩個(gè)可能的因子相關(guān)聯(lián):當(dāng)h[i]是0時(shí)待并入的因子S21和當(dāng)h[i]是1時(shí)待并入的因子 S2i+l〇
[0145] 在考慮當(dāng)前位位置和可能地更新編碼值b之后,在步驟630中裝置使索引遞增。接 下來,在步驟635中,裝置確定方法600是否已經(jīng)處理整數(shù)h中的最后一個(gè)位。舉例來說,裝置 可確定當(dāng)前索引現(xiàn)在是否等于(或在某種程度上大于化中的位數(shù)。如果不是,那么方法600 循環(huán)回到步驟625W考慮下一個(gè)位位置。否則的話,方法600前進(jìn)W在步驟640中將編碼值b 返回到請求方法,例如,數(shù)字簽名產(chǎn)生方法300。方法隨后在步驟645中前進(jìn)到結(jié)束。
[0146] 圖7示出解碼方法700的第一實(shí)例的實(shí)例實(shí)施方案。此方法可對應(yīng)于圖1的解碼算 法164并且可W在步驟425中被稱作數(shù)字簽名驗(yàn)證方法400。替代地,解碼方法700可W用于 在本文中描述的數(shù)字簽名或模幕方法之外的各種其它情況。
[0147] 方法700在步驟705中開始并且前進(jìn)到步驟710,在步驟710中裝置確定用于對待解 碼的值b進(jìn)行編碼的因子集合S。舉例來說,在實(shí)施方法700W結(jié)合實(shí)例編碼方法600操作的 情況下,集合S可被預(yù)配置W供使用。隨后,在步驟715中,裝置初始化索引i和工作解碼值a。 接下來,在步驟720中,裝置確定S的第i個(gè)元素是否是編碼值b的因子,例如,通過試除法。如 果不是,那么方法先前跳到步驟730。否則的話,方法前進(jìn)到步驟725,其中裝置將工作解碼 值a的位設(shè)定成對應(yīng)于S捆子。舉例來說,如圖所示,裝置簡單地將21加到工作值。
[0148] 在考慮S的第i個(gè)因子之后,在步驟730中裝置使i遞增。隨后,在步驟730中,裝置確 定是否已經(jīng)考慮了 S中的所有因子。舉例來說,裝置可確定i是否等于(或在某種程度上大 于)S中的因子的數(shù)目。如果不是,那么方法循環(huán)回到步驟720W考慮下一個(gè)因子。否則的話, 解碼完成并且在步驟740中方法700將解碼值a返回到請求者,例如,方法400等數(shù)字簽名驗(yàn) 證方法。方法隨后在步驟745中前進(jìn)到結(jié)束。
[0149] 根據(jù)第二實(shí)例,待編碼的整數(shù)Wr進(jìn)制表示呈現(xiàn)為
[0150]
[0151] 其中r進(jìn)制數(shù)的數(shù)值nr可W從編碼寬度η確定為
[0152]
[0153] 第二實(shí)例編碼方法還選擇足夠長度的因子集合S,使得編碼值的每個(gè)r進(jìn)制數(shù)可分 配有對于該數(shù)字位置唯一的任何r個(gè)因子。舉例來說,在能夠?qū)?2個(gè)十六進(jìn)制數(shù)進(jìn)行編碼的 16進(jìn)制實(shí)施方案中,因子集合S被選擇為具有至少512個(gè)因子(即,16個(gè)因子用于32個(gè)位中的 每一個(gè)位)。給定此集合,第二實(shí)例編碼方法可被定義為
[0154]
[0155] 因此,因子集合S包含用于每個(gè)數(shù)字位置并且用于待編碼的值中的每個(gè)數(shù)字位置 的因子的子集、對應(yīng)于數(shù)字值的因子選自適當(dāng)子集W用于包含在編碼乘積中。
[0156] 給定B平滑整數(shù),
[0157]
[0158] 其中0<U〇<. . .<Un[r]-l<K,對應(yīng)的解碼函數(shù)可被定義為
[0159]
[0160] 換句話說,為了對a的第一r進(jìn)制數(shù)字進(jìn)行編碼,編碼方法挑選序列so,si,. . .,sr-i 中的第ao個(gè)元素,隨后挑選序列Sr,Sr+l,. . .,S2r-沖的第ai個(gè)元素等等。對于待編碼的每個(gè) 數(shù)字,第二實(shí)例使用S中的r個(gè)額外因子。對η位整數(shù)進(jìn)行編碼因此使用K = nrr個(gè)因子S。在V 存在于編碼域V中的情況下解碼是可能的,
[0161]
[0162] 對于上文定義為質(zhì)數(shù)-平方-幕的集合的因子集合SW及給定模數(shù)大小和B,最大編 碼寬度可通過最大η確定,使得
[0163]
[0164] 舉例來說,對于1024位模數(shù)Ν,表1示出了針對各種基數(shù)r可實(shí)現(xiàn)的的最大寬度(限 于2的幕);且隨后示出了用于編碼寬度η的參數(shù)的實(shí)例選擇,旨在使查找表L中的項(xiàng)k的數(shù)目 降到最小。應(yīng)注意最小k可通過可W對給定寬度進(jìn)行編碼的最小基數(shù)獲得。 「01 化 1
[0166] 圖8示出編碼方法800的第二實(shí)例的實(shí)例實(shí)施例。此方法可對應(yīng)于圖1的編碼算法 164并且可W在步驟315中被稱作數(shù)字簽名產(chǎn)生方法300。替代地,編碼方法800可W用于在 本文中描述的數(shù)字簽名或模幕方法之外的各種其它情況。
[0167] 方法800在步驟805中開始并且前進(jìn)到步驟810,在步驟810中裝置將待編碼整數(shù)轉(zhuǎn) 換成r進(jìn)制表示(其中基數(shù)r是待用于編碼的預(yù)配置基數(shù))。隨后,在步驟815中,裝置確定待 使用的因子集合S。同樣,此集合S可被預(yù)配置W用于編碼。舉例來說,所述基數(shù)和因子集合 可從內(nèi)容服務(wù)器接收并且存儲W用于稍后使用。在步驟820中,所述裝置隨后初始化索引i 和工作編碼值b。
[0168] 在步驟825中,所述裝置將來自S的適當(dāng)因子并入到工作編碼值b中。舉例來說,如 圖所示,裝置首先識別適當(dāng)索引為ir+hi,并且用對應(yīng)于此索引的S中的元素乘W工作值。因 此在運(yùn)個(gè)計(jì)算出的索引(ir)中的第一項(xiàng)在對應(yīng)于當(dāng)前數(shù)字位置的S的子集的開始處設(shè)定索 引,并且第二項(xiàng)化1)將索引移動到對應(yīng)于在該數(shù)字位置處的h的值的此子集內(nèi)的位置。各種 修改將是顯而易見的。舉例來說,在一些實(shí)施例中,可針對每個(gè)數(shù)字位置從S移除一個(gè)因子, 并且數(shù)字值ο可能導(dǎo)致沒有來自對應(yīng)子集的因子并入到b中,其方式類似于上文相對于方法 600所說明和示出的(其中二進(jìn)制0導(dǎo)致對應(yīng)的因子沒有并入到工作值中)。實(shí)現(xiàn)運(yùn)種和其它 變化的編碼和解碼方法的各種修改將是顯而易見的。
[0169] 在步驟825中的工作值b的修改之后,在步驟830中裝置使索引遞增。隨后,在步驟 835中,裝置確定是否已經(jīng)考慮h中的所有數(shù)字部分。舉例來說,裝置可確定i是否等于(或在 某種程度上大于化中的r進(jìn)制數(shù)的數(shù)目。如果不是,那么方法800循環(huán)回到步驟825W考慮下 一個(gè)數(shù)字位置。否則的話,方法800前進(jìn)W在步驟840中將編碼值b返回到請求方法,例如,數(shù) 字簽名產(chǎn)生方法300。方法隨后在步驟845中前進(jìn)到結(jié)束。
[0170] 圖9示出解碼方法900的第二實(shí)例的實(shí)例實(shí)施例。此方法可對應(yīng)于圖1的解碼算法 164,并且可W在步驟425中被稱作數(shù)字簽名驗(yàn)證方法400。替代地,解碼方法900可W用于在 本文中描述的數(shù)字簽名或模幕方法之外的各種其它情況。
[0171] 方法900在步驟905中開始并且前進(jìn)到步驟910,在步驟910中裝置確定用于對待解 碼的值b進(jìn)行編碼的因子集合S。舉例來說,在實(shí)施方法900W結(jié)合實(shí)例編碼方法800操作的 情況下,集合S(連同基數(shù)r一起)可被預(yù)配置W供使用。在步驟915中,裝置確定作為編碼值 的因子的因子SuC=S的集合,例如,通過試除法。在步驟920中,所述裝置隨后初始化索引i 和工作解碼值a。
[0172] 在步驟925中,裝置在全因子集合S內(nèi)確定Su中的第i個(gè)因子的索引m。舉例來說,對 于因子集合5={2,3,4,5,6,7,8,9,10巧0因子子集5。={4,5,10},當(dāng)1=0,1^ = 2時(shí)第一次執(zhí) 行步驟925,因?yàn)镾u[0] = 4且1(4)=2(即,4是0索引集合S中的第二因子)。在確定索引之后, 裝置相應(yīng)地修改工作值曰。具體來說,如圖所示,項(xiàng)(m mod r)ri被加到a的當(dāng)前值。
[0173] 在步驟930中修改工作值之后,在步驟935中,裝置使索引i遞增。隨后,在步驟940 中,裝置確定是否已經(jīng)考慮了Su中的所有因子。舉例來說,裝置可確定i是否等于(或在某種 程度上大于)Su中的因子的數(shù)目。如果不是,那么方法循環(huán)回到步驟925W考慮下一個(gè)因子。 否則的話,解碼完成并且在步驟945中方法900將解碼值a返回到請求者,例如,方法400等數(shù) 字簽名驗(yàn)證方法。方法隨后在步驟950中前進(jìn)到結(jié)束。
[0174] 根據(jù)第Ξ實(shí)例,編碼和解碼函數(shù)僅考慮規(guī)定權(quán)重W的因子的子集。換句話說,待編 碼的每個(gè)可能的值h與具有大小W的唯一集合T C S相關(guān)聯(lián)。因此,此第Ξ實(shí)例考慮來自Sk 的所有可能的W子集的集合U,即,具有來自Sk的W個(gè)元素的所有集合T。解碼和編碼函數(shù)對應(yīng) 地利用排名和不排名函數(shù)。如將理解,對于質(zhì)數(shù)-平方-幕集合,排名函數(shù)取:U 一忍皆茂給定 的W子集將返回該子集在集合中的排名,a = R(T)。逆函數(shù),即不排名函數(shù)及'1:置/2?一□, 在排名a處返回W子集,T = ri(a)。實(shí)際上任何排名和不排名函數(shù)可W結(jié)合此第Ξ實(shí)例使用, 例如在W下各項(xiàng)中所描述的那些函數(shù)巧Arndt,用于程序員的算法-構(gòu)想、算法和源代碼 (Algorithms for programmers-ideas , algorithms and source code)? 2004; 民.1.1^乂63古、六.5}131111巧化.六(116111311,用于獲得數(shù)字簽名和公共密匙加密系統(tǒng)的方法(八 method for obtaining digital signatures and public-key cryptosystems),ACM 21 通訊(1978),120 到 126 頁;Gordon Royle,組合計(jì)數(shù):理論和實(shí)踐(Combinatorial enumerationjheoi'y and practice) ,2004; 1^及〇61'1';!_〇1^ Stolee,組合和排列的排名和不 封^名(民anking and unranking of combinations and permutations),可在http :// comput曰tion曰Icombin曰torics.wordpress.com/2012/09/lO/r曰nking-曰nd-u nranking- of-combinat ions-and-permutat ions/獲得,2012年9月訪問的;其全部掲示內(nèi)容在此出于 各種目的W引用的方式并入本文中。
[0175]根據(jù)第Ξ實(shí)例,通過選擇最大因子值B和設(shè)置參數(shù)K(當(dāng)因子集合S是上文所述的質(zhì) 數(shù)-平方-幕因子時(shí))和W來對系統(tǒng)進(jìn)行初始化,使得
[0183] 解碼函數(shù)可W被定義為
[0184] 解碼(V) =R( {uo, . . .,Uw-i})。
[0185] 此解碼可僅在V存在于編碼域V中的情況下是可能的,使得
[0186]
[0187]雖然編碼寬度η將至少部分取決于選定的排名和不排名函數(shù),但是最大編碼寬度 可確定為
[018 引
[0189] 使得參數(shù)Κ和W滿足在選擇運(yùn)些參數(shù)時(shí)將滿足的上述約束。舉例來說,對于1024位 模數(shù),表2示出了針對128或256的編碼寬度W的參數(shù)Κ和W的實(shí)例選擇,旨在使查找表L中項(xiàng)k 的數(shù)目降到最小。對于運(yùn)些寬度,大小的增益與第二實(shí)例相比大致是2的因子。
[0190]
[0191] 在第Ξ實(shí)例的各種替代實(shí)施例中,所述方法可通過W下操作來改變:考慮針對滿 足選擇約束的所有可能的對的參數(shù)化j,Wj)的所有可能的排名函數(shù)化U],w山,并且將每個(gè)排 名函數(shù)用于單獨(dú)的排名區(qū)間。第一排名函數(shù)用于區(qū)間
[0197] 針對1024位模數(shù)N,此方法可提供具有僅k-48的128位編碼寬度和具有僅k = 238的 256位編碼寬度。
[0198] 圖10示出編碼方法1000的第Ξ實(shí)例的實(shí)例實(shí)施例。此方法可對應(yīng)于圖1的編碼算 法164并且可W在步驟315中被稱作數(shù)字簽名產(chǎn)生方法300。替代地,編碼方法1000可W用于 在本文中描述的數(shù)字簽名或模幕方法之外的各種其它情況。
[0199] 方法1000在步驟1005中開始并且前進(jìn)到步驟1010,在步驟1010中裝置確定將用于 對值h進(jìn)行編碼的因子集合T。具體來說,裝置將不排名函數(shù)應(yīng)用到值h,W檢索集合T。在一 些實(shí)施例中,例如如上文所述在多個(gè)不排名函數(shù)被視作具有參數(shù)K和W的不同組合的情況下 的那些實(shí)施例中,此步驟還可包含針對所述值h選擇適當(dāng)?shù)牟慌琶瘮?shù)。
[0200] 在步驟1015中,所述裝置隨后初始化索引i和工作編碼值b。在步驟1020中,裝置將 來自T的因子并入到工作編碼值中,方法是用T的第i個(gè)元素乘W當(dāng)前值b。在步驟1025中,裝 置隨后使索引i遞增。
[0201] 隨后,裝置確定是否已經(jīng)考慮T中的所有因子。舉例來說,裝置可確定i是否等于 (或在某種程度上大于)T中的元素的數(shù)目。如果不是,那么方法1000循環(huán)回到步驟1020W并 入下一個(gè)因子。否則的話,方法1000前進(jìn)W在步驟1035中將編碼值b返回到請求方法,例如, 數(shù)字簽名產(chǎn)生方法300。方法隨后在步驟1040中前進(jìn)到結(jié)束。
[0202] 圖11示出解碼方法1100的第Ξ實(shí)例的實(shí)例實(shí)施例。此方法可對應(yīng)于圖1的解碼算 法164并且可W在步驟425中被稱作數(shù)字簽名驗(yàn)證方法400。替代地,解碼方法1100可W用于 在本文中描述的數(shù)字簽名或模幕方法之外的各種其它情況。
[0203] 方法在步驟1105中開始并且前進(jìn)到步驟1110,在步驟1110中裝置確定用于對待解 碼的值b進(jìn)行編碼的因子集合S。舉例來說,在實(shí)施方法1100W結(jié)合實(shí)例編碼方法1000操作 的情況下,集合S(連同排名函數(shù)一起)可被預(yù)配置W供使用。隨后,在步驟1115中,裝置從S 中識別作為編碼值b的因子的W個(gè)元素(即,W子集T)。舉例來說,裝置可使用試除法作出此確 定。
[0204] 在確定集合T之后,裝置執(zhí)行排名函數(shù)W識別集合T在集合S內(nèi)的排名a。在多個(gè)排 名/不排名函數(shù)對可W取決于原始值使用并且與不同參數(shù)K和W相關(guān)聯(lián)的替代實(shí)施例中,此 步驟可W包含選擇適當(dāng)?shù)呐琶瘮?shù)。舉例來說,編碼裝置可將適當(dāng)排名函數(shù)的識別符轉(zhuǎn)發(fā) 到解碼裝置W基于最初選擇的不排名函數(shù)而使用。在一些此類實(shí)施例中,此信息也可W影 響步驟1110和1115,因?yàn)椴煌档腒可導(dǎo)致使用不同集合S而不同值的W可導(dǎo)致識別不同長 度的集合T。在其它此類實(shí)施例中,裝置可基于S中的作為b的因子的因子的數(shù)目推斷所述 值,逐漸增大S的大小直至所有因子被定位(因此產(chǎn)生Κ和w的值)。
[0205] 如上文所指出,由排名函數(shù)所返回的排名a也是解碼值。因此,在應(yīng)用排名函數(shù)之 后,解碼完成并且在步驟1125中方法1100將解碼值a返回到請求者,例如,方法400等數(shù)字簽 名驗(yàn)證方法。在步驟1130中方法隨后前進(jìn)到結(jié)束。
[0206] 根據(jù)上述內(nèi)容,各種實(shí)施例實(shí)現(xiàn)編碼和模幕運(yùn)算(例如,W產(chǎn)生數(shù)字簽名)而不獲 取秘密指數(shù)d。舉例來說,通過提供包含待取模幕的值的因子的模幕的預(yù)先計(jì)算的查找表, 白箱實(shí)施方案仍然可計(jì)算模幕而不獲取秘密指數(shù)d。另外,本文中描述的各種編碼和解碼算 法對(及其變化)提供允許例如計(jì)算較小查找表的其它改進(jìn)。鑒于上述內(nèi)容各種另外的益處 將是顯而易見的。
[0207] 從上述描述中應(yīng)該顯而易見的是,本發(fā)明的各種實(shí)施例可W在硬件中實(shí)施。此外, 各種實(shí)施例可W實(shí)施為存儲在非暫時(shí)性機(jī)器可讀存儲媒體(例如,易失性存儲器或非易失 性存儲器)上的指令,所述指令可W由至少一個(gè)處理器讀取和執(zhí)行W執(zhí)行本文中詳細(xì)地描 述的操作。機(jī)器可讀存儲媒體可W包含用于W機(jī)器可讀形式存儲信息的任何機(jī)構(gòu),例如,個(gè) 人計(jì)算機(jī)或膝上型計(jì)算機(jī)、服務(wù)器或其它計(jì)算裝置。因此,非暫時(shí)性機(jī)器可讀存儲媒體不包 括暫時(shí)信號,但是可W包含易失性存儲器和非易失性存儲器,包含但不限于只讀存儲器 (ROM)、隨機(jī)存取存儲器(RAM)、磁盤存儲媒體、光學(xué)存儲媒體、快閃存儲器裝置和類似存儲 媒體。
[0208] 本領(lǐng)域的技術(shù)人員應(yīng)了解,本文中的任何框圖表示體現(xiàn)本發(fā)明的原理的說明性電 路的概念視圖。類似地,應(yīng)了解,任何流程圖表、流程圖、狀態(tài)遷移圖、偽碼等等表示各種過 程,所述過程可基本上呈現(xiàn)在機(jī)器可讀媒體中并且因此由計(jì)算機(jī)或處理器執(zhí)行,無論此類 計(jì)算機(jī)或處理器是否明確地示出。
[0209] 雖然已經(jīng)特定參考各種實(shí)施例的某些方面詳細(xì)地描述了各種實(shí)施例,但是應(yīng)理 解,本發(fā)明可容納其它實(shí)施例并且其細(xì)節(jié)能夠在各種顯而易見的方面中進(jìn)行修改。如本領(lǐng) 域的技術(shù)人員顯而易見的,可W實(shí)現(xiàn)變化和修改同時(shí)保持在本發(fā)明的精神和范圍內(nèi)。因此, 上述掲示內(nèi)容、描述和圖式僅出于說明性目的并且并不W任何方式限制本發(fā)明,本發(fā)明僅 由權(quán)利要求書限定。
【主權(quán)項(xiàng)】
1. 一種用于對值h進(jìn)行編碼的方法,其特征在于,所述方法包括: 確定待用于對所述值h進(jìn)行編碼的因子集合S,其中所述因子集合包含與所述值h中的 相應(yīng)的數(shù)字位置相關(guān)聯(lián)的多個(gè)子集; 從所述因子集合S中選擇多個(gè)因子,其包括: 從與數(shù)字位置相關(guān)聯(lián)的所述多個(gè)子集中選擇子集,以及 基于所述值h的在與所述選定子集相關(guān)聯(lián)的所述數(shù)字位置處的數(shù)字值而從所述選定子 集中選擇因子;以及 計(jì)算所述多個(gè)因子的乘積以產(chǎn)生編碼值。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括: 將所述值h轉(zhuǎn)換成r進(jìn)制表示, 其中所述多個(gè)子集具有等于所述基數(shù)r的相應(yīng)的長度,并且所述數(shù)字位置對應(yīng)于所述 值h的r進(jìn)制數(shù)字。3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述因子集合S包括質(zhì)數(shù)冪的集合,所述質(zhì) 數(shù)冪的集合包含至少一個(gè)非質(zhì)數(shù)。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于: 所述因子集合S是有序集合,由此所述因子集合S內(nèi)的所述因子對應(yīng)地與索引相關(guān)聯(lián); 從與數(shù)字位置相關(guān)聯(lián)的所述多個(gè)子集中選擇子集包括:用對應(yīng)于所述數(shù)字位置的第一 索引i乘以所述值h的基數(shù)r以獲得第二索引j;以及 基于所述值h的在與所述選定子集相關(guān)聯(lián)的所述數(shù)字位置處的所述數(shù)字值從所述選定 子集中選擇因子包括: 將位于對應(yīng)于所述第一索引i的所述數(shù)字位置處的所述值h的所述數(shù)字加到所述第二 索引j,以及 在所述因子集合S內(nèi)檢索對應(yīng)于所述第二索引j的因子。5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括: 計(jì)算所述值h作為待數(shù)字簽名的消息m的摘要; 計(jì)算簽名s作為所述編碼值的模冪;以及 將所述消息m和所述簽名s發(fā)射到另一裝置。6. 根據(jù)權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括: 執(zhí)行所述編碼值的模冪運(yùn)算,其包括: 從先前存儲的查找表中檢索多個(gè)項(xiàng),以及 計(jì)算所述多個(gè)項(xiàng)的乘積。7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,進(jìn)一步包括接收和存儲來自網(wǎng)絡(luò)服務(wù)器的 所述查找表。8. -種用于對值h進(jìn)行編碼的方法,其特征在于,所述方法包括: 確定待用于對所述值h進(jìn)行編碼的因子集合S和權(quán)重w; 從所述因子集合S中選擇w個(gè)因子的集合T以表示所述值h;以及 計(jì)算所述集合T的乘積以產(chǎn)生編碼值。9. 根據(jù)權(quán)利要求8所述的方法,其特征在于,從所述因子集合S中選擇w個(gè)因子的集合T 以表示所述值h包括: 將不排名函數(shù)應(yīng)用到所述值h以識別在所述因子集合S內(nèi)位于對應(yīng)于所述值h的排名處 的所述w子集作為所述選定集合T。10. 根據(jù)權(quán)利要求9所述的方法,其特征在于,應(yīng)用不排名函數(shù)包括:基于所述值h從多 個(gè)可能的不排名函數(shù)中選擇所述不排名函數(shù)。11. 根據(jù)權(quán)利要求8所述的方法,其特征在于,所述因子集合S包括質(zhì)數(shù)冪的集合。12. 根據(jù)權(quán)利要求8所述的方法,其特征在于,進(jìn)一步包括: 計(jì)算所述值h作為待數(shù)字簽名的消息m的摘要; 計(jì)算簽名s作為所述編碼值的模冪;以及 將所述消息m和所述簽名s發(fā)射到另一裝置。13. 根據(jù)權(quán)利要求8所述的方法,其特征在于,進(jìn)一步包括: 執(zhí)行所述編碼值的模冪運(yùn)算,其包括: 從先前存儲的查找表中檢索多個(gè)項(xiàng);以及 計(jì)算所述多個(gè)項(xiàng)的乘積。14. 一種用于產(chǎn)生用于執(zhí)行模冪運(yùn)算的查找表的方法,其特征在于,所述方法包括: 確定與編碼算法相關(guān)聯(lián)的因子集合S; 確定用于產(chǎn)生查找表的所述因子集合S的基礎(chǔ)因子集合f ; 基于所述基礎(chǔ)因子集合f的相應(yīng)的因子、秘密指數(shù)d和加密密鑰模數(shù)N計(jì)算多個(gè)模冪; 在查找表中存儲所述多個(gè)模冪;以及 將所述查找表發(fā)射到至少一個(gè)用戶裝置。15. 根據(jù)權(quán)利要求14所述的方法,其特征在于: 所述因子集合S包括質(zhì)數(shù)冪的集合,以及 所述基礎(chǔ)因子集合S'包括質(zhì)數(shù)的集合,集合S的所述質(zhì)數(shù)冪由所述質(zhì)數(shù)的集合構(gòu)造。16. 根據(jù)權(quán)利要求14所述的方法,其特征在于,進(jìn)一步包括參與數(shù)字簽名方案,包括: 從所述至少一個(gè)用戶裝置接收消息m和簽名s; 使用公共指數(shù)e和所述加密密鑰模數(shù)N來計(jì)算所述簽名s的模冪以產(chǎn)生第一整數(shù)b; 對所述第一整數(shù)b進(jìn)行解碼以產(chǎn)生第二整數(shù)a; 計(jì)算所述消息m的摘要h;以及 通過比較所述摘要h與所述第二整數(shù)a來驗(yàn)證所述消息m。17. 根據(jù)權(quán)利要求16所述的方法,其特征在于,對所述第一整數(shù)b進(jìn)行解碼以產(chǎn)生第二 整數(shù)包括: 識別用于對所述第一整數(shù)b進(jìn)行編碼的因子集合S; 從所述因子集合S中識別包含于所述第一整數(shù)b中的多個(gè)因子; 識別對應(yīng)于所述多個(gè)因子中的對應(yīng)因子的多個(gè)索引; 從所述多個(gè)索引得到多個(gè)項(xiàng);以及 計(jì)算所述多個(gè)項(xiàng)的總和以產(chǎn)生所述第二整數(shù)a。18. 根據(jù)權(quán)利要求17所述的方法,其特征在于,從所述多個(gè)索引得到多個(gè)項(xiàng)包括: 識別所述多個(gè)索引的多個(gè)序列識別符,借此當(dāng)對所述多個(gè)索引進(jìn)行排序時(shí),序列識別 符記錄所述多個(gè)索引內(nèi)的對應(yīng)的索引的位置; 基于所述多個(gè)索引和基數(shù)r來計(jì)算多個(gè)留數(shù); 基于將所述基數(shù)r升高到與所述多個(gè)序列識別符相對應(yīng)的冪來計(jì)算多個(gè)冪;以及 通過計(jì)算所述多個(gè)留數(shù)對應(yīng)地與所述多個(gè)冪的乘積來計(jì)算所述多個(gè)項(xiàng)。19. 根據(jù)權(quán)利要求16所述的方法,其特征在于,對所述第一整數(shù)b進(jìn)行解碼以產(chǎn)生第二 整數(shù)包括: 識別用于對所述第一整數(shù)b進(jìn)行編碼的因子集合S和權(quán)重w; 從所述因子集合S中識別包含于所述第一整數(shù)b中的多個(gè)因子T; 對多個(gè)因子T應(yīng)用排名函數(shù)以將所述多個(gè)因子T在所述因子集合S內(nèi)的排名識別為所述 第二整數(shù)a。20. -種用于產(chǎn)生用于執(zhí)行模冪運(yùn)算的查找表的裝置,其特征在于,所述裝置包含:網(wǎng) 絡(luò)接口;存儲器;以及與網(wǎng)絡(luò)接口和存儲器通信的處理器,所述處理器被配置成: 確定與編碼算法相關(guān)聯(lián)的因子集合S; 確定因子集合S的基礎(chǔ)因子集合f以用于產(chǎn)生查找表; 基于基礎(chǔ)因子集合S'的對應(yīng)的因子、秘密指數(shù)d以及加密密鑰模數(shù)N來計(jì)算多個(gè)模冪; 將多個(gè)模冪存儲在查找表中;以及 經(jīng)由網(wǎng)絡(luò)接口將查找表發(fā)射到至少一個(gè)用戶裝置。21. -種用于對值h進(jìn)行編碼的裝置,其特征在于,所述裝置包含:存儲器;以及與存儲 器通信的處理器,所述處理器被配置成: 確定將用于對值h進(jìn)行編碼的因子集合S,其中所述因子集合包含與值h中對應(yīng)的數(shù)字 位置相關(guān)聯(lián)的多個(gè)子集; 從因子集合S選擇多個(gè)因子,包括: 從與數(shù)字位置相關(guān)聯(lián)的多個(gè)子集選擇子集,以及 基于值h中在與選定子集相關(guān)聯(lián)的數(shù)字位置處的數(shù)字值而從選定子集選擇因子;以及 計(jì)算多個(gè)因子的乘積以產(chǎn)生編碼值。22. -種用于對值h進(jìn)行編碼的裝置,其特征在于,所述裝置包含:存儲器;以及與存儲 器通信的處理器,所述處理器被配置成: 確定將用于對值h進(jìn)行編碼的因子集合S和權(quán)重w; 從因子集合S中選擇w個(gè)因子的集合T以表示值h;以及 計(jì)算集合T的乘積以產(chǎn)生編碼值。23. -種系統(tǒng),其特征在于,包括: 服務(wù)器,其包括根據(jù)權(quán)利要求20所述的裝置;以及 包括以下各項(xiàng)中的至少一個(gè)的至少一個(gè)用戶裝置: 根據(jù)權(quán)利要求21所述的裝置,以及 根據(jù)權(quán)利要求22所述的裝置。
【文檔編號】H04L9/32GK106059770SQ201610213566
【公開日】2016年10月26日
【申請日】2016年4月7日 公開號201610213566.1, CN 106059770 A, CN 106059770A, CN 201610213566, CN-A-106059770, CN106059770 A, CN106059770A, CN201610213566, CN201610213566.1
【發(fā)明人】麥克爾·麥克·派德里克·皮德斯, 喬普·威廉·波斯
【申請人】恩智浦有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
平湖市| 肇东市| 东兴市| 曲松县| 靖宇县| 静乐县| 海安县| 蒙城县| 芜湖县| 清丰县| 绩溪县| 新龙县| 广宁县| 渑池县| 平陆县| 乳源| 同江市| 阿瓦提县| 广汉市| 柯坪县| 侯马市| 锡林浩特市| 霍林郭勒市| 司法| 阿拉善盟| 手游| 崇阳县| 武宁县| 勃利县| 连州市| 郑州市| 清苑县| 同仁县| 祁门县| 资阳市| 白玉县| 安吉县| 麻江县| 紫金县| 娱乐| 普兰店市|