新四季網

用於加密操作的乘法掩碼的製作方法

2023-06-10 01:47:56


附圖說明

從下文給出的具體實施方式和本公開的各種實現方式的附圖會更全面地理解本公開。

圖1圖示了根據一些實施例的使用用於加密操作的乘法掩碼部件的示例設備。

圖2是按照本公開的一些實施例的執行用於加密操作的乘法掩碼的示例方法的流程圖。

圖3是根據一些實施例的提供用於加密操作的乘法掩碼的乘法掩碼部件的框圖。

圖4是根據一些實施例的執行與加密操作相關聯的輸入的乘法掩碼的示例方法的流程圖。

圖5是根據一些實施例的執行輸入的乘法掩碼以允許與加密操作相關聯的逐位操作的示例方法的流程圖。

圖6是根據一些實施例的使用具有乘法掩碼的輸入執行加密操作中的邏輯xor操作的示例方法的流程圖。

圖7是根據一些實施例的使用具有乘法掩碼的輸入執行加密操作中的邏輯and操作的示例方法的流程圖。

圖8圖示了其中本公開的一些實施例可以操作的計算機系統的實施例的框圖。

具體實施方式

本公開的各方面涉及用於加密操作的乘法掩碼。集成電路可以執行可能導致集成電路對側信道攻擊的易感性的加密操作,其中,集成電路的攻擊者可以在執行加密操作時獲得信息。側信道攻擊的示例包括但不限於差分功率分析(dpa),其中,尋求獲得加密操作中使用的密鑰的攻擊者可以研究在執行加密操作時集成電路的功耗差異。攻擊者可能是未經授權的實體,其可以通過分析一段時間內的集成電路的功耗測量值來獲得加密操作的輸入。因而,當發送者經由加密操作通過編碼明文來向接收器傳送密文時,攻擊者可以通過觀察在執行加密操作來將明文編碼成密文時集成電路的功耗來取回用於將明文加密為密文的密鑰。例如,在集成電路執行加密操作時,攻擊者可以發現用於加密明文的密碼(例如,秘密或私有)密鑰。

掩碼可以用於使用隨機數據模糊或隱藏加密操作的輸入,然後加密操作可以用掩碼輸入來執行。當集成電路的攻擊者觀察到執行加密操作時的集成電路的功耗時,這種掩碼可以使得加密操作的中間狀態與隨機數據不可區分。例如,在加密操作將明文編碼成密文之前,明文可以使用隨機值進行異或(xor)操作。然而,明文和隨機值之間的xor操作可能導致一些dpa洩漏(例如,攻擊者從可觀察到的功耗差異中標識信息),使得攻擊者仍然可以獲得在加密操作中使用的秘密密鑰。

乘法掩碼可以應用於加密操作的明文輸入。例如,加密操作的明文輸入可以乘以隨機值。然而,執行使用乘法掩碼的加密操作的集成電路仍然可能易於受到觀察加密操作的中間狀態值為零的攻擊者的dpa攻擊的影響。因此,如果明文輸入乘以隨機值零,則所得到的零值可能導致dpa洩漏。

因此,可以在集成電路中實現避免與零數據值相乘的加密操作的乘法掩碼,以防止允許攻擊者取回對加密操作的輸入的dpa洩漏。在一些實施例中,這種乘法掩碼可以將明文輸入的位乘以基於以質數取模後的隨機數相乘的值的加密操作。使用模乘法提供了對加密操作的輸入的乘法掩碼,其可以防止為掩碼輸入生成零數據值,並且因此在它正在通過集成電路執行時,可以防止與加密操作相關聯的dpa洩漏。

圖1圖示了包括乘法掩碼部件的示例設備。一般而言,設備100可以包括集成電路,其與乘法掩碼部件111、存儲器112和各種設備部件113相關聯。集成電路的乘法掩碼部件111可以將掩碼應用於輸入(例如,明文),以在由設備部件113執行的加密操作中使用。

