TWI783804B - 基於線性整數秘密共享的共享單元生成系統及其方法 - Google Patents

基於線性整數秘密共享的共享單元生成系統及其方法 Download PDF

Info

Publication number
TWI783804B
TWI783804B TW110144887A TW110144887A TWI783804B TW I783804 B TWI783804 B TW I783804B TW 110144887 A TW110144887 A TW 110144887A TW 110144887 A TW110144887 A TW 110144887A TW I783804 B TWI783804 B TW I783804B
Authority
TW
Taiwan
Prior art keywords
matrix
value
user
host
column
Prior art date
Application number
TW110144887A
Other languages
English (en)
Other versions
TW202324965A (zh
Inventor
莊治耘
林祐德
Original Assignee
英屬開曼群島商現代財富控股有限公司
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 英屬開曼群島商現代財富控股有限公司 filed Critical 英屬開曼群島商現代財富控股有限公司
Priority to TW110144887A priority Critical patent/TWI783804B/zh
Application granted granted Critical
Publication of TWI783804B publication Critical patent/TWI783804B/zh
Publication of TW202324965A publication Critical patent/TW202324965A/zh

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一種基於線性整數秘密共享的共享單元生成系統及其方法,透過N個使用者端主機執行邏輯運算式以建立相應的第一矩陣,並且隨機選出代表密文的值及亂數選擇數個值以一併生成第二矩陣,再將第一矩陣與第二矩陣相乘以生成第三矩陣,當存在分派端主機時,直接將第三矩陣各列的值分別傳送至相應的使用者端主機以作為其自身的共享單元,當不存在分派端主機時,第i個使用者端主機接收其餘使用者端主機分別傳送的第i列的值以與自身的第i列的值加總,以便作為第i個使用者端主機自身的共享單元,達到提高秘密共享機制的靈活性之技術功效。

Description

基於線性整數秘密共享的共享單元生成系統及其方法
本發明涉及一種共享單元生成系統及其方法,特別是基於線性整數秘密共享的共享單元生成系統及其方法。
近年來,隨著區塊鏈的普及與蓬勃發展,各種應用在區塊鏈的技術便如雨後春筍般湧現,其中又以多人共同管理虛擬交易資產的發展最受矚目。
一般而言,傳統的虛擬交易資產僅由一位使用者持有及管理,其實現方式可透過一組金鑰對(Key-pair),即:公鑰及私鑰,用以達成交易的簽章及加密等流程。然而,倘若使用者遺失私鑰將導致虛擬交易資產被竊取。因此,為了強化資產及交易安全性,便有廠商進一步發展可由多位使用者共同管理虛擬交易資產的方式,例如:多重簽名的區塊鏈錢包。此一方式是通過多個不同的金鑰產生相應數量的簽名,並且在擁有一定數量的簽名時才會使交易成功,如此一來,即使其中一個私鑰被竊、遺失等等,也可以確保虛擬交易資產的安全,甚至可輕易應用在多數決的情境。然而,此方式在遺失的私鑰數量滿足門檻時便不再安全了。因此,仍然有虛擬交易資產的安全性不足的問題。
有鑑於此,便有廠商提出共享單元(Share)的技術手段,例如:基於薩莫爾祕密共享(Shamir Secret Sharing,SSS)產生公鑰及相應各使用者的共享單元,藉由這些共享單元直接計算出的結果將與使用私鑰計算出的結果相同,所以在產生的過程中不會也不需要將私鑰組出,換句話說,由始至終不會在記憶體或儲存媒體存在完整的私鑰。因此,不會有私鑰被竊、遺失等問題。然而,目前的方式均是共享單元達到一定門檻才能通過資產轉移,無法任意指定需要哪些人同意且達到一定人數門檻才能通過資產轉移,故具有秘密共享機制的靈活性不足的問題。
綜上所述,可知先前技術中長期以來一直存在秘密共享機制的靈活性不足的問題,因此實有必要提出改進的技術手段,來解決此一問題。
本發明揭露一種基於線性整數秘密共享的共享單元生成系統及其方法。
首先,本發明揭露一種基於線性整數秘密共享的共享單元生成系統,其包含:N個使用者端主機用以共同執行邏輯運算式以建立相應的第一矩陣,並且在所述使用者端主機中任選其一以作為分派端主機(Dealer),其中,第一矩陣為m * n矩陣且m、n及N為大於1的正整數,所述分派端主機包含:第一計算模組、第二計算模組及生成模組。其中,第一計算模組用以隨機選出代表密文的s值,以及亂數選擇多個t i 值,並且將s值、t i 值作為第二矩陣之元素,其中,i為1至n-1;第二計算模組連接第一計算模組,用以將第一矩陣乘以第二矩陣以生成第三矩陣;生成模組連接第二計算模組,用以將第三矩陣的第j列的值 作為第j個共享單元,以及將第j個共享單元傳送至第j個使用者端主機作為第j個使用者端主機自身擁有的共享單元,其中,j為正整數且小於或等於N。
另外,本發明揭露一種基於線性整數秘密共享的共享單元生成系統,其包含:N個使用者端主機用以共同執行邏輯運算式以建立相應的第一矩陣,其中,第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數,第i個使用者端主機包含:第一計算模組、第二計算模組、傳輸模組及處理模組。其中,第一計算模組用以隨機選出代表密文的一部份的si值,以及亂數選擇多個ti,k值,並且將si值、ti,k值作為第二矩陣之元素,其中,i為1至N的正整數且k為1至n-1;第二計算模組連接第一計算模組,用以將第一矩陣乘以自身的第二矩陣以生成第三矩陣;傳輸模組連接第二計算模組,用以保留第三矩陣的第i列的值,以及將第j列的值傳送至第j個使用者端主機,其中,j為不等於i且小於至等於N的正整數;以及處理模組連接傳輸模組,用以當第i個使用者端主機接收到其餘使用者端主機分別傳送的第i列的值時,將自身保留的第i列的值與所有接收到的第i列的值加總以作為第i個使用者端主機自身擁有的共享單元。
接著,本發明揭露一種基於線性整數秘密共享的共享單元生成方法,其步驟包括:提供N個使用者端主機共同執行邏輯運算式以建立相應的第一矩陣,並且在使用者端主機中任選其一以作為分派端主機,其中,第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數;分派端主機隨機選出代表密文的s值,以及亂數選擇多個ti值,並且將s值、ti值作為第二矩陣之元素,其中,i為1至n-1;分派端主機將第一矩陣乘以第二矩陣以生成第三矩陣;分派端主機將第三矩陣的第j列的值作為第j個共享單元,以及將第j個共享單元傳送至第j個使用者端主 機作為第j個使用者端主機自身擁有的共享單元,其中,j為正整數且小於或等於N。
接下來,本發明揭露一種基於線性整數秘密共享的共享單元生成方法,其包含:提供N個使用者端主機共同執行邏輯運算式以建立相應的第一矩陣,其中,第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數;第i個使用者端主機隨機選出代表密文一部份的si值,以及亂數選擇多個ti,k值,並且將si值、ti,k值作為第二矩陣之元素,其中,i為1至N的正整數且k為1至n-1;第i個使用者端主機將第一矩陣乘以自身的第二矩陣以生成第三矩陣;第i個使用者端主機保留第三矩陣的第i列的值,以及將第j列的值傳送至第j個使用者端主機,其中,j為不等於i且小於至等於N的正整數;當第i個使用者端主機接收到其餘使用者端主機分別傳送的第i列的值時,將自身保留的第i列的值與所有接收到的第i列的值加總以作為第i個使用者端主機自身擁有的共享單元。
本發明所揭露之系統與方法如上,與先前技術的差異在於本發明是透過N個使用者端主機執行邏輯運算式以建立相應的第一矩陣,並且隨機選出代表密文的值及亂數選擇兩個值以一併生成第二矩陣,再將第一矩陣與第二矩陣相乘以生成第三矩陣,當存在分派端主機時,直接將第三矩陣各列的值分別傳送至相應的使用者端主機以作為其自身的共享單元,當不存在分派端主機時,第i個使用者端主機接收其餘使用者端主機分別傳送的第i列的值以與自身的第i列的值加總,以便作為第i個使用者端主機自身的共享單元。
透過上述的技術手段,本發明可以達成提高秘密共享機制的靈活性之技術功效。
110a~110n:使用者端主機
110:分派端主機
111:第一計算模組
112:第二計算模組
113:生成模組
210a~210n:使用者端主機
211:第一計算模組
212:第二計算模組
213:傳輸模組
214:處理模組
510:邏輯運算式
511,521:第一矩陣
512,522:第二矩陣
513,523:第三矩陣
步驟310:提供N個使用者端主機共同執行一邏輯運算式以建立相應的一第一矩陣,並且在所述使用者端主機中任選其一以作為一分派端主機(Dealer),其中,該第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數
步驟320:該分派端主機隨機選出代表一密文的一s值,以及亂數選擇多個t i 值,並且將該s值、所述t i 值作為一第二矩陣之元素,其中,i為1至n-1
步驟330:該分派端主機將該第一矩陣乘以該第二矩陣以生成一第三矩陣
步驟340:該分派端主機將該第三矩陣的第j列的值作為第j個共享單元,以及將第j個所述共享單元傳送至第j個所述使用者端主機作為第j個所述使用者端主機自身擁有的所述共享單元,其中,j為正整數且小於或等於N
步驟410:提供N個使用者端主機共同執行一邏輯運算式以建立相應的一第一矩陣,其中,該第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數
步驟420:第i個所述使用者端主機隨機選出代表一密文的一部份的一si值,以及亂數選擇多個t i,k 值,並且將該si值、所述t i,k 值作為一第二矩陣之元素,其中,i為1至N的正整數且k為1至n-1
步驟430:第i個所述使用者端主機將該第一矩陣乘以自身的該第二矩陣以生成一第三矩陣
步驟440:第i個所述使用者端主機保留該第三矩陣的第i列的值,以及將第j列的值傳送至第j個所述使用者端主機,其中,j為不等於i且小於至等於N的正整數
步驟450:當第i個所述使用者端主機接收到其餘所述使用者端主機分別傳送的所述第i列的值時,將自身保留的所述第i列的值與所有接收到的所述第i列的值加總以作為第i個所述使用者端主機自身擁有的所述共享單元
第1圖為本發明基於線性整數秘密共享的共享單元生成系統的第一實施例之系統方塊圖。
第2圖為本發明基於線性整數秘密共享的共享單元生成系統的第二實施例之系統流程圖。
第3圖為本發明基於線性整數秘密共享的共享單元生成方法的第一實施例之方法流程圖。
第4圖為本發明基於線性整數秘密共享的共享單元生成方法的第二實施例之方法流程圖。
第5圖為應用本發明生成共享單元的示意圖。
以下將配合圖式及實施例來詳細說明本發明之實施方式,藉此對本發明如何應用技術手段來解決技術問題並達成技術功效的實現過程能充分理解並據以實施。
首先,在說明本發明所揭露之基於線性整數秘密共享的共享單元生成系統及其方法之前,先對本發明自行定義的名詞作說明,本發明所述的共享單元(Share)是指在進行安全多方計算時,在不同的使用者端主機之間進行相互交換資料及計算結果所生成的元素,其可視為私鑰的一部分,所述元素能夠在不需重組私鑰的情況下,直接以數學運算計算出符合橢圓曲線數位簽名演算法(Elliptic Curve Digital Signature Algorithm,ECDSA)的簽章格式之簽章(或 稱為「簽名」)或是同態加密在不重組私鑰的情況下,直接以數學運算解密已經被同態加密公鑰加密的密文。
以下配合圖式對本發明基於線性整數秘密共享的共享單元生成系統及其方法做進一步說明,請先參閱「第1圖」,「第1圖」為本發明基於線性整數秘密共享的共享單元生成系統的第一實施例之系統方塊圖,此系統包含:N個使用者端主機(110a~110n),用以共同執行邏輯運算式以建立相應的第一矩陣,並且在所述使用者端主機(110a~110n)中任選其一以作為分派端主機110,其中,第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數,所述分派端主機110包含:第一計算模組111、第二計算模組112及生成模組113。其中,第一計算模組111用以隨機選出代表密文(或稱之為秘密、私鑰)的s值,以及亂數選擇多個ti值,並且將s值、ti值作為第二矩陣之元素,其中,i為1至n-1。在實際實施上,所述s值、ti值皆在指定的公開區間(例如:[-2^1,2^1]或[0,2^1])內,並且係先通過代表群(Group)內元素的g值進行自乘計算,再通過承諾(Commitment)雜湊函式計算雜湊值,當g值的次方為負數時,先計算g值的反元素再進行自乘,實際上這些值皆為非常大的整數值。另外,所述邏輯運算式可根據解密函式設置使用者端主機(110a~110n)之間的及運算(AND)與或運算(OR)以決定還原密文必須存在的使用者端主機(110a~110n),也就是說,一開始可以由每個人或分派端主機110決定大家的角色,以便根據「f」所定義的函數寫成對應的第一矩陣「M」,只要取值結果為1代表能還原密文,反之為0則代表不行。假設三個人中任意兩人同意即允許交易時,其相應的邏輯運算式為「f(P1,P2,P3):=(P1 AND P2)OR(P3 AND P1)OR(P3 AND P2)」,其中,「P1」、「P2」及「P3」分別代表不同的三個人;假設有四個人,當第一個人和第二個人 同意,或是第三個人和第四個人同意即允許交易時,其相應的邏輯運算式為:「f(P1,P2,P3,P4):=(P1 AND P2)OR(P3 AND P4)」,在四個人且有分派端主機110的例子中,其產生的第一矩陣為:
Figure 110144887-A0305-02-0009-1
,第二矩陣為:
Figure 110144887-A0305-02-0009-2
第二計算模組112連接第一計算模組111,用以將第一矩陣乘以第二矩陣以生成第三矩陣,其中,第三矩陣的第一列為s值與t 1值的和,第三矩陣的第二列為t 1值,第三矩陣的第三列為s值與t 2值的和,第三矩陣的第四列為t 2值。以上述第一矩陣及第二矩陣為例,第三矩陣的計算方式如下:
Figure 110144887-A0305-02-0009-3
生成模組113連接第二計算模組112,用以將第三矩陣的第j列的值作為第j個共享單元,以及將第j個共享單元傳送至第j個使用者端主機作為第j個使用者端主機自身擁有的共享單元,其中,j為正整數且小於或等於N。舉例來說,將第三矩陣的第1列的值「s+t 1」作為第1個共享單元,並且傳送至第1個使用者端主機作為其自身擁有的共享單元、將第三矩陣的第2列的值「t 1」作為第2個共享單元,並且傳送至第2個使用者端主機作為其自身擁有的共享單元、將第三矩陣的第3列的值「s+t 2」作為第3個共享單元,並且傳送至第3個使用者端主機作為其自身擁有的共享單元,以及將第三矩陣的第4列的值「t 2」作為第4個共享單元,並且傳送至第4個使用者端主機作為其自身擁有的共享單元。如此一來,這四個使用者端主機都會各自擁有自己的共享單元,而且能夠藉由邏輯運算式指定需要哪些人的共享單元且達到一定人數才能通過資產轉移。
接著,如「第2圖」所示意,「第2圖」為本發明基於線性整數秘密共享的共享單元生成系統的第二實施例之系統方塊圖,此系統包含:N個使用者端主機(210a~210n),用以共同執行邏輯運算式以建立相應的第一矩陣,其中,第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數。第i個使用者端主機(以使用者端主機210a為例)包含:第一計算模組211、第二計算模組212、傳輸模組213及處理模組214。其中,第一計算模組211用以隨機選出代表密文一部份的si值,以及亂數選擇多個t i,k 值,並且將si值、t i,k 值作為第二矩陣之元素,其中,i為1至N的正整數且k為1至n-1。換句話說,每一個使用者端主機(210a~210n)都會有自己的si值、t i,k 值。在四個人且沒有分派端主機110的例子中,其產生的第一矩陣為:
Figure 110144887-A0305-02-0010-4
,第二矩陣為:
Figure 110144887-A0305-02-0010-5
第二計算模組212連接第一計算模組211,用以將第一矩陣乘以自身的第二矩陣以生成第三矩陣,其中,第三矩陣的第一列為si值與t i,1值的和,第三矩陣的第二列為t i,1值,第三矩陣的三列為si值與t i,2值的和,第三矩陣的第四列為t i,2值。以上述第一矩陣及第二矩陣為例,第三矩陣的計算方式如下:
Figure 110144887-A0305-02-0010-6
傳輸模組213連接第二計算模組212,用以保留第三矩陣的第i列的值,以及將第j列的值傳送至第j個使用者端主機,其中,j為不等於i且小於至等於N的正整數。舉例來說,當i為1,j為2時,第1個使用者端主機保留第1列的值,並且將第2列的值傳送至第2個使用者端主機,當j為3時,將第3列的值傳送至第3個使用者端主機,並以此類推。換句話說,第1個使用者端主機會保留第1 列的值(即:「s i +t i,1」)、第2個使用者端主機會保留第2列的值(即:「t i,1」)、第3個使用者端主機會保留第3列的值(即:「s i +t i,2」),以及第4個使用者端主機會保留第4列的值(即:「t i,2」),而且還會將其它列的值傳送至相應的使用者端主機(210a~210n),以第4個使用者端為例,其會將第1列的值傳送至第1個使用者端主機、將第2列的值傳送至第2個使用者端主機、將第3列的值傳送至第3個使用者端主機。
處理模組214連接傳輸模組213,用以當第i個使用者端主機接收到其餘使用者端主機分別傳送的第i列的值時,將自身保留的第i列的值與所有接收到的第i列的值加總以作為第i個使用者端主機自身擁有的共享單元。以上述四個人為例,第1個使用者端主機會得到「s i +t i,1 ,1≦i≦4」、第2個使用者端主機會得到「t i,1 ,1≦i≦4」、第3個使用者端主機會得到「s i +t i,2 ,1≦i≦4」,以及第4個使用者端主機會得到「t i,2 ,1≦i≦4」。因此,第1個使用者端主機將自身保留的第1列的值「s 1+t 1,1」與所有來自其它使用者端主機的第1列的值「s 2+t 2,1」、「s 3+t 3,1」及「s 4+t 4,1」進行加總;第2個使用者端主機將自身保留的第2列的值「t 2,1」與所有來自其它使用者端主機的第2列的值「t 1,1」、「t 3,1」及「t 4,1」進行加總;第3個使用者端主機將自身保留的第3列的值「s 3+t 3,2」與所有來自其它使用者端主機的第3列的值「s 1+t 1,2」、「s 2+t 2,2」及「s 4+t 4,2」進行加總,以及第4個使用者端主機將自身保留的第4列的值「t 4,2」與所有來自其它使用者端主機的第4列的值「t 1,2」、「t 2,2」及「t 3,2」進行加總。由於其中共同決定的密文為「s 1+s 2+s 3+s 4」,所以沒有人知道真正的密文為何,故可稱為沒有分派端主機110的情況。
特別要說明的是,在實際實施上,本發明所述的模組皆可利用各種方式來實現,包含軟體、硬體或其任意組合,例如,在某些實施方式中,各模組可利用軟體及硬體或其中之一來實現,除此之外,本發明亦可部分地或完全地基於硬體來實現,例如,系統中的一個或多個模組可以透過積體電路晶片、系統單晶片(System on Chip,SoC)、複雜可程式邏輯裝置(Complex Programmable Logic Device,CPLD)、現場可程式邏輯閘陣列(Field Programmable Gate Array,FPGA)等來實現。本發明可以是系統、方法及/或電腦程式。電腦程式可以包括電腦可讀儲存媒體,其上載有用於使處理器實現本發明的各個方面的電腦可讀程式指令,電腦可讀儲存媒體可以是可以保持和儲存由指令執行設備使用的指令的有形設備。電腦可讀儲存媒體可以是但不限於電儲存設備、磁儲存設備、光儲存設備、電磁儲存設備、半導體儲存設備或上述的任意合適的組合。電腦可讀儲存媒體的更具體的例子(非窮舉的列表)包括:硬碟、隨機存取記憶體、唯讀記憶體、快閃記憶體、光碟、軟碟以及上述的任意合適的組合。此處所使用的電腦可讀儲存媒體不被解釋為瞬時訊號本身,諸如無線電波或者其它自由傳播的電磁波、通過波導或其它傳輸媒介傳播的電磁波(例如,通過光纖電纜的光訊號)、或者通過電線傳輸的電訊號。另外,此處所描述的電腦可讀程式指令可以從電腦可讀儲存媒體下載到各個計算/處理設備,或者通過網路,例如:網際網路、區域網路、廣域網路及/或無線網路下載到外部電腦設備或外部儲存設備。網路可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火牆、交換器、集線器及/或閘道器。每一個計算/處理設備中的網路卡或者網路介面從網路接收電腦可讀程式指令,並轉發此電腦可讀程式指令,以供儲存在各個計算/處理設備中的電腦可讀儲存媒體中。執行本發明操作的電腦程式 指令可以是組合語言指令、指令集架構指令、機器指令、機器相關指令、微指令、韌體指令、或者以一種或多種程式語言的任意組合編寫的原始碼或目的碼(Object Code),所述程式語言包括物件導向的程式語言,如:Common Lisp、Python、C++、Objective-C、Smalltalk、Delphi、Java、Swift、C#、Perl、Ruby與PHP等,以及常規的程序式(Procedural)程式語言,如:C語言或類似的程式語言。所述電腦程式指令可以完全地在電腦上執行、部分地在電腦上執行、作為一個獨立的軟體執行、部分在客戶端電腦上部分在遠端電腦上執行、或者完全在遠端電腦或伺服器上執行。
請參閱「第3圖」,「第3圖」為本發明基於線性整數秘密共享的共享單元生成方法的第一實施例之方法流程圖,其步驟包括:提供N個使用者端主機(110a~110n)共同執行邏輯運算式以建立相應的第一矩陣,並且在使用者端主機(110a~110n)中任選其一以作為分派端主機110,其中,第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數(步驟310);分派端主機110隨機選出代表密文的s值,以及亂數選擇多個t i 值,並且將s值、t i 值作為第二矩陣之元素(步驟320),其中,i為1至n-1;分派端主機110將第一矩陣乘以第二矩陣以生成第三矩陣(步驟330);分派端主機110將第三矩陣的第j列的值作為第j個共享單元,以及將第j個共享單元傳送至第j個使用者端主機作為第j個使用者端主機自身擁有的共享單元,其中,j為正整數且小於或等於N(步驟340)。假設有一個分派端主機110要將密文「s」分散給其他人保管,每一個保管人持有的稱作「共享單元」,若沒有滿足數量的共享單元則無法還原密文「s」,當分派端主機110要將共享單元分成m份時,方法如下:
1.分派端主機110選取一個第一矩陣「M」,尺寸為「m*n」,並且選一個向量v:=[s,x2,...,xn]T,則產生的n份共享單元為「M * v=[s1,...,sm]T」,此處的s為挑選的密文且「x2,...,xn」皆為在一個適當區間內隨機挑選的值,例如:假設密文的範圍在給定的公開範圍為「[-2^1,2^1]或[0,2^1]」,則適當區間為「[-2^{1_0+K},2^1_0+K]或[0,2^1+K]」,其中,K為統計距離參數,可選為數值80。
2.分派端主機110將共享單元「si」分給合適者。
當可找到向量「w」使得MT * w=[1,0,0,...,0]T則計算[s1,...,sm]T*w,可以還原s,其中「T」代表轉置(Transpose)。舉例來說,假設有四個使用者:A、B、C及D,並且假設有以下組合條件可以組成私鑰:
1. A,B
2. C,D
3. A,B,C
4. A,B,D
5. B,C,D
6. A,B,C,D
對應此情況,考慮第一矩陣「M」為:
Figure 110144887-A0305-02-0014-7
M*[s,t 1,t 2]T=[s+t 1,t 1,s+t 2,t 2]。所以A、B、C及D分別持有的共享單元依序為:「s+t 1」、「t 1」、「s+t 2」及「t 2」。其中,「s」為密文,而「t 1」及「t 2」皆為隨機選取的數值(即:t 1值、t 2值)。如此一來,便能夠 容易地進行檢查,以A及B的組合條件為例,以下矩陣的第一個垂直行(Column)是A取水平列(Row)的轉置,第二個垂直行是B取水平列的轉置。
Figure 110144887-A0305-02-0015-8
其中,w=[1,-1],因此,「wT*[s+t 1,t 1]=s」可成功還原出私鑰,其他情況同理,可以驗證出對於其他情況都存在「w」使得密文(即:私鑰)「s」可以被還原,而在這些條件之外的都無法還原私鑰s,例如:A和C的共享單元一起混和就無法還原出私鑰s,因為前者的值是s+t 1,後者的值是s+t 2,存在兩個方程式及三個變數。反之,倘若值是s+t 1t 1就可以算出s,因為存在兩個方程式及兩個變數。
請參閱「第4圖」,「第4圖」為本發明基於線性整數秘密共享的共享單元生成方法的第二實施例之方法流程圖,其步驟包括:提供N個使用者端主機(210a~210n)共同執行邏輯運算式以建立相應的第一矩陣,其中,第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數(步驟410);第i個使用者端主機隨機選出代表密文一部份的si值,以及亂數選擇多個t i,k 值,並且將si值、t i,k 值作為第二矩陣之元素,其中,i為1至N的正整數且k為1至n-1(步驟420);第i個使用者端主機將第一矩陣乘以自身的第二矩陣以生成第三矩陣(步驟430);第i個使用者端主機保留第三矩陣的第i列的值,以及將第j列的值傳送至第j個使用者端主機,其中,j為不等於i且小於至等於N的正整數(步驟440);當第i個使用者端主機接收到其餘使用者端主機分別傳送的第i列的值時,將自身保留的第i列的值與所有接收到的第i列的值加總以作為第i個使用者端主機自身擁有的共享單元(步驟450)。透過上述步驟,即可透過N個使用者端主機(210a~210n)執 行邏輯運算式以建立相應的第一矩陣,並且隨機選出代表密文的值及亂數選擇兩個值以一併生成第二矩陣,再將第一矩陣與第二矩陣相乘以生成第三矩陣,當存在分派端主機時,直接將第三矩陣各列的值分別傳送至相應的使用者端主機以作為其自身的共享單元,當不存在分派端主機時,第i個使用者端主機接收其餘使用者端主機分別傳送的第i列的值以與自身的第i列的值加總,以便作為第i個使用者端主機自身的共享單元。
以下配合「第5圖」以實施例的方式進行如下說明,「第5圖」為應用本發明生成共享單元的示意圖。在實際實施上,建立第一矩陣「M」時,其矩陣的值可通過邏輯運算式510及迭代公式計算出來,例如:
Figure 110144887-A0305-02-0016-9
,並且將計算出的矩陣第一列定義為代表第一個人;將矩陣第二列定義為代表第二個人,並以此類推。舉例來說,假設有三個人,倘若希望只需其中任兩人即可還原秘密「s」,則邏輯運算式為:「f(P1,P2,P3):=(P1 AND P2)OR(P1 AND P3)OR(P2 AND P3)」,其中,「P1」、「P2」及「P3」分別代表不同的三個人。在此邏輯計算中,只要「(P1 AND P2)」、「(P1 AND P3)」及「(P2 AND P3)」三者其中任一為數值1,則「f(P1,P2,P3)」為數值1。實際上,所述數值1代表「真」,數值0代表「假」。換句話說,當「f(P1,P2,P3)」為「真」代表可還原秘密,若為「假」則代表不可還原秘密。接著,針對上述邏輯運算式建立相應的第一矩陣「M」,以便分派共享單元。若是不考慮「承諾(Commitment)」和「
Figure 110144887-A0305-02-0016-10
」,則有分派端主機110和沒有分派端主機110的情況。首先,以有分派端主機110的情況為例,假設邏輯運算式510為:「f(P1,P2,P3,P4):=(P1 AND P2)OR(P3 AND P4)」,其中,「P1」、「P2」、「P3」及「P4」分別代表不同的四個人(即:使 用者端主機),並且只要有「P1」和「P2」或者有「P3」和「P4」就可以還原秘密,然而,倘若只有「P1」和「P4」或者只有「P2」和「P3」則無法還原秘密,其流程如下:
一、有分派端主機110
分派端主機110計算出第一矩陣511:
Figure 110144887-A0305-02-0017-11
此時,隨機選出秘密「s值」且亂數選擇「t 1值」及「t 2值」以便作為第二矩陣512之元素,接著將第一矩陣511及第二矩陣512相乘即可得到第三矩陣513,以便計算出共享單元「Share」,計算方式如下:
Figure 110144887-A0305-02-0017-12
當有「s+t 1」及「t 1」時,因為兩個變數有兩個多項式,所以可以還原出「s」,同樣地,當有「s+t 2」及「t 2」時,也有兩個變數及兩個多項式,所以也可以還原出「s」。如此一來,即可滿足「f(P1,P2,P3,P4)=1」的條件。
二、沒有分派端主機110
假設邏輯運算式510同樣為:「f(P1,P2,P3,P4):=(P1 AND P2)OR(P3 AND P4)」,其第一矩陣521不變,此時,四個人分別選擇自己的「si」、「t i,1」及「t i,2」以作為自身的第二矩陣522之元素,並且每個人分別將第一矩陣521與自身的第二矩陣522相乘以計算出第三矩陣523,計算方式如下:
Figure 110144887-A0305-02-0018-13
其中,第一列對應「P1」(第1個使用者端主機)、第二列對應「P2」(第2個使用者端主機)、第三列對應「P3」(第3個使用者端主機)及第四列對應「P4」(第4個使用者端主機)。此時,「P1」將第一列的「s1+t 1,1」留給自己、將第二列的「t 1,1」給「P2」、將第三列的「s1+ t 1,2」給「P3」,以及將第四列的「t 1,2」給「P4」。同理,「P2」將第二列的「t 2,1」留給自己、將第一列的「s2+t 2,1」給「P1」、將第三列的「s2+ t 2,2」給「P3」,以及將第四列的「t 2,2」給「P4」,並以此類推。最後,「P1」會得到「si+t i,1」、「P2」會得到「t i,1」、「P3」會得到「si+t i,2」,以及「P4」會得到「t i,2」,其中,1<=i<=4。接著,每個人各自加總得到的值以生成自己的共享單元,例如:「P1」的共享單元為「(s1+t 1,1)+(s2+t 2,1)+(s3+t 3,1)+(s4+t 4,1)」、「P2」的共享單元為「t 1,1+t 2,1+t 3,1+t 4,1」、「P3」的共享單元為「(s1+t 1,2)+(s2+t 2,2)+(s3+t 3,2)+(s4+t 4,2)」,以及「P4」的共享單元為「t 1,2+t 2,2+t 3,2+t 4,2」。其中,共同決定的秘密為:「s1+s2+s3+s4」,所以沒有人知道真正的秘密為何,故稱之為沒有分派端主機110的情況。特別要說明的是,為了增加安全性,實際上可搭配如:「
Figure 110144887-A0305-02-0018-14
」、「
Figure 110144887-A0305-02-0018-15
」、「
Figure 110144887-A0305-02-0018-16
」及「
Figure 110144887-A0305-02-0018-17
」進行運算,其中,「commitment H()」可視為雜湊函式,秘密s=x1,亂數x2,...,xk(k為總人數),G為考慮的群,g為在G裡面的一個元素。倘若要還原秘密,當找出的向量「w」可以滿足「MT*w=[1,0,0,...,0]T」時,這個向量「w」可以透過計算「[s1,...,sm]T*w」來還原秘密「s」。其中,「T」代表陣列的轉置矩陣。換句話說,提供一個方法計算出向量「w」,其扮演的角色類似拉格朗日係數 (Lagrange coefficient),然後利用它跟每個人持有的共享單元還原出秘密。如此一來,即可任意創造出想要的單調存取結構(Monotone Access Structure)。
綜上所述,可知本發明與先前技術之間的差異在於透過N個使用者端主機執行邏輯運算式以建立相應的第一矩陣,並且隨機選出代表密文的值及亂數選擇兩個值以一併生成第二矩陣,再將第一矩陣與第二矩陣相乘以生成第三矩陣,當存在分派端主機時,直接將第三矩陣各列的值分別傳送至相應的使用者端主機以作為其自身的共享單元,當不存在分派端主機時,第i個使用者端主機接收其餘使用者端主機分別傳送的第i列的值以與自身的第i列的值加總,以便作為第i個使用者端主機自身的共享單元,藉由此一技術手段可以解決先前技術所存在的問題,進而達成提高秘密共享機制的靈活性之技術功效。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明,任何熟習相像技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
110a~110n:使用者端主機
110:分派端主機
111:第一計算模組
112:第二計算模組
113:生成模組

Claims (10)

  1. 一種基於線性整數秘密共享的共享單元生成系統,該系統包含:N個使用者端主機,用以共同執行一邏輯運算式以建立相應的一第一矩陣,並且在所述使用者端主機中任選其一以作為一分派端主機(Dealer),其中,該第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數,該分派端主機包含:一第一計算模組,用以隨機選出代表一密文的一s值,以及亂數選擇多個t i 值,並且將該s值、所述t i 值作為一第二矩陣之元素,其中,i為1至n-1;一第二計算模組,連接該第一計算模組,用以將該第一矩陣乘以該第二矩陣以生成一第三矩陣;以及一生成模組,連接該第二計算模組,用以將該第三矩陣的第j列的值作為第j個共享單元,以及將第j個所述共享單元傳送至第j個所述使用者端主機作為第j個所述使用者端主機自身擁有的所述共享單元,其中,j為正整數且小於或等於N。
  2. 如請求項1之基於線性整數秘密共享的共享單元生成系統,其中該邏輯運算式係根據一解密函式設置所述使用者端主機之間的及運算(AND)與或運算(OR)以決定還原該密文必須存在的所述使用者端主機。
  3. 一種基於線性整數秘密共享的共享單元生成系統,該系統包含: N個使用者端主機,用以共同執行一邏輯運算式以建立相應的一第一矩陣,其中,該第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數,第i個所述使用者端主機包含:一第一計算模組,用以隨機選出代表一密文的一部份的一si值,以及亂數選擇多個t i,k 值,並且將該si值、所述t i,k 值作為一第二矩陣之元素,其中,i為1至N的正整數且k為1至n-1;一第二計算模組,連接該第一計算模組,用以將該第一矩陣乘以自身的該第二矩陣以生成一第三矩陣;一傳輸模組,連接該第二計算模組,用以保留該第三矩陣的第i列的值,以及將第j列的值傳送至第j個所述使用者端主機,其中,j為不等於i且小於至等於N的正整數;以及一處理模組,連接該傳輸模組,用以當第i個所述使用者端主機接收到其餘所述使用者端主機分別傳送的所述第i列的值時,將自身保留的所述第i列的值與所有接收到的所述第i列的值加總以作為第i個所述使用者端主機自身擁有的所述共享單元。
  4. 如請求項3之基於線性整數秘密共享的共享單元生成系統,其中該邏輯運算式係根據一解密函式設置所述使用者端主機之間的及運算(AND)與或運算(OR)以決定還原該密文必須存在的所述使用者端主機。
  5. 如請求項3之基於線性整數秘密共享的共享單元生成系統,其中該si值、該t i 值皆在指定的一公開區間內,並且係先通過代表群(Group)內元素的一g值進行自乘計算,再通過一承諾(Commitment)雜湊函式計算雜湊值,該g值的次方為負數時,先計算該g值的反元素再進行自乘。
  6. 一種基於線性整數秘密共享的共享單元生成方法,其步驟包括:提供N個使用者端主機共同執行一邏輯運算式以建立相應的一第一矩陣,並且在所述使用者端主機中任選其一以作為一分派端主機(Dealer),其中,該第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數;該分派端主機隨機選出代表一密文的一s值,以及亂數選擇多個t i 值,並且將該s值、所述t i 值作為一第二矩陣之元素,其中,i為1至n-1;該分派端主機將該第一矩陣乘以該第二矩陣以生成一第三矩陣;以及該分派端主機將該第三矩陣的第j列的值作為第j個共享單元,以及將第j個所述共享單元傳送至第j個所述使用者端主機作為第j個所述使用者端主機自身擁有的所述共享單元,其中,j為正整數且小於或等於N。
  7. 如請求項6之基於線性整數秘密共享的共享單元生成方法,其中該邏輯運算式係根據一解密函式設置所述使用者端主機之間的 及運算(AND)與或運算(OR)以決定還原該密文必須存在的所述使用者端主機。
  8. 一種基於線性整數秘密共享的共享單元生成方法,其步驟包括:提供N個使用者端主機共同執行一邏輯運算式以建立相應的一第一矩陣,其中,該第一矩陣為m * n矩陣且m、n及N皆為大於1的正整數;第i個所述使用者端主機隨機選出代表一密文的一部份的一si值,以及亂數選擇多個t i,k 值,並且將該si值、所述t i,k 值作為一第二矩陣之元素,其中,i為1至N的正整數且k為1至n-1;第i個所述使用者端主機將該第一矩陣乘以自身的該第二矩陣以生成一第三矩陣;第i個所述使用者端主機保留該第三矩陣的第i列的值,以及將第j列的值傳送至第j個所述使用者端主機,其中,j為不等於i且小於至等於N的正整數;以及當第i個所述使用者端主機接收到其餘所述使用者端主機分別傳送的所述第i列的值時,將自身保留的所述第i列的值與所有接收到的所述第i列的值加總以作為第i個所述使用者端主機自身擁有的所述共享單元。
  9. 如請求項8之基於線性整數秘密共享的共享單元生成方法,其中該邏輯運算式係根據一解密函式設置所述使用者端主機之間的及運算(AND)與或運算(OR)以決定還原該密文必須存在的所述使用者端主機。
  10. 如請求項8之基於線性整數秘密共享的共享單元生成方法,其中該si值、所述t i,k 皆在指定的一公開區間內,並且係先通過代表群(Group)內元素的一g值進行自乘計算,再通過一承諾(Commitment)雜湊函式計算雜湊值,該g值的次方為負數時,先計算該g值的反元素再進行自乘。
TW110144887A 2021-12-01 2021-12-01 基於線性整數秘密共享的共享單元生成系統及其方法 TWI783804B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW110144887A TWI783804B (zh) 2021-12-01 2021-12-01 基於線性整數秘密共享的共享單元生成系統及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110144887A TWI783804B (zh) 2021-12-01 2021-12-01 基於線性整數秘密共享的共享單元生成系統及其方法

Publications (2)

Publication Number Publication Date
TWI783804B true TWI783804B (zh) 2022-11-11
TW202324965A TW202324965A (zh) 2023-06-16

Family

ID=85794463

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110144887A TWI783804B (zh) 2021-12-01 2021-12-01 基於線性整數秘密共享的共享單元生成系統及其方法

Country Status (1)

Country Link
TW (1) TWI783804B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006124289A2 (en) * 2005-05-13 2006-11-23 Temple University - Of The Commonwealth System Of Higher Education Secret sharing technique with low overhead information content
US20140198911A1 (en) * 2008-08-29 2014-07-17 Red Hat, Inc. Sharing a secret via linear interpolation
TW202029693A (zh) * 2018-10-27 2020-08-01 安地卡及巴布達商區塊鏈控股有限公司 用以分配數位簽署資料之份額的電腦實施系統及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006124289A2 (en) * 2005-05-13 2006-11-23 Temple University - Of The Commonwealth System Of Higher Education Secret sharing technique with low overhead information content
US20140198911A1 (en) * 2008-08-29 2014-07-17 Red Hat, Inc. Sharing a secret via linear interpolation
TW202029693A (zh) * 2018-10-27 2020-08-01 安地卡及巴布達商區塊鏈控股有限公司 用以分配數位簽署資料之份額的電腦實施系統及方法

Also Published As

Publication number Publication date
TW202324965A (zh) 2023-06-16

Similar Documents

Publication Publication Date Title
US11601407B2 (en) Fast oblivious transfers
WO2011052056A1 (ja) データ処理装置
CN106664205A (zh) 用于安全弹性分布式生成具有主动安全性的基于椭圆曲线数字签名算法(ecdsa)的数字签名的方法
CN113836556B (zh) 面向联邦学习的去中心化函数加密隐私保护方法及系统
JP2021145388A (ja) デジタル署名方法、署名情報検証方法、関連装置及び電子機器
EP4376350A2 (en) Computer implemented system and method for distributing shares of digitally signed data
Li et al. TMO: time domain outsourcing attribute-based encryption scheme for data acquisition in edge computing
US20100306543A1 (en) Method of efficient secure function evaluation using resettable tamper-resistant hardware tokens
CN108259180B (zh) 一种量子指定验证者签名的方法
CN113420886A (zh) 纵向联邦学习模型的训练方法、装置、设备及存储介质
US20220278843A1 (en) Computer implemented method and system for knowledge proof in blockchain transactions
TWI782701B (zh) 區塊鏈錢包的非互動式批核系統及其方法
TWI783804B (zh) 基於線性整數秘密共享的共享單元生成系統及其方法
Hong et al. Constructing conditional PKEET with verification mechanism for data privacy protection in intelligent systems
TWI759138B (zh) 基於輸入密碼的門檻式簽章系統及其方法
CN113886868A (zh) 一种多源垂直分布数据的逻辑回归安全训练方法及系统
TWI702820B (zh) 具分級機制的秘密共享簽章系統及其方法
TWI689194B (zh) 基於無分派者秘密共享的門檻式簽章系統及其方法
TWI737956B (zh) 基於秘密共享的門檻式簽章系統及其方法
CN112073172B (zh) 一种格上基于身份的双接收者全同态加密方法及系统
TWI734087B (zh) 基於同態加密的簽章系統及其方法
CN116028969B (zh) 一种基于数据加密技术的隐私计算方法
Li et al. General quantum secure multiparty computation protocol for simultaneous summation and multiplication
TW202310584A (zh) 分層確定性錢包的金鑰生成系統及其方法
KR101628924B1 (ko) k번째 항목의 스코어 산출 방법 및 산출 시스템