如圖1所示,設備100可以包括乘法掩碼部件111。在一些實施例中,乘法掩碼部件111可以將掩碼應用輸入或於輸入的各部分。例如,乘法掩碼部件111可以接收輸入(例如,從存儲器112),並且可以將輸入或輸入的位與以質數取模後的隨機數相乘的結果相乘。設備部件113隨後可以在加密操作中使用掩碼輸入。這種加密操作的示例包括但不限於:生成消息的籤名,其中,消息可以用於允許訪問設備100的特定功能性或允許設備100執行特定操作。因而,乘法掩碼部件111可以修改輸入以生成對設備部件113的掩碼輸入。此外,設備部件113的部件可以基於掩碼輸入來執行加密操作,以生成消息的籤名或可以用於確定是否可以允許與籤名相對應的消息的發送者訪問設備100(例如,各種設備部件113)的功能性的其他信息,或者是否可以允許設備100響應於消息而執行操作。

與設備相關聯的功能性或操作的示例包括但不限於訪問設備的某些硬體能力(例如,啟用或禁用設備100的某些硬體能力)、訪問設備的調試或診斷狀態、以及對與設備相關聯的存儲器的寫入、調整設備100的性能設置或其他值、加密密鑰以供設備100使用、修改設備100的存儲器112等等。

當來自發送者的消息伴隨著由加密操作生成的有效籤名時,可以允許消息的發送者訪問設備100的功能性或操作。這種加密操作的示例包括但不限於:生成與高級加密標準(aes)和數據加密標準(des)算法相關聯的籤名,其中,籤名在公共-私人密鑰密碼系統中使用。在一些實施例中,加密操作可以使用掩碼輸入來生成籤名。在一些實施例中,掩碼輸入可以對應於具有附加值(例如,為『1』的值)的輸入的一部分(例如,輸入的一半)與以質數取模後的隨機數相乘的結果相乘。在相同實施例或備選實施例中,隨機數可以是被除數,質數可以是模數操作的除數。

圖2是執行加密操作的乘法掩碼的示例方法200的流程圖。一般而言,方法200可以通過處理邏輯來執行,該處理邏輯可以包括硬體(例如,處理設備、電路、專用邏輯、可編程邏輯、微代碼、設備的硬體、集成電路等)、軟體(例如,在處理設備上運行或執行的指令)或其組合。在一些實施例中,方法200可以通過圖1的乘法掩碼部件111來執行。

如圖2所示,方法200可以從接收輸入的處理邏輯開始(框210)。例如,可以接收要被編碼為密文的明文。處理邏輯還可以通過將輸入的各部分乘以基於與以質數取模後的隨機數的相乘的值來生成掩碼輸入(框220)。例如,輸入可以乘以rmodp的結果,其中,r是隨機數,而p是質數。在一些實施例中,如關於圖4進一步所描述的,輸入(例如,明文)可以被劃分為前半部分和後半部分,並且可以將乘法掩碼應用於每個半部分。例如,已經接收到的輸入的半部分可以被加上一值『1』,並且結果可以乘以質數取模後的隨機數。在備選實施例中,乘法掩碼可以應用於結合圖5所描述的輸入的每個位。例如,每個位的表示可以已經改變並且每個位寫入單獨的計算機字,其中,該位然後乘以以質數取模後的隨機數(例如,這種表示的改變的一個示例是將位的值映射到正隨機數或與隨機數相同的絕對值的負隨機數)。儘管本文中描述了輸入的半部分,但是輸入可以被劃分為或分割為任何數目個部分。處理邏輯還可以基於掩碼輸入來執行加密操作(框230)。在一些實施例中,加密操作可以通過使用經修改的邏輯操作集合來執行。例如,掩碼輸入可以與要被編碼為密文的明文相對應。在一些實施例中,密文可以與籤名和/或秘密密鑰相對應。

圖3是提供加密操作的乘法掩碼的乘法掩碼部件300的框圖。一般而言,乘法掩碼部件300可以與圖1的乘法掩碼部件111相對應。乘法掩碼部件300可以通過處理邏輯來實現或者在處理邏輯中來實現,該處理邏輯可以包括硬體(例如,處理設備、電路、專用邏輯、可編程邏輯、微代碼、集成電路、設備的硬體等)、軟體(例如,在處理設備上運行或執行的指令)或其組合。在一些實施例中,乘法掩碼部件300可以包括輸入分割模塊310、隨機數生成器模塊320、加法操作模塊330、模數操作模塊340、乘法模塊350以及加密操作模塊360。在備選實施例中,子模塊中的一個或多個子模塊的功能性可以被組合或分割。

如圖3所示,乘法掩碼部件300可以包括輸入分割模塊310。在一些實施例中,輸入分割模塊310可以接收輸入並且可以將輸入劃分為部分。例如,輸入可以與明文相對應,並且輸入分割模塊310可以將明文輸入分割為或劃分為第一半部分和第二半部分。在一些實施例中,輸入可以與總共八個位相對應,並且輸入分割模塊310可以將八位輸入分割為或劃分為四位的第一半部分和四位的第二半部分。可替代地,如下面進一步詳細所描述的,輸入分割模塊310可以單獨地處理輸入的每個位。

隨機數生成器模塊320可以生成隨機數。在一些實施例中,由隨機數生成器模塊320生成的隨機數可以在應用到輸入或輸入的部分的乘法掩碼中使用。例如,所生成的隨機數可以用於掩碼輸入的半部分,或者可以用於掩碼輸入的每個位。在相同實施例或備選實施例中,隨機數生成器模塊320可以生成多個隨機數。例如,可以生成第一隨機數,以在第一模數操作中使用,其中,質數是除數,並且還可以生成第二隨機數以在第二模數操作中使用,其中,數是第二模數操作的除數,該數是質數的倍數。

加法操作模塊330可以對輸入或輸入的一部分執行加法操作。例如,加法操作模塊330可以將值『1』加到輸入的每個半部分。因此,輸入可以劃分為第一半部分和第二半部分,並且可以將值『1』加到第一半部分和第二半部分中的每個半部分。在一些實施例中,當輸入被分割為半部分(例如,與aes密碼算法相對應)時,可以應用這種加法操作,並且當輸入被分割為單獨位時(例如,與逐位des密碼算法相對應),不能應用這種加法操作。

模數操作模塊340可以執行模數操作(還被稱為模數約減),以在應用於輸入或輸入的一部分的乘法掩碼中使用。在一些實施例中,模數操作可以是算術操作,其可以找出一個數除以另一個數的餘數。例如,模數操作可以在將第一數除以第二數之後返回餘數。第一數a可以是模數操作中的被除數,第二數n可以是模數操作中的除數。這種關係可以被稱為模n(或縮寫為modn)。作為示例,因為17除以3的商為5並且餘數為2,所以與17mod3相對應的模數操作可以返回值2。此外,因為9除以3的商為3並且餘數為0,與9mod3相對應的模數操作可以返回值0。因此,當被除數是除數的倍數時,模數操作可以返回值0(例如,因為存在餘數為0),但是如果被除數不是除數的倍數,則模數操作可能返回非零值。此外,如果除數是質數(例如,除1以外沒有正除數的大於1的數),並且被除數值不為0,以及在1到質數之間的範圍之間,則因為質數本身不具有除值1之外的任何其他正除數,所以模數操作可能永遠不會返回值零。

乘法操作模塊350可以在輸入或輸入的一部分與模數操作的結果之間執行乘法操作。例如,如關於圖4進一步所描述的,由於模數操作,所以乘法操作模塊350可以將輸入的半部分與加上『1』後的值相乘,該模數操作基於隨機數和質數。

加密操作模塊360可以對掩碼輸入執行加密操作。例如,加密操作可以基於但不限於aes或des算法來將明文輸入加密為密文。

圖4是執行與加密操作相關聯的輸入的乘法掩碼的示例方法400的流程圖。一般而言,方法400可以通過處理邏輯執行,該處理邏輯可以包括硬體(例如,處理設備、電路、專用邏輯、可編程邏輯、微代碼、設備的硬體、集成電路等)、軟體(例如,在處理設備上運行或執行的指令)或其組合。在一些實施例中,方法400可以通過圖1的乘法掩碼部件111或圖3的乘法掩碼部件300來執行。

方法400可以提供不基於逐位操作(例如,基於aes的加密操作)的加密操作的乘法掩碼。方法400可以從接收輸入的處理邏輯開始(框410)。例如,可以接收對應於與設備的操作相關聯的籤名的明文輸入。處理邏輯還可以將輸入分割為第一半部分和第二半部分(框420)。例如,所接收的輸入可以是與aes加密操作相對應的八位數據。因此,處理邏輯可以將八位輸入劃分為兩個四位半部分(例如,四位的第一半部分和四位的第二半部分)。此外,處理邏輯可以將值『1』加到第一半部分和第二半部分中的每個半部分(框430)。處理邏輯可以基於以質數取模後的隨機數的結果來附加地計算每個半部分的操作(框440)。例如,模數操作的餘數可以乘以已經增加值『1』的每個半部分,其中,質數是除數,而隨機數是被除數。處理邏輯還可以計算第一半部分和第二半部分中的每個上的操作以生成第一半部分結果和第二半部分結果(框450)。這樣的第二操作可以產生值零,並且可以用於提供附加的功耗,而不會對第一所計算的操作的值產生影響。此外,處理邏輯可以組合第一半部分結果和第二半部分結果(框460)。

在一些實施例中,方法400可能需要諸如逐位xor操作之類的操作的計算。這樣的操作可以採用允許將計算機字映射到具有小位長度的一系列字(例如,將字節映射到兩個四位字)的預計算表的形式。還可以生成預計算表以將兩個四位字映射到表示兩個輸入值的xor的四位字。然後,其他預計算表可以用於將所得到的四位字映射到計算機字(例如,將兩個四位字映射到字節)。在一些實施例中,這些表的所有輸入值和輸出值可以用如本文中所描述的乘法掩碼技術來掩碼。

圖5是執行輸入的乘法掩碼以允許與加密操作相關聯的逐位操作的示例方法500的流程圖。一般而言,方法500可以通過處理邏輯執行,該處理邏輯可以包括硬體(例如,處理設備、電路、專用邏輯、可編程邏輯、微代碼、設備硬體、集成電路等)、軟體(例如,在處理設備上運行或執行的指令)或其組合。在一些實施例中,方法500可以通過圖1的乘法掩碼部件111或圖3的乘法掩碼300來執行。

當加密算法(例如,des)基於逐位操作時,可以使用方法500。方法500可以用於將位值從『0』或『1』變換到或掩碼到與正數和負數(例如,1和-1)相對應的值。從『0』到『1』值和從『1』到『-1』的變換可以允許使用逐位操作(例如,xor)以在加密操作中使用掩碼輸入數據。在一些實施例中,方法500可以基於以下等式來執行乘法掩碼:

xo=(r1modp)+r2·pmodp2

x1=(-r1modp)+r2·pmodp2

在一些實施例中,x0可以是指用於當該位值為『0』時為輸入位提供乘法掩碼的等式,並且xi可以是指用於當位值為『1』時為輸入位提供乘法掩碼的等式。此外,r1可以表示第一隨機數,r2可以表示第二隨機數,p可以表示質數,並且p2可以表示質數p的倍數。在一些實施例中,隨機數r1和/或-r1可以小於質數p的值(例如,值r1在1到p-1的範圍內)。此外,在一些實施例中,r1和-r1的絕對值相同。附加地,如先前關於圖4所描述的,r2與p的相乘可以產生與p2相同的值,或者可以產生p2的倍數,使得r2和p與p2的相乘之間的模數操作產生值為0。

如圖5所示,方法500可以開始於處理邏輯接收加密操作的輸入的位(框510)。例如,輸入的位可以是與要由密碼算法(例如,des)編碼為密文的輸入(例如,明文)相對應的多個位中的一個位。處理邏輯還可以確定所接收的位值是否為『0』(框520)。在520中測試的值可以被設置為『1』或者可以被隨機地選擇為『0』或『1』。例如,處理邏輯可以標識輸入的位值是為『0』還是為『1』。如果該位值為『0』,則處理邏輯可以計算以質數取模後的正隨機數的操作(框530)。此外,處理邏輯可以隨後將以質數的固定倍數取模後的質數的隨機倍數加到第一計算值(框540)。附加地,處理邏輯可以計算值分配給值為『0』的位(框550)。例如,可以將位的值從值『0』轉換或替換為計算結果。然而,如果處理邏輯確定該位值不是『0』,取而代之為『1』,則處理邏輯可以計算以質數取模後的負隨機數的操作(與正隨機數相比,如果位值為『0』)(框560)。類似地,處理邏輯可以隨後將以質數的固定倍數取模後的質數的隨機倍數加到計算(框570)。附加地,處理邏輯可以將該計算值分配給值為『1』值的位(框580)。例如,該位的值可以被從值『1』變換或替換為計算結果(例如,負值)。

如上文所描述的,可以將負值(例如,基於使用負隨機數的計算)分配給位值『1』並且正值(例如,基於使用正隨機數的計算)被分配給位值『0』。在備選實施例中,可以將負值分配給位值『0』,並且將正值分配給位值『1』。此外,處理邏輯可以在值『0』和『1』的第一變換與值『0』和『1』的第二變換之間隨機選擇。例如,在接收到輸入之後,處理邏輯可以在將負值分配給位值『1』並且將正值分配給位值『0』的第一變換和將負值分配給位值『0』並且將正值分配給位值『1』的第二變換之間隨機選擇。在一些實施例中,處理邏輯可以在每個輸入基礎上來在第一變換和第二變換之間進行選擇(例如,輸入的每個位可以與已經為輸入選擇的相同的第一變換或第二變換的使用相對應)。第一變換和第二變換之間的選擇可以是隨機的(例如,值為『0』的位可以被隨機選擇為負值或正值中的一個,並且值為『1』的位可以是未被選擇以變換值為『0』的位的負值或正值中的另一個。

圖6是使用具有乘法掩碼的輸入執行加密操作中的邏輯xor操作的示例方法600的流程圖。一般而言,方法600可以通過處理邏輯執行,該處理邏輯可以包括硬體(例如,處理設備、電路、專用邏輯、可編程邏輯、微代碼、設備的硬體、集成電路等)、軟體(例如,在處理設備上運行或執行的指令)或其組合。在一些實施例中,方法600可以通過圖1的乘法掩碼部件111或圖3的乘法掩碼部件300來執行。

方法600可以用於執行在使用具有乘法掩碼的輸入的加密操作期間使用的邏輯異或(xor)操作。例如,方法600可以用於執行如關於圖3的框230所描述的邏輯xor操作。如先前所描述的,這種加密操作的示例可以是aes、des或其他這樣的加密、解密、生成籤名或驗證籤名的操作。在一些實施例中,方法600可以用於執行與第一輸入位和第二輸入位之間的xor操作相對應的逐位操作。

方法600可以以接收已經被掩碼的第一輸入的處理邏輯開始(框610)。例如,可以接收已經被乘法掩碼的第一輸入位。處理邏輯還可以接收已經被掩碼的第二輸入(框620)。第二輸入可以是已經被乘法掩碼的第二輸入位。如結合圖5所描述的,第一輸入位和第二輸入位可以被乘法掩碼並且變換為正數和負。例如,可以經由掩碼將值為『0』的位變換為負值(例如,負掩碼值),並且可以將值為『1』的位變換為正值(例如,正掩碼值),其中,負掩碼值和正掩碼值具有相同的絕對數。處理邏輯還可以執行第一掩碼輸入與第二掩碼輸入之間的乘法操作(框630)。例如,在每個對應的輸入位已被變換或被掩碼之後(例如,從『0』到負掩碼值或從『1』到正掩碼值),可以在第一輸入位和第二輸入位之間執行乘法操作。處理邏輯可以進一步將乘法操作的結果乘以基於正掩碼值的值的倒數,以生成中間值(框640)。例如,如先前所描述的,位值為『1』的輸入可以被掩碼為正掩碼值。如此,乘法操作的結果可以乘以正掩碼值的倒數以生成中間值,其與值為『1』的輸入位所變換為的值相對應。處理邏輯還可以執行與以質數取模後的中間值相對應的操作(框650)。在一些實施例中,如結合圖5所描述的,質數可以與用於掩碼輸入位的質數相對應。

在一些實施例中,當值為『0』的輸入位被變換為負掩碼值並且值為『1』的輸入位被變換為正掩碼值時,方法600可以基於以下等式來執行邏輯xor操作:

xor的結果=xym-1modp

在一些實施例中,x可以與第一掩碼輸入位相對應,y可以與第二掩碼輸入位相對應,m可以與正掩碼值相對應,並且p可以與質數相對應。當執行邏輯xor操作時,還可以使用上述等式,其中,值為『0』的輸入位被變換為正掩碼值,並且值為『1』的輸入位被變換為負掩碼值。

圖7是使用具有乘法掩碼的輸入執行加密操作的邏輯and操作的示例方法700的流程圖。一般而言,方法700可以通過處理邏輯執行,該處理邏輯可以包括硬體(例如,處理設備、電路、專用邏輯、可編程邏輯、微代碼、設備的硬體、集成電路等)、軟體(例如,在處理設備上運行或執行的指令)或其組合。在一些實施例中,方法700可以通過圖1的乘法掩碼部件111或圖3的乘法掩碼部件300來執行。

方法700可以用於執行在使用具有乘法掩碼的輸入的加密操作期間使用的邏輯and操作。例如,方法700可以用於執行如關於圖2的框230所描述的邏輯and操作。如先前所描述的,這種加密操作的示例可以是aes、des或其他這樣的加密、解密、生成籤名或驗證籤名的操作。在一些實施例中,方法700可以用於執行與第一輸入位和第二輸入位之間的and操作相對應的逐位操作。

方法700可以從處理邏輯接收第一掩碼輸入或輸入位、以及第二掩碼輸入或輸入位(框710)開始。進一步地,處理邏輯可以將如關於圖6所描述的正掩碼值加到第一輸入和第二輸入中的每個輸入(框720)。此外,處理邏輯可以將正掩碼值和第一輸入的組合乘以正掩碼值和第二輸入的組合以生成中間值(框730)。此外,處理邏輯可以將中間值乘以正掩碼值的倒數並且乘以2的倒數(框740)。隨後,處理邏輯可以從結果中減去與以質數取模後的正掩碼值相對應的值(框750)。例如,在第一輸入和第二輸入的掩碼中使用的與以質數取模後的正掩碼值相對應的值可以從中間值乘以正掩碼值的倒數並且乘以2的倒數的結果中減去。

在一些實施例中,當值為『0』的輸入位被變換為負掩碼值並且值為『1』的輸入位被變換為正掩碼值時,方法700可以基於以下等式執行邏輯and操作:

and的結果=2-1m-1(x+m)(y+m)-mmodp

在一些實施例中,x可以與第一掩碼輸入位相對應,y可以與第二掩碼輸入位相對應,m可以與正掩碼值相對應,並且p可以與質數相對應。在備選實施例中,當執行邏輯and操作時,其中,值為『0』的輸入位被變換為正掩碼值並且值為『1』的輸入位被變換為負掩碼值,則下列等式可以用於執行邏輯and操作:

and的結果=2-1m-1(x-m)(y-m)+mmodp

如此,當執行邏輯and操作時,其中,值為『0』的輸入位被變換為正掩碼值並且值為『1』輸入位被變換為負掩碼值,第一輸入位和第二輸入位可以被減去正掩碼值的值,而不是如圖7中的框720所描述的那樣加上正掩碼值的值。

進一步地,當值為『0』的輸入位被變換為與1mod5相對應的正掩碼值時並且值為『1』的輸入位被變換為與-1mod5相對應的負掩碼值時,邏輯and操作和邏輯and操作的執行可以基於由以下操作表示的約減模255方程:

z←x+5r*

z←(zλ255)+(z/28)

在一些實施例中,z可以與約減模255的輸出相對應,x可以與第一輸入位相對應,並且r可以與16位隨機生成的值相對應。如此,約減模255方程可以包括第一步驟,其將與隨機生成的值相乘的掩碼值相關聯的質數加到輸入位以生成第一結果。此外,第一結果與對應於255的值進行xor操作,並且該結果加上除以2的8次冪的第一結果。約減模255可以用於執行如下的xor操作:

z←reductionmodulo255(yr,r*)

z←reductionmodulo255(xz,r*)

z←reductionmodulo255(xr',r*)

z←reductionmodulo255(z,r*)

在一些實施例中,redumodulo255可以與如之前使用各種第一輸入和第二輸入描述的約減模255方程的調用或執行相對應,該第二輸入是隨機16位數。此外,x可以與第一輸入位相對應,y可以與第二輸入位相對應,z可以與輸出相對應,r可以與1到254之間的隨機數相對應,r'可以與(mr)-1(mod5)相對應,並且r可以與16位隨機數相對應。如此,xor操作可以通過迭代地執行縮減模255四次來執行。

此外,約減模255可以用於執行如下的not操作:

z←4((xλ63)+r)+((x/26)+r)

z←reductionmodulo255(z,r*)

附加地,可以執行如下的and操作:

z←reductionmodulo255(r((x+r")+4(m+r"),r*)

z←reductionmodulo255(z,r*)

z←reductionmodulo255(z((y+r'")+4(m+r'")),r*)

z←reductionmodulo255(r'z,r*)

z←reductionmodulo255(2(z+r")+(m+3r"),r*)

在一些實施例中,z的初始值可以與值『0』相對應,r可以是1至254之間的隨機值,r'與值(mr)-1(mod5)相對應,r*是1到65,535(即,216-1)之間的16位隨機數,並且其中,r"和r'"中的每個是1和254之間不同的8位隨機數。因此,and操作可以通過迭代計算約減模255等式五次來執行。

圖8圖示了在其內可以執行用於使機器執行本文中所討論的方法中的任一種或多種方法的指令集合的計算機系統800的示例機器。在備選實現方式中,機器可以連接(例如,聯網)到lan、內聯網、外聯網和/或網際網路中的其他機器。該機器可以作為客戶端-伺服器網絡環境中的伺服器或客戶端機器來操作,作為點對等(或分布式)網絡環境中的對等機器來操作,或作為雲計算基礎設施或環境中的伺服器或客戶端機器來操作。

機器可以是個人計算機(pc)、平板電腦、機頂盒(stb)、個人數字助理(pda)、蜂窩電話、網絡設備、伺服器、網絡路由器、開關或橋接器、或能夠執行指定該機器要採取的動作的指令集合(順序或其他方式)的任何機器。進一步地,當說明單個機器時,術語「機器」還應當被視為包括單獨或共同執行一指令集合(或多個指令集合)以執行本文中所討論的方法中的任一種或多種方法的機器的任何集合。

示例計算機系統800包括處理設備802、主存儲器804(例如,只讀存儲器(rom))、閃速存儲器、諸如同步dram(sdram)或rambusdram(rdram)之類的動態隨機存取存儲器(dram)等等)、靜態存儲器806(例如,閃速存儲器、靜態隨機存取存儲器(sram)等等)、以及經由總線830相互通信的數據存儲設備818。

處理設備802表示一個或多個通用處理設備,諸如微處理器、中央處理單元等。更具體地,處理設備可以是複雜指令集計算(cisc)微處理器、精簡指令集計算(risc)微處理器、非常長指令字(vijw)微處理器、或實現其他指令集的處理器、或實現指令集的組合的處理器。處理設備802還可以是一個或多個專用處理設備,諸如專用集成電路(asic)、現場可編程門陣列(fpga)、數位訊號處理器(dsp)、網絡處理器等。處理設備802被配置成執行用於執行本文中所討論的操作和步驟的指令826。

計算機系統800還可以包括網絡接口設備808,以通過網絡820進行通信。計算機系統800還可以包括視頻顯示單元810(例如,液晶顯示器(lcd)或陰極射線管(crt))、字母數字輸入設備812(例如,鍵盤)、光標控制設備814(例如,滑鼠)、圖形處理單元822、信號發生設備816(例如,揚聲器)、圖形處理單元822、視頻處理單元828和音頻處理單元832。

數據存儲設備818可以包括機器可讀存儲介質824(也被稱為計算機可讀介質),在該機器可讀存儲介質上存儲了一個或多個指令或軟體826集合,其實現了本文中所描述的方法或功能中的任一種或多種方法或功能。指令826還可以完全地或至少部分地駐留在主存儲器804內和/或處理設備802內,在其由計算機系統800執行期間,主存儲器804和處理設備802也構成機器可讀存儲介質。

在一個實現方式中,指令826包括實現與乘法掩碼部件(例如,圖1的乘法掩碼部件111或圖3的乘法掩碼部件300)相對應的功能性的指令。雖然機器可讀存儲介質824在示例實現方式中被示為單個介質,但是術語「機器可讀存儲介質」應當被認為包括單個介質或多個介質(例如,集中式資料庫或分布式資料庫,以及/或相關聯的高速緩存和伺服器),其存儲一個或多個指令集合。術語「機器可讀存儲介質」還應被視為包括能夠存儲或編碼指令集合以供機器執行並且使機器執行本公開的方法中的任一種或多種方法的任何介質。因此,術語「機器可讀存儲介質」應被認為包括但不限於固態存儲器、光學介質和磁性介質。

依據對計算機存儲器內的數據位的操作的算法和符號表示來呈現前述詳細描述的一些部分。這些算法描述和表示是由數據處理領域的技術人員最有效地將其工作的實質傳達給本領域技術人員的方式。算法在這裡並且通常被認為是導致期望結果的自我一致的操作序列。這些操作是需要物理量的物理操縱的操作。通常,儘管不一定,但是這些數量採用能夠被存儲、組合、比較和以其他方式操縱的電信號或磁信號的形式。原則上,由於通常使用的原因,已經證明稱這些信號為位、數值、元素、符號、字符、術語、數字等是方便的。

然而,應該記住,所有這些和類似的術語都應該與適當的物理量相關聯,並且僅僅是適用於這些量的方便的標籤。除非另有明確說明,否則從上述討論中可以明顯看出,應當領會,在整個說明書中,例如諸如「標識」或「確定」或「執行」或「進行」或「收集」或「創建」或「發送」等之類的術語是指計算機系統或類似的電子計算設備的動作和過程,其操縱並且將表示為計算機系統的寄存器和存儲器內的物理(電子)量的數據變換為類似地表示為計算機系統的存儲器或寄存器或其他這樣的信息存儲設備內的物理量的其他數據。

本公開還涉及一種用於執行本文中的操作的裝置。該裝置可以為預期目的而特別構造,或者其可以包括由存儲在計算機中的電腦程式選擇性地激活或重新配置的通用計算機。這樣的電腦程式可以存儲在計算機可讀存儲介質中,諸如但不限於包括軟盤、光碟、cd-rom和磁光碟在內的任何類型的盤、只讀存儲器(rom)、隨機存取存儲器(ram)、eprom、eeprom、磁卡或光卡、或適合於存儲電子指令的任何類型的介質,每個均耦合至計算機系統總線。

本文中所呈現的算法和顯示器並非固有地與任何特定計算機或其他裝置有關。各種通用系統可以按照本文中的教導與程序一起使用,或者可以證明構造更專用裝置來執行該方法是方便的。如在下文的描述中所闡述的,多種這些系統的結構將出現。另外,本公開不參考任何特定的程式語言來描述。應當領會,多種程式語言可以用於實現本文中所描述的本公開的教導。

本公開可以被提供作為電腦程式產品或軟體,其可以包括其上存儲有指令的機器可讀介質,該機器可讀介質可以用於對計算機系統(或其他電子設備)進行編程以執行根據本公開的過程。機器可讀介質包括用於存儲可由機器(例如,計算機)讀取的形式的信息的任何機構。例如,機器可讀(例如,計算機可讀)介質包括機器(例如,計算機)可讀存儲介質,諸如只讀存儲器(「rom」)、隨機存取存儲器(「ram」)、磁碟存儲介質、光存儲介質、閃速存儲器設備等。

在前面的說明書中,已經參照本發明的具體示例實現方式來描述本公開的實現方式。顯而易見的是,在不背離如所附權利要求中闡述的本公開的實現方式的更廣泛的精神和範圍的情況下,可以對其進行各種修改。因而,說明書和附圖被認為是說明性的而非限制性的。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