TWI664849B - 產生安全替代表示碼的方法、計算機程式產品及處理系統 - Google Patents

產生安全替代表示碼的方法、計算機程式產品及處理系統 Download PDF

Info

Publication number
TWI664849B
TWI664849B TW106146377A TW106146377A TWI664849B TW I664849 B TWI664849 B TW I664849B TW 106146377 A TW106146377 A TW 106146377A TW 106146377 A TW106146377 A TW 106146377A TW I664849 B TWI664849 B TW I664849B
Authority
TW
Taiwan
Prior art keywords
secret
sequence
code
index
processing system
Prior art date
Application number
TW106146377A
Other languages
English (en)
Other versions
TW201929478A (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 財團法人工業技術研究院
Application granted granted Critical
Publication of TWI664849B publication Critical patent/TWI664849B/zh
Publication of TW201929478A publication Critical patent/TW201929478A/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/438Presentation of query results
    • G06F16/4387Presentation of query results by the use of playlists
    • G06F16/4393Multimedia presentations, e.g. slide shows, multimedia albums
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Storage Device Security (AREA)

Abstract

本發明揭露產生安全替代表示碼的方法、計算機程式產品及處理系統。一種處理系統中的方法包括:由處理系統提供包括多個第一值的第一序列;由處理系統提供屬於多個群組的多個儲存點,各群組具有一或多個儲存點;對於各儲存點,由處理系統執行一符號推導裝填程序;由處理系統藉由撿取裝填於對應群組的儲存點的符號為各群組結合出一佇列;以及由處理系統藉由連結為各群組所結合的佇列產生第一序列的一安全替代表示碼。

Description

產生安全替代表示碼的方法、計算機程式產品及處 理系統
本發明是有關於一種產生安全替代表示碼的方法、計算機程式產品及處理系統。
雲端服務已協助數以萬計的公司降低IT基礎建設的成本,並達到前所未見的靈活性、可用性及可擴展性。在這樣的誘因下,許多企業員工被默許將企業外部的雲端應用到企業的工作中。但資料外流一直是企業的營運風險之一,雲端應用可能帶來的危機不容小覷。的確,當搜尋引擎及雲端儲存服務逐漸成為人們普遍的工具,許多雲端應用逐步融入人們的生活之際,無論用戶是否意識到,他們可能需要付出隱私來換得這所謂的免費。
正因為意識到駭客或服務提供商可能造成的侵權,越來越多用戶在意他們的隱私。為了避免個人資訊(information)洩露,用戶基本上可將資料(data)加密後再儲存到雲端中的一或多個伺服器。然而,加密的資料卻可能使搜尋資料變得困難或不可行,造成搜尋及/或 擷取伺服器上的資料時的不便。基於上述考量,如何提供一個安全且仍然容易搜尋的加密資料取回機制(encrypted data retrieval mechanism)是業界努力的課題之一。
本發明一實施例揭露一種產生安全替代表示碼方法,應用在一處理系統,所述處理系統包括一或多個處理單元及一或多個儲存單元。所述方法包括:由所述處理系統提供包括複數個第一值的一第一序列;由所述處理系統提供屬於複數個群組的複數個儲存點,其中各群組包括一或多個儲存點;對於各所述儲存點,由所述處理系統執行一符號推導裝填程序;由所述處理系統藉由撿取裝填於對應群組的所述儲存點的一或多個符號為各所述群組結合出一佇列;以及由所述處理系統藉由連結為各所述群組所結合的所述佇列產生所述第一序列的一安全替代表示碼。所述符號推導裝填程序包括:由所述處理系統推導一或多個秘密指標,各所述秘密指標指向所述第一值的其中之一;由所述處理系統藉由組合被所述秘密指標指到的一或多個所述第一值形成一代碼;由所述處理系統映射所述代碼至一符號;以及由所述處理系統裝填所述符號至對應的儲存點。
本發明一實施例揭露一種計算機程式產品包括一非暫時性計算機可讀媒體,所述非暫時性計算機可讀媒體儲存有一計算機可讀程式,其中當所述計算機可讀程式被一處理系統執行時,使所述處理系統執行:提供包括複數個第一值的一第一序列;提供屬於複數個群組的複數個儲存點,其中各群組包括一或多個 儲存點;對於各所述儲存點,執行一符號推導裝填程序;藉由撿取裝填於對應群組的所述儲存點的所述符號為各所述群組結合出一佇列;以及藉由連結為各所述群組所結合的所述佇列產生所述第一序列的一安全替代表示碼。所述符號推導裝填程序包括:由所述處理系統推導一或多個秘密指標,各所述秘密指標指向所述第一值的其中之一;組合被所述秘密指標指到的一或多個所述第一值形成一代碼;映射所述代碼至一符號;以及裝填所述符號至對應的儲存點。
本發明一實施例揭露一種處理系統,用以產生安全替代表示碼。所述處理系統包括:一或多個處理單元;以及一或多個儲存單元,耦接至所述處理單元,其中所述儲存單元包括複數個指令,當所述指令被所述處理單元執行時,使所述處理單元執行:提供包括複數個第一值的一第一序列;提供屬於複數個群組的複數個儲存點,其中各群組包括一或多個儲存點;對於各所述儲存點,執行一符號推導裝填程序;藉由撿取裝填於對應群組的所述儲存點的所述符號為各所述群組結合出一佇列;以及藉由連結為各所述群組所結合的所述佇列產生所述第一序列的一安全替代表示碼。所述符號推導裝填程序包括:由所述處理系統推導一或多個秘密指標,各所述秘密指標指向所述第一值的其中之一;組合被所述秘密指標指到的一或多個所述第一值形成一代碼;映射所述代碼至一符號;以及裝填所述符號至對應的儲存點。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
10‧‧‧處理系統
102‧‧‧儲存單元
104‧‧‧處理單元
90‧‧‧伺服器
S201~S209‧‧‧步驟
F、G、H‧‧‧函數
70‧‧‧二維資料
72‧‧‧一維資料
80‧‧‧每日記錄
第1圖繪示依據本發明的一實施例的處理系統的方塊圖。
第2圖繪示依據本發明的一實施例的產生安全替代表示碼方法的流程圖。
第3圖繪示依據本發明一實施例的第一例產生安全索引的示意圖。
第4圖繪示依據本發明一實施例的第二例產生安全索引的示意圖。
第5圖繪示依據本發明一實施例的第三例產生安全暗門的示意圖。
第6圖繪示依據本發明一實施例的第四例產生安全暗門的示意圖。
第7圖繪示依據本發明一實施例的第五例產生安全暗門的示意圖。
第8圖及第9圖繪示的是字串比對程序的二例。
第10圖繪示依據本發明另一實施例的第六例產生安全索引的示意圖。
第11圖繪示依據本發明另一實施例的第七例產生安全索引的示意圖。
第12圖繪示依據本發明另一實施例的第八例產生安全暗門的示意圖。
第13圖繪示依據本發明一實施例的第九例序列延展的示意圖。
第14圖繪示依據本發明一實施例的第十例序列延展的示意圖。
第15圖繪示依據本發明一實施例的第十一例序列延展的示意圖。
第16圖繪示二維資料的一例。
第17圖繪示由第16圖所示的二維資料轉換而成的一維資料的一例。
第18圖繪示代碼映射的一例。
第19圖繪示每日記錄的一維資料的一例。
請參照第1圖,第1圖繪示依據本發明的一實施例的處理系統的方塊圖。處理系統10包括一(或多個)儲存單元102以及一(或多個)處理單元104。儲存單元102被用以儲存資料、應用程式、處理程序、計算機可讀指令或計算機可讀程式,其中此些資料、應用程式、處理程序、計算機可讀指令或計算機可讀程式可(may)用以產生安全替代表示碼(secure alternative representations)。處理單元104可用以執行應用程式、處理程序、計算機可讀指令或計算機可讀程式以執行用以產生安全替代 表示碼的方法。在一些實施例中,具有非暫時性計算機可讀媒體的計算機程式產品可用以儲存應用程式、處理程序、計算機可讀指令或計算機可讀程式。當此些應用程式、處理程序、計算機可讀指令或計算機可讀程式在處理系統10上執行時,使處理系統10執行用以產生安全替代表示碼的方法。
在本發明中,可產生一或多個安全替代表示碼(secure alternative representations),用以表示具有多個第一值(value)的一第一序列(sequence)。在一實施例中,第一序列是對於文件之物件(object of file(s))、句子(sentence(s))或甚至僅是一單字(word)等的一第一資料(data)的一描述器(descriptor),其中此些文件之物件、句子或單字被認為是私密的或機密的。資料擁有者(用戶)期望可在將第一資料儲存到伺服器90的遠端儲存空間之前隱藏第一資料。在此種情況下,在把第一資料儲存到伺服器90的遠端儲存空間之前,依據本發明的方法能夠產生一或多個安全替代表示碼作為安全索引(secure index/indexes)來表示第一序列(或第一資料),以隱藏其真實內容,而後第一資料可被獨立地加密。在另一實施例中,當資料擁有者(用戶)需要辨識之前所產生的儲存於遠端儲存空間的安全索引及/或想要擷取相關之經過加密的第一資料時,第一序列可被用作一查詢字(query-word),而依據本發明的方法可被用以產生一或多個安全替代表示碼,作為安全暗門(secure trapdoor(s))以辨識安全索引。
在本發明中,所述安全替代表示碼可被用作第一資料的雜湊標籤(hash tag),以具有類似MD5或HMAC的效果。除了被當作雜 湊標籤之外,所述安全替代表示碼也可被用作第一序列的安全索引或安全暗門,藉由各個安全暗門,可在不洩漏第一序列與第一資料的真實內容的情況下辨識對應之安全索引。這對應至本方法所致能的一資料取回機制,此資料取回機制係可在使用者端對此些物件進行加密之前,為對應於各個私人或機密的物件,譬如文件以及字詞(words),產生一或多個安全索引;當經加密的物件和(此或此些)安全索引被上傳至一伺服器後,使用者可提供一或多個安全暗門作為線索,用以辨識相關聯的安全索引,而從伺服器取回一或多個經加密的物件。對於各個私人或機密物件,安全索引可被看作為了將物件的真實內容隱藏起來而表示的安全替代表示碼,以達到類似於MD5及HMAC等的雜湊標籤的作用。相似地,對於辨識為了各個私人及機密物件所產生的一或多個安全索引,此一或多個安全暗門可被看作是物件的另一種安全替代表示碼,且安全暗門如同本發明所揭露的一樣也可將物件的真實內容隱藏起來。
處理系統10可藉由手機、個人電腦、筆記型電腦、智慧型手機及平板電腦等來實現。例如,處理系統10能夠連接到伺服器90,且傳送產生的安全索引到伺服器90,而將安全索引儲存於伺服器90。此外,處理系統10可傳送安全暗門到伺服器90,以從儲存於伺服器90的眾多安全索引中搜尋所要的安全索引。
在本實施例中,由於第一序列被轉換為可用以代替第一序列的安全索引而被儲存到伺服器90,伺服器90便無法從安全索引中得知第一序列的真實內容。相似地,當進行搜尋時,由於被用來作為 查詢字的第一序列被轉換為可用以代替第一序列的安全暗門,伺服器90也將難以從安全暗門得知第一序列的真實內容。
關於本方法的細節將於底下搭配第2圖進行說明。需要注意的是,由於使用第2圖所示的方法來產生安全索引及產生安全暗門在細節上有所差異,下文會先對使用本方法產生安全索引的實施例進行說明,再對使用本方法產生安全暗門的另一實施例進行說明。此外,為了更清楚地描述本方法,當說明產生安全索引的實施例時,將會在各個元件的前面加上綴詞「索引」,例如群組(group)、儲存點(storage cell)、秘密指標(secret pointer)、代碼(token)、符號(symbol)及佇列(queue),將被表示為索引群組、索引儲存點、索引秘密指標、索引代碼、索引符號及索引佇列。相似地,當說明產生安全暗門的實施例時,將會在各個元件的前面加上綴詞「暗門」,例如群組、儲存點、秘密指標、代碼、符號及佇列,將被表示為暗門群組、暗門儲存點、暗門秘密指標、暗門代碼、暗門符號及暗門佇列。
請參照第2圖及第3圖,第2圖所示的方法包括步驟S201~S209。在本實施例中,第2圖所示的方法是被用以產生作為安全索引的安全替代表示碼。
在步驟S201中,由處理系統10執行,提供包括多個第一值的一第一序列。例如,第一序列可為針對一第一資料的描述器,而第一資料可為一文件或一一維資料。此些第一值可被編碼為多個字元(character)用以表示文件資料,或者被編碼為多個數字值(numerical value)用以表示數字資料(numerical data)。然而,在一些實施例中, 例如第3圖所示的實施例,第一值雖然是字元(character),卻被當作值(value)來看待,其中各第一值具有一值位置(value position)來表示其位置或位址。由於字元在一些電子裝置或計算機中可被編碼為數位值(digital value)是很尋常的,所以字元確實可被當作值來看待。在第一例中,如第3圖所示,假設第一序列是包括字元的「stationery」。
在步驟S203中,由處理系統10執行,提供屬於多個群組的多個儲存點,且各群組包括一或多個儲存點。各索引群組可包括相同數量或不同數量的儲存點。例如,在一實施例中,有些索引群組包括一索引儲存點,且其他索引群組包括二個或二個以上索引儲存點。也就是說,各索引群組包括的索引儲存點的數量可為相互不同的。在另一實施例中,各索引群組包括三個索引儲存點,而使得各個索引群組包括的索引儲存點的數量為相同的,但本發明不以此為限。僅是為了說明,在第3圖所示的第一例中,假設索引儲存點分別屬於十三個索引群組0~12,且各索引群組包括二個索引儲存點。
在步驟S205中,對於各儲存點,由處理系統10執行一符號推導裝填程序。對於各儲存點,符號推導裝填程序包括步驟S2051~S2057。
在步驟S2051中,由處理系統10執行,推導(derive)一或多個秘密指標,各秘密指標指向此些第一值的其中之一。在索引儲存點之間,為各索引儲存點所推導的索引秘密指標的數量可相同或不相同,且索引秘密指標可基於秘密來源(secret source)而被推導出來,秘密來源諸如以下的至少其中之一:預先裝填有值的記憶體片段、演算 法的輸出值,所述演算法的輸入為下列至少其中之一:一秘密金鑰(secret key)、一秘密詞(secret phrase)、一用戶識別碼(user identification)、一位置識別碼(location identification)及一時間識別碼(time identification)。然而,僅是為了說明,在第一例中,各索引儲存點的索引秘密指標的數量是被預先決定為相同的,且等於二。例如,第一例中的索引群組0的上方索引儲存點,索引秘密指標分別指向值位置「4」及「8」。
在步驟S2053中,由處理系統10執行,藉由組合被秘密指標指到的一或多個第一值以形成一代碼。例如,在第一例中的索引群組0的上方索引儲存點中,因為「i」被索引秘密指標「4」指到且「r」被索引秘密指標「8」指到,藉由將第一值中的「i」及「r」放(或組合)在一起而形成了對應的索引代碼「ir」。
在步驟S2055中,由處理系統10執行,映射代碼至一符號。例如在第一例中的索引群組0的上方索引儲存點,對應的索引代碼「ir」被映射至一索引符號「i」。然而,本領域的技術者熟知,符號(symbol)也是值(value),而在本例中,符號被以一字元所表示僅作為說明之用,本發明並不限定用以表示特定符號的字元數量。亦即,一符號可使用一或多個字元來表示。
映射代碼至符號(mapping-token-into-symbol)的程序可藉由確定性函數(deterministic function)而被執行,亦即相同的代碼將會映射到相同的符號。上述的程序可藉由(但不限於)以下方式實現:查表(look-up table)、值映射演算法(value-mapping algorithm)、安全 雜湊演算法(secure hashing algorithm,SHA)、金鑰雜湊訊息識別碼(keyed-hash message authentication code,HMAC)、加密演算法(encryption algorithm)、次序保存加密(Order-Preserving Encryption,OPE)或其組合。例如,在第3圖所示的第一例中,使用的函數是將具有二個base64的字元的代碼映射至具有一個base64字元的符號。
在步驟S2057中,由處理系統10執行,將符號裝填入對應的儲存點。例如,第一例中的索引群組0的上方索引儲存點被裝填入索引符號「i」。其他索引儲存點也會以相同於上述的方式裝填。
在步驟S207中,由處理系統10執行,藉由撿取裝填於對應群組的此一或多個儲存點的此一或多個符號為各群組結合出一佇列。在一實施例中,各索引群組的索引佇列是藉由撿取所有儲存於對應索引群組的索引儲存點內的索引符號所形成。在一實施例中,此撿取的步驟是根據一隨機序列(random sequence)而被執行,藉以決定索引符號放入索引佇列的順序。隨機序列是藉由輸入下列至少其中之一:一種子(seed)、一秘密金鑰、一秘密詞、一用戶識別碼、一位置識別碼及一時間識別碼,到一偽隨機產生演算法(pseudo random generation algorithm)而產生。
在第一例中,如第3圖所示,於索引群組0,上方索引儲存點中的索引符號「i」被隨機地決定為第一個撿取,且下方索引儲存點中的索引符號「X」被決定為第二個撿取,而形成索引佇列「iX」;於索引群組1,上方索引儲存點中的索引符號「V」被隨機地決定為第 一個撿取,且下方索引儲存點中的索引符號「O」被決定為第二個撿取,而形成索引佇列「VO」。其他的索引佇列也以相同的方式而被產生。
在步驟S209中,由處理系統10執行,藉由連結為各群組所結合的佇列產生第一序列的一安全替代表示碼。在一實施例中,安全替代表示碼是基於所有索引群組的索引佇列而產生。在一實施例中,步驟S209藉由組合(concatenate)索引佇列而被執行,其中「組合」可通過依據隨機序列決定各索引群組的索引佇列的組合順序而被執行,且隨機序列可藉由輸入下列至少其中之一:一種子、一秘密金鑰、一秘密詞、一用戶識別碼、一位置識別碼及一時間識別碼,到一偽隨機產生演算法而產生。然而,僅是為了說明,在第3圖所示的例子中,是將索引群組0的索引佇列到索引群組12的索引佇列依序地進行組合。
產生的安全替代表示碼是被用作第一序列的安全索引。在第3圖所示的第一例中,所產生的安全索引為「iXVOUaaz8/Hhy136zQp+8sGaO+」。
僅是為了說明,在第3圖所示的例子中,各索引群組具有二個索引儲存點,且有二個索引秘密指標被產生而用於各儲存點。因此,對應的儲存點的二個索引秘密指標所指到的第一值的其中二個係形成了各索引代碼。各索引群組的索引佇列是藉由撿取所有儲存於對應索引群組的索引儲存點內的索引符號所形成。然而,本發明並不以此為限。
需要注意的是,即使第一序列的各第一值被以一字元表示,仍是對應於一特定值,且對於各符號亦是如此。然而,將特定值 映射到各個字元或各個符號所用的編碼可為相同或不相同。例如,在一實施例中,字元是以ASCII碼編碼為英文字母,而符號則是以base64進行編碼。在另一實施例中,字元是以base64進行編碼,而符號則是以ASCII碼編碼為英文字母。在又一實施例中,字元是以UTF8字母編碼,而符號則是以base64進行編碼。在又一實施例中,字元與符號皆根據相同的標準進行編碼,例如base64編碼。因此,依據不同應用的要求,字元與符號的字母編碼對(pair)可為任何組合且皆可達到本發明所要的效果。亦即,產生的安全索引可將第一序列隱藏起來。
此外,第3圖中的例子是使用公開標準演算法以映射代碼至符號。在第3圖中,雖然沒有明確地說明,映射代碼至符號的程序是使用HMAC。藉由使用HMAC,索引代碼的長度可為不固定的,但經過HMAC的程序後輸出的長度則是固定的(例如32位元組)。然而,在一些應用中,若直接使用這些輸出,長度可能會過長。這是因為長的索引符號會產生長索引,而長索引在一些應用或系統是不被予許的。僅是為了說明這樣的實際考量,在本示例性的實施例中,只採用擷取(extract)輸出的一部分(例如,以base64表示的單一字元)作為索引符號,但本發明不限於此。
不僅如此,除了採用擷取的方式,為了產生所期望的長度較短的符號,在一些實施例中可將映射後的長輸出的位元組進行合併(merge)。例如,可使用諸如循環冗餘校驗(Cyclic Redundancy Check,CRC)、校驗和(checksum)、模除(modulo)等的演算法。眾所 周知,所述擷取與合併的過程通常能導致多對一函數,而多對一函數具有如下文所揭露的額外益處。
在一些實施例中,代碼映射至符號的程序是藉由一多對一函數執行。在這樣的設置下,多個不同的索引代碼可能會映射至一相同的索引符號。由於多對一函數是不可逆的,這樣的映射方式可使得產生的結果是不可逆的,進而使得安全索引更加安全。然而,即使在一些實施例中映射代碼至符號程序是藉由一雙射函數(bijection function)或單射函數(injection function)被執行,只要「映射代碼至符號」的函數沒有被洩漏給攻擊者,索引代碼仍是被隱藏的。在不知道真實索引代碼的情況下,產生的結果仍是不可逆的,遑論在索引秘密指標也是保密的情況時。因此,隱藏第一序列的第一值的效果是能確實達到。
請參照第4圖,第4圖繪示依據本發明的一實施例的第二例產生安全索引的示意圖。如第4圖所示,第一序列被設為「stationary」,與第3圖中的第一例的「stationery」有些微不同。藉由使用第2圖所示的方法,輸出的安全索引為「kiVGUwza/8Hhy136Qzm+s8Ga+O」。相較於第3圖中所產生的安全索引(即「iXVOUaaz8/Hhy136zQp+8sGaO+」),可發現輸入的第一序列之間的些微不同會被放大於輸出的安全索引之間的差異。
請參照第2圖,並同時參照第5圖,底下將對使用第2圖所示的方法產生用作安全暗門的安全替代表示碼的實施例進 行說明。需要注意的是,在產生安全暗門的實施例中,第一序列會被用作一查詢字。因此,為清楚說明,「第一序列」會以「查詢字」代替,因為在產生安全暗門的情況中,這兩個描述是等效的。
作為查詢字,在步驟S201中,第一序列的第一值被允許包括一或多個萬用字元(wildcard),萬用字元可用以代表任何值。在一些實施例中,萬用字元可代表一任意值。在第5圖所示的第三例中,作為示例,查詢字被設為「station‘?ry」,其中「?」是一個萬用字元。需要注意的是,用以表示萬用字元的字元可依據情況而有所不同。在SQL中,字元「_」被用來代表任意字元,而不是「?」。同樣需要注意的是,在一些其他實施例中,其他種類的萬用字元例如「*」或「%」也可用來表示零、一或多個任意字元而被用在查詢字中。這樣的查詢字可藉由多個查詢字來描述,這些查詢字包含了數量漸增的萬用字源,而各個萬用字元代表一任意值。例如,一給定的查詢字「station*y」包括一代表零、一或多個任意值的萬用字元「*」,而查詢字「stationy」、「station?y」、「station??y」等皆可用以描述查詢字「station*y」所要描述的意思。因此,本實施例藉由上述方式是能夠支援用以代表任意字元的萬用字元的。
在產生安全暗門時,步驟S203、S2051以及S2053的細節與產生安全索引時是相同的。
在步驟S2055中,由於查詢字可包括一或多個萬用字元(即「?」),有些暗門代碼會包括一或多個萬用字元。例如,在第三例 中,那些對應於各暗門儲存點中具有指向值位置7的至少一暗門秘密指標的暗門代碼。在這種情況下,包括萬用字元的暗門代碼將無法映射至暗門符號,而對應的暗門符號會被視為不可得(not available,N/A)或不存在(not existing)。
在步驟S2057中,如上文所提到的,在暗門代碼包括萬用字元的情況下,對應的暗門符號被認為是不存在,因而對應的暗門儲存點將不會被裝填。例如,如第5圖所示,暗門群組2及9的上方暗門儲存點以及暗門群組0及1的下方暗門儲存點皆未被裝填。
在一實施例中,當一或多個秘密指標的至少其中之一指到一或多個萬用字元的至少其中之一,或者當一對應形成的代碼含有至少一萬用字元,實施於含有至少一萬用字元的對應形成的代碼所對應的暗門儲存點的符號推導裝填程序會中斷(或停止)(halt)。
在步驟S207中,各暗門群組生成的暗門佇列是通過撿取一或至多一儲存於暗門儲存點的暗門符號(若暗門符號存在)形成。撿取的執行可為隨機的。例如,如第5圖所示,對於暗門群組0,「i」從上方暗門儲存點中被撿取;對於暗門群組1及2,沒有暗門符號被撿取,以此類推。在這個例子中,形成了六個暗門佇列,且各個暗門佇列包括一暗門符號。換言之,在產生安全暗門時,有些暗門群組可不提供暗門符號,而有些暗門群組則提供一暗門符號。
在步驟S209中,安全暗門基於所有產生的暗門佇列而產生。例如,如第5圖所示,產生的安全暗門「ia/38+」可用以代表查詢字「station?ry」。明顯地,代表查詢字「station?ry」的安全暗門「ia/38+」 同時是第一序列「stationery」的安全索引「iXVOUaaz8/Hhy136zQp+8sGaO+」及第一序列「stationary」的安全索引「kiVGUwza/8Hhy136Qzm+s8Ga+O」的一子序列(sub-sequence)。換言之,藉由一字串比對(string matching)程序便可在不顯露真實查詢字給攻擊者或伺服器90的情況下將安全暗門關聯到所要的安全索引。也就是說,藉由第2圖所示的方法所產生的安全索引是可被搜尋的。
與產生安全索引的方法類似,基於隱私的考量,儲存點、群組、秘密指標、映射方式以及偽隨機產生器的設置(configuration)皆應該被保密。只要這些設置是保密的,所產生的安全暗門便是查詢字的安全替代表示碼。一般而言,用於產生安全暗門的設置要與用於產生安全索引的設置相同,以使得產生的安全索引可被安全暗門所搜尋。
暗門佇列的數量可為預先決定的,或是隨機產生的。在一些實施例中,暗門佇列的數量是預先決定的。然而,在這些實施例中,由於查詢字存在有萬用字元會導致有些暗門代碼沒有對應的暗門符號,故所形成的暗門佇列的數量可能會少於預先決定的數量,而使得所產生的安全暗門的長度短於其他的安全暗門。這樣的差異可被看成是否有使用萬用字元的線索。即便如此,這樣的線索仍無法被用來推導出查詢字。在一些實施例中,暗門佇列的數量是隨機產生的,能夠令攻擊者或伺服器90對於是否有使用萬用字元或者僅是由於隨機產生的暗門佇列數量產生混淆。
撿取暗門符號的執行方式可為固定的或是隨機的。當執行方式是固定的,相同的查詢字會撿取相同的暗門符號。當執行方式是隨機的,相同的查詢字可能會撿取不同的暗門符號。需要注意的是,若一個查詢字只能產生一個安全暗門,使用同一個安全暗門兩次將提供此安全暗門有被再次使用的線索。即使這樣的線索無法被用來推導出查詢字,一個查詢字可產生多種可能的安全暗門仍被認為是更加安全的,這將使得同一個查詢字是否有重複被使用的線索被隱藏起來。
請參照第6圖及第7圖,第6圖及第7圖分別是第四例及第五例,用以說明產生安全暗門。僅是為了說明,第5、6及7圖所示的設置與第3及4圖所示的設置是相同的,以使得產生的安全暗門可辨識所產生的一或多個安全索引。在第6圖所示的第四例中,查詢字為「station??y」,安全暗門為「V/yQaO」。在第7圖所示的第五例中,查詢字為「statione??」,安全暗門為「Xay3pO」。
請參照第8圖及第9圖,第8圖及第9圖繪示字串比對程序的兩例。如第8圖所示,代表查詢字「station??y」的安全暗門「V/yQaO」同時是第一序列「stationary」的安全索引「kiVGUwza/8Hhy136Qzm+s8Ga+O」及第一序列「stationery」的安全索引「iXVOUaaz8/Hhy136zQp+8sGaO+」的子序列。由於「stationery」與「stationary」皆應在明文(plaintext)下被「station??y」字串比對到,故此結果是正確的。如第9圖所示,代表查詢字「statione??」的安全暗門「Xay3pO」不是第一序列「stationary」的安全索引「kiVGUwza/8Hhy136Qzm+s8Ga+O」 的一子序列,但是第一序列「stationery」的安全索引「iXVOUaaz8/Hhy136zQp+8sGaO+」的一子序列。也就是說,當使用查詢字「statione??」搜尋時,只有代表第一序列「stationery」的安全索引會被辨識出來。由於只有「stationery」應被「statione??」關連到,故此結果也是正確的。換言之,如上所述,所產生的安全索引可正確地藉由所產生的安全暗門搜尋到。此些實施例將可被應用到伺服器90。例如,真實的第一序列「stationery」、「stationary」及真實的查詢字只有用戶知道。於儲存的時候,用戶以安全索引代替對應的第一序列儲存到伺服器90。於搜尋的時候,用戶以安全暗門代替查詢字傳送至伺服器90。因此,由於伺服器90可使用安全暗門作為線索去辨識所要的安全索引,就無須將第一序列暴露給伺服器90,而使得隱私能夠得到保護。
請參照第10圖,第10圖繪示依據本發明的另一實施例的第六例產生安全索引的示意圖。在第六例中,將說明使用不規則的設置以產生安全索引的例子。需要注意的是,在此例中,這樣的設置將不同於第3圖所示的第一例,且更加具有一般性,但仍是建立在第2圖所示的方法上。
索引群組中的索引儲存點的數量可為不同的。例如,三個索引儲存點屬於索引群組0;二個索引儲存點屬於索引群組1,以此類推。用於裝填索引儲存點而推導出的索引秘密指標的數量可為不同的。例如,於索引群組0,用於裝填第一個索引儲存點(左邊者),二個 索引秘密指標被使用;用於裝填第二個索引儲存點(中間者),一個索引秘密指標被使用;用於裝填第三個索引儲存點(右邊者),三個索引秘密指標被使用。在映射代碼到符號的程序之後,各索引儲存點被裝填了一個索引符號。對於各索引群組,一索引佇列藉由撿取此一或多個索引儲存點中的所有索引符號並加以結合得出。
如第10圖中的第六例所示,索引佇列可以不規則的方式組合以產生安全索引。例如,第一個被放置的是索引群組2形成的索引佇列,第二個被放置的是索引群組1形成的索引佇列,以此類推。根據這樣的設置,安全索引「spTkgw+4oAzq8」被產生來代表第一序列「stationery」。
請參照第11圖,第11圖繪示依據本發明的另一實施例的第七例產生安全索引的示意圖。第七例所用的設置相同於第10圖中第六例所用的設置。在第七例中,安全索引「spG/gw+4oAzq8」被產生來代表第一序列「stationary」。請參照第12圖,第12圖繪示依據本發明的另一實施例的第八例產生安全暗門的示意圖。第八例所用的設置相同於第10、11圖中的例子所用的設置。在第八例中,安全暗門「pg+4q」被產生來代表查詢字「station?ry」。基於安全暗門「pg+4q」同時是安全索引「spTkgw+4oAzq8」及安全索引「spG/gw+4oAzq8」的一子序列,安全暗門可被用來正確辨識此二安全索引。
在一些情況中,被用來當作要輸入的第一序列的一個由值組成的序列太短以至於在辨識其對應之安全索引時,若查 詢字包括萬用字元,將會被短的安全暗門所辨識。例如,當一第一序列只包括三個第一值,對應的查詢字將也只能至多包括三個第一值。但是,當一或多個萬用字元被用於此查詢字中時,出現包括有萬用字元的暗門代碼的機率將因為對應的暗門秘密指標有高機率指向第一序列中的萬用字元而隨之升高。根據本方法,這將導致安全暗門具有非預期的短長度(unexpectedly short length)。在這種情況下,假陽性(False Positive)可能會發生在基於本發明的辨識索引的過程中。也就是說,可能會有一或多個安全索引被短的安全暗門錯誤地辨識出來。這類事件有時會被認為是在隱私的考量上有建設性幫助的,因為這類事件能夠進一步混淆什麼才是要被搜尋的目標。
然而,若考量效率,這些可能出現的包括有萬用字元的短查詢字若直接被用來搜尋所述由值組成的短序列,可能降低辨識程序的精確性。換言之,如前文段落所提到的,當一或多個萬用字元被用於查詢字中,可能會出現很多包括有一或多個萬用字元的暗門代碼,導致安全暗門具有非預期的短長度而增加假陽性的事件。為了避免使用這類的短第一序列,所述由值組成的短序列可被看作是一第二序列,而具有較長的長度的第一序列可從第二序列延展而得到。在一些實施例中,第一序列可根據第二序列推導而得。例如,第一序列可包含根據以下至少其中之一推導而得的值:第二序列的值、第二序列的長度、一秘密金鑰、一秘密詞、一用戶辨識碼、一位置辨識碼以及一時間辨識碼。細節將在下文詳述。
第13圖繪示依據本發明的一實施例的第九例序列延展的示意圖。在此例中,第二序列為「app」,延展之後,第一序列為「app000000」。也就是說,在此例中,序列延展是藉由保留短序列並附加多個推導獲得的值來完成,其中這些推導獲得的值以字元表示。在這個例子中,此些附加的值是以函數F根據第二序列的長度推導而得。
第14圖繪示依據本發明的一實施例的第十例序列延展的示意圖。在此例中,序列延展是藉由保留短序列並附加藉由推導所獲得的一偽隨機序列來完成,而不是固定的值/字元,其中此偽隨機序列由值或字元組成。在這個例子中,這個由值/字元組成的偽隨機序列是以函數G根據第二序列的長度推導而得。
第15圖繪示依據本發明的一實施例的第十一例序列延展的示意圖。在此例中,序列延展是藉由保留短序列並附加以函數H推導獲得一或多個值/字元來完成。在這個例子中,各個附加的值/字元是以函數H根據第二序列中特定位置的值/字元推導而得。這樣的函數強調特定值/字元位置的「權重(weight)」。如果有越多的索引符號與第二個序列中特定的值/字元位置相關,則這些值/字元位置對索引識別的結果有更大的影響。在這個例子中,位於值/字元位置i的一推導出的值/字元是由第二序列的值/字元位置(i mod word-length)的值/字元推導而來,故由推導獲得的值/字元相依於對應的第二序列的值/字元,其中(i mod word-length)即i模除序列長度,序列長度指的是第二序列的長度。
由於短查詢字具有相似於短序列的特性,序列延展(例如上述的函數F、G及H)也可應用於短查詢字,以使得查詢字可從短查詢字推導而得。當短查詢字包括一或多個萬用字元時,每個對應於萬用字元所推導的值也會是一個萬用字元。
請參照第16圖,第16圖繪示二維資料的一例。二維(two dimension,2D)資料70是一個11×13的灰階(gray scaled)圖片。二維資料70可被看作是第17圖所示的一維資料72。例如,在逐行(row)序列化(serialize)後,二維資料70可表示為具有一百四十三個整數值的第一序列。假設最暗的顏色被編碼為230,次暗的顏色被編碼為120,第三暗的顏色被編碼為50,且白色被編碼為0。由值組成的第一序列可被表示為[0,0,230,230,...,0]。
根據本方法,索引代碼可藉由將被索引祕密指標指向的一或多個值結合在一起而產生。在一些實施例中,當索引儲存點具有指向值位置21、14及135的索引秘密指標以形成特定索引代碼時,那麼此索引代碼即是一三元(3-tuple)向量(120,230,0);當另一索引儲存點具有指向值位置22及11的索引秘密指標以形成特定索引代碼時,那麼此一索引代碼即是一二元向量(120,0)。根據本發明,索引符號需要由索引代碼推導。如前面提到的,此種映射代碼到符號的程序可為藉由查表、值映射演算法、SHA、HMAC、加密演算法、OPE或其組合所實現的一函數。
在一些實施例中,代碼映射的程序是一值映射演算法,此種映射程序藉由一非線性函數決定性地映射一給定的索引代碼至一值。一種簡單的非線性函數使用一種稱為桶(bucketing)的技術。例如,如第18圖所示,為二元向量(72,14)的一索引代碼可被映射到「Z」;而為二元向量(23,45)的索引代碼可被映射到「R」。具有多於二元的索引代碼則要求非線性函數是多維度的。此類非線性函數的維度可從二(如第18圖所示)擴展到二以上。
在一些實施例中,代碼映射的程序包括OPE。由於OPE具有以下特性:當一A值大於一B值時,OPE(A)的值也會大於OPE(B)的值,其中OPE(n)為將n帶入OPE函數所得的值。簡而言之,OPE可保留大小關係,且可用來將代碼映射為具有與代碼大小(magnitude)成比例的值。在一實施例中,代碼的大小是代碼中所有值的總和。而在另一實施例中,代碼的大小是代碼中所有值加權後的總和。由於OPE保留代碼大小之間的大小關係,因而可使用數字比對(numerical pattern matching)來取代字串比對。
需要注意的是,在第16圖中,雖然灰階圖片被用作例子來說明本概念,但本方法也可應用於諸如具有紅(R)、綠(G)、藍(B)值的彩色像素的圖片。將R、G及B值轉換為灰階值的公式是眾所周知的。值得一提的是,從彩色圖片生成灰階圖片作為索引可強調「輪廓」比對,這在準確的顏色不是主要考量的情況下通常是很實用的。此外,雖然出於說明的目的,範例的圖片尺寸只有11×13,但任何解析度的圖 片皆為了索引的目的而被縮放到一固定的參考尺寸。考量到本方法所致能的資料取回機制,實際解析度的圖片可被獨立加密。
在一些實施例中,如第19圖所示,心跳頻率的每日記錄80將此人的工作量可視化,且或多或少可用來提示改善生活的方式。然而,此種記錄被洩漏給惡意團體時,也提供了此人所做過的活動的線索。這樣的資料被認為是私密的,且會建議在儲存到遠端儲存空間前進行加密。為了方便之後進行檢索,可藉由本發明來索引化。此類一維資料可簡單地轉換為由值構成的序列,當這個由四十八個整數值所構成的第一序列依據本發明的實施例進行轉換後,一具有特定長度的安全索引將可被產生。
總結來說,本發明揭露一種產生安全替代表示碼的方法、計算機程式產品及處理系統。藉由使用依據本發明的方法,第一序列可被轉換為安全索引,而查詢字可被轉換為安全暗門,以隱藏相關資訊;其中安全暗門可作為線索,在不暴露查詢字及第一序列的前提下用來辨識一或多個安全索引;其中查詢字可包括萬用字元,且每個萬用字元可代表一任意值。
上述的說明與實施例僅僅是示例性的而已。對於本領域的技術人員而言,當可根據本發明所揭露的實施例進行各種修改與變化,且這些修改與變化皆應被認為是包括在藉由申請專利範圍所定義的本發明的諸多實施例的範圍之中。

Claims (21)

  1. 一種產生安全替代表示碼方法,應用在一處理系統,所述方法包括:由所述處理系統提供包括複數個第一值的一第一序列;由所述處理系統提供屬於複數個群組的複數個儲存點,其中各所述群組包括一或多個所述儲存點;對於各所述儲存點,由所述處理系統執行一符號推導裝填程序,包括:由所述處理系統推導一或多個秘密指標,各所述秘密指標指向所述第一值的其中之一;由所述處理系統藉由組合被所述秘密指標指到的一或多個所述第一值形成一代碼;由所述處理系統映射所述代碼至一符號;以及由所述處理系統裝填所述符號至對應的儲存點;由所述處理系統藉由撿取裝填於對應群組的所述儲存點的所述符號為各所述群組結合出一佇列;以及由所述處理系統藉由連結為各所述群組所結合的所述佇列產生所述第一序列的一安全替代表示碼。
  2. 如申請專利範圍第1項所述之方法,其中為各所述群組結合出所述佇列的步驟是藉由撿取裝填於對應群組的所述儲存點的所有所述符號,且產生的所述安全替代表示碼被用作一安全索引。
  3. 如申請專利範圍第1項所述之方法,其中為各所述群組結合出所述佇列的步驟是藉由撿取裝填於對應群組的所述儲存點的所述符號的至多其中之一,且產生的所述安全替代表示碼被用作一安全暗門。
  4. 如申請專利範圍第3項所述之方法,其中所述第一值包括一或多個萬用字元,所述萬用字元用以表示任何值;且當所述秘密指標的至少其中之一指到所述萬用字元的至少其中之一,或者一對應形成的代碼包括所述萬用字元的至少其中之一,實施於含有所述萬用字元的至少其中之一的所述對應形成的代碼所對應的儲存點的所述符號推導裝填程序中斷。
  5. 如申請專利範圍第1項所述之方法,其中所述第一值為用以表示文字資料的複數個字元,或者為用以表示數字資料的複數個數值。
  6. 如申請專利範圍第1項所述之方法,其中用於所述儲存點的各所述秘密指標是由下列至少其中之一所推導出:預先裝填有值的記憶體的一片段、一演算法,所述演算法的一輸入為下列至少其中之一:一秘密金鑰、一秘密詞、一用戶識別、一位置識別及一時間識別。
  7. 如申請專利範圍第1項所述之方法,其中映射所述代碼至所述符號的步驟藉由以下至少其中之一執行:一查表、值映射演算法、安全雜湊演算法、金鑰雜湊訊息識別碼、加密演算法、次序保存加密或其組合。
  8. 如申請專利範圍第1項所述之方法,其中所述第一序列是藉由延展一第二序列所推導出,所述第一序列包括複數個值,所述值是由下列至少其中之一所推導:所述第二序列的所述值、所述第二序列的長度、一秘密金鑰、一秘密詞、一用戶辨識碼、一位置辨識碼以及一時間辨識碼。
  9. 如申請專利範圍第1項所述之方法,其中為各所述群組結合出所述佇列的步驟是依據一隨機序列以決定所述一或多符號被撿取並放置於所述佇列的一順序,且所述隨機序列是藉由輸入下列至少其中之一至一偽隨機產生演算法而產生:一種子、一秘密金鑰、一秘密詞、一用戶辨識碼、一位置辨識碼以及一時間辨識碼。
  10. 如申請專利範圍第1項所述之方法,其中於產生所述安全替代表示碼步驟中的連結是依據一隨機序列以決定各所述群組的所述佇列的一連結順序,且所述隨機序列是藉由輸入下列至少其中之一至一偽隨機產生演算法而產生:一種子、一秘密金鑰、一秘密詞、一用戶辨識碼、一位置辨識碼以及一時間辨識碼。
  11. 一種計算機程式產品,包括一非暫時性計算機可讀媒體,所述非暫時性計算機可讀媒體儲存有一計算機可讀程式,其中當所述計算機可讀程式被一處理系統執行時,使所述處理系統執行:提供包括複數個第一值的一第一序列;提供屬於複數個群組的複數個儲存點,其中各所述群組包括一或多個所述儲存點;對於各所述儲存點,執行一符號推導裝填程序,包括:由所述處理系統推導一或多個秘密指標,各所述秘密指標指向所述第一值的其中之一;組合被所述秘密指標指到的一或多個所述第一值形成一代碼;映射所述代碼至一符號;以及裝填所述符號至對應的儲存點;藉由撿取裝填於對應群組的所述儲存點的所述符號為各所述群組結合出一佇列;以及藉由連結為各所述群組所結合的所述佇列產生所述第一序列的一安全替代表示碼。
  12. 如申請專利範圍第11項所述之計算機程式產品,其中為各所述群組結合出所述佇列的步驟是藉由撿取裝填於對應群組的所述儲存點的所有所述符號,且產生的所述安全替代表示碼被用作一安全索引。
  13. 如申請專利範圍第11項所述之計算機程式產品,其中為各所述群組結合出所述佇列的步驟是藉由撿取裝填於對應群組的所述儲存點的所述符號的至多其中之一,且產生的所述安全替代表示碼被用作一安全暗門。
  14. 如申請專利範圍第13項所述之計算機程式產品,其中所述第一值包括一或多個萬用字元,所述萬用字元用以表示任何值;且當所述秘密指標的至少其中之一指到所述萬用字元的至少其中之一,或者一對應形成的暗門代碼包括所述萬用字元的至少其中之一,實施於含有所述萬用字元的至少其中之一的所述對應形成的暗門代碼所對應的暗門儲存點的所述符號推導裝填程序中斷。
  15. 如申請專利範圍第11項所述之計算機程式產品,其中所述第一值為用以表示文字資料的複數個字元,或者為用以表示數字資料的複數個值。
  16. 如申請專利範圍第11項所述之計算機程式產品,其中用於所述儲存點的各所述秘密指標是由下列至少其中之一所推導:預先裝填有值的記憶體的一片段、一演算法的一輸出值,所述演算法的一輸入為下列至少其中之一:一秘密金鑰、一秘密詞、一用戶識別、一位置識別及一時間識別。
  17. 如申請專利範圍第11項所述之計算機程式產品,其中映射所述代碼至所述符號的步驟藉由以下至少其中之一執行:一查表、值映射演算法、安全雜湊演算法、金鑰雜湊訊息識別碼、加密演算法、次序保存加密或其組合。
  18. 如申請專利範圍第11項所述之計算機程式產品,其中所述第一序列是藉由延展一第二序列所推導,所述第一序列包括推導的複數個值,所述值是由下列至少其中之一所推導:所述第二序列的所述值、所述第二序列的長度、一秘密金鑰、一秘密詞、一用戶辨識碼、一位置辨識碼以及一時間辨識碼。
  19. 如申請專利範圍第11項所述之計算機程式產品,其中為各所述群組結合出所述佇列的步驟是依據一隨機序列以決定所述一或多符號被撿取並放置於所述佇列的一順序,且所述隨機序列是藉由輸入下列至少其中之一至一偽隨機產生演算法而產生:一種子、一秘密金鑰、一秘密詞、一用戶辨識碼、一位置辨識碼以及一時間辨識碼。
  20. 如申請專利範圍第11項所述之計算機程式產品,其中於產生所述安全替代表示碼步驟中的連結是依據一隨機序列以決定各所述群組的所述佇列的一連結順序,且所述隨機序列是藉由輸入下列至少其中之一至一偽隨機產生演算法而產生:一種子、一秘密金鑰、一秘密詞、一用戶辨識碼、一位置辨識碼以及一時間辨識碼。
  21. 一種處理系統,用以產生安全替代表示碼,包括:一或多個處理單元;以及一或多個儲存單元,耦接至所述處理單元,其中所述儲存單元包括複數個指令,當所述指令被所述處理單元執行時,使所述處理單元執行:提供包括複數個第一值的一第一序列;提供屬於複數個群組的複數個儲存點,其中各所述群組包括一或多個所述儲存點;對於各所述儲存點,執行一符號推導裝填程序,包括:由所述處理系統推導一或多個秘密指標,各所述秘密指標指向所述第一值的其中之一;藉由組合被所述秘密指標指到的一或多個所述第一值形成一代碼;映射所述代碼至一符號;以及裝填所述符號至對應的儲存點;藉由撿取裝填於對應群組的所述儲存點的所述符號為各所述群組結合出一佇列;以及藉由連結為各所述群組所結合的所述佇列產生所述第一序列的一安全替代表示碼。
TW106146377A 2017-12-19 2017-12-29 產生安全替代表示碼的方法、計算機程式產品及處理系統 TWI664849B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/847,298 2017-12-19
US15/847,298 US10831911B2 (en) 2017-12-19 2017-12-19 Method, computer program product and processing system for generating secure alternative representation

Publications (2)

Publication Number Publication Date
TWI664849B true TWI664849B (zh) 2019-07-01
TW201929478A TW201929478A (zh) 2019-07-16

Family

ID=61683572

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106146377A TWI664849B (zh) 2017-12-19 2017-12-29 產生安全替代表示碼的方法、計算機程式產品及處理系統

Country Status (3)

Country Link
US (1) US10831911B2 (zh)
EP (1) EP3502947B1 (zh)
TW (1) TWI664849B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188594B2 (en) * 2018-02-07 2021-11-30 Oracle International Corporation Wildcard searches using numeric string hash
US11373005B2 (en) * 2020-08-10 2022-06-28 Walkme Ltd. Privacy-preserving data collection

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373500B2 (en) * 2003-04-15 2008-05-13 Sun Microsystems, Inc. Secure network processing
US20100042846A1 (en) * 2008-08-13 2010-02-18 Trotter Douglas H Trusted card system using secure exchange
CN102916963A (zh) * 2012-10-26 2013-02-06 中国人民解放军信息工程大学 一种数据安全交换方法、装置、节点及系统
CN103118089A (zh) * 2013-01-22 2013-05-22 华中科技大学 一种基于多个云存储系统的安全存储方法及其系统
US20140331044A1 (en) * 2011-12-01 2014-11-06 Hitachi, Ltd. Secure search method and secure search device
CN107426075A (zh) * 2017-09-05 2017-12-01 吉林大学 基于多路can总线和以太网通信的安全网关及通信方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW333630B (en) 1996-05-22 1998-06-11 Matsushita Electric Ind Co Ltd An encryption apparatus for ensuring security in communication between devices
TWI381696B (zh) 2006-10-06 2013-01-01 Univ Chang Gung 基於利用個人化秘密的rsa非對稱式密碼學之使用者認證
US9355273B2 (en) 2006-12-18 2016-05-31 Bank Of America, N.A., As Collateral Agent System and method for the protection and de-identification of health care data
KR100903601B1 (ko) 2007-10-24 2009-06-18 한국전자통신연구원 암호화된 수치 데이터 검색 시스템 및 그 방법
KR101302137B1 (ko) 2009-12-16 2013-09-16 한국전자통신연구원 대칭 키 기반 검색 가능 암호 방법
US8694646B1 (en) 2011-03-08 2014-04-08 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US8726398B1 (en) 2011-12-13 2014-05-13 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
JP6011533B2 (ja) 2011-07-07 2016-10-19 日本電気株式会社 情報処理装置、情報処理方法およびプログラム
JP5942991B2 (ja) 2011-07-29 2016-06-29 日本電気株式会社 情報漏えいに耐性を持つインデックス生成システム及びインデックス生成装置並びにその方法
TW201411393A (zh) 2012-09-10 2014-03-16 Univ Nan Kai Technology 亂數偏移之加密系統及其方法
TW201426684A (zh) 2012-12-27 2014-07-01 Chunghwa Telecom Co Ltd 以多次加密進行數字加密之方法
US10282448B2 (en) * 2014-11-18 2019-05-07 Huawei International Pte. Ltd. System and method for searching a symmetrically encrypted database for conjunctive keywords
CN104731860B (zh) 2015-02-04 2017-11-14 北京邮电大学 隐私保护的空间关键字查询方法
US10404669B2 (en) 2015-06-09 2019-09-03 Skyhigh Networks, Llc Wildcard search in encrypted text
US9760637B2 (en) 2015-09-11 2017-09-12 Skyhigh Networks, Inc. Wildcard search in encrypted text using order preserving encryption
US9800558B2 (en) 2015-10-01 2017-10-24 Sap Se Frequency-hiding order-preserving encryption
CN105681280B (zh) 2015-12-29 2019-02-22 西安电子科技大学 一种云环境中基于中文的可搜索加密方法
WO2017139761A1 (en) 2016-02-12 2017-08-17 Valentine Edmund L Opioid+device combination products with improved safety and efficacy profiles
US9967096B2 (en) * 2016-05-23 2018-05-08 Accenture Global Solutions Limited Rewritable blockchain
TWI602077B (zh) 2017-02-06 2017-10-11 蓋特資訊系統股份有限公司 資料保護方法與系統
US10404454B1 (en) * 2018-04-25 2019-09-03 Blockchain Asics Llc Cryptographic ASIC for derivative key hierarchy

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373500B2 (en) * 2003-04-15 2008-05-13 Sun Microsystems, Inc. Secure network processing
US20100042846A1 (en) * 2008-08-13 2010-02-18 Trotter Douglas H Trusted card system using secure exchange
US20140331044A1 (en) * 2011-12-01 2014-11-06 Hitachi, Ltd. Secure search method and secure search device
CN102916963A (zh) * 2012-10-26 2013-02-06 中国人民解放军信息工程大学 一种数据安全交换方法、装置、节点及系统
CN103118089A (zh) * 2013-01-22 2013-05-22 华中科技大学 一种基于多个云存储系统的安全存储方法及其系统
CN107426075A (zh) * 2017-09-05 2017-12-01 吉林大学 基于多路can总线和以太网通信的安全网关及通信方法

Also Published As

Publication number Publication date
TW201929478A (zh) 2019-07-16
US10831911B2 (en) 2020-11-10
EP3502947B1 (en) 2019-11-06
EP3502947A1 (en) 2019-06-26
US20190188396A1 (en) 2019-06-20

Similar Documents

Publication Publication Date Title
US9172533B2 (en) Method and system for securing communication
CN106161006B (zh) 一种数字加密算法
US20150302218A1 (en) Method and system for file hiding
CN104283668B (zh) 基于移动终端获得应用密码的方法及装置
US20130262863A1 (en) Searchable encryption processing system
CN110110163A (zh) 安全子字符串搜索以过滤加密数据
WO2020238051A1 (zh) 基于区块链的电子合同存储方法、装置、电子设备及计算机非易失性可读存储介质
US11902417B2 (en) Computer-implemented method of performing format-preserving encryption of a data object of variable size
US11727524B2 (en) System and method for encoding and authenticating a digital image
US10164945B2 (en) Method, apparatus, and computer-readable medium for masking data
US20200145389A1 (en) Controlling Access to Data
CN115048664A (zh) 基于固态硬盘的数据安全存储方法、装置、设备及介质
TWI664849B (zh) 產生安全替代表示碼的方法、計算機程式產品及處理系統
CN115567188A (zh) 一种多键值隐匿求交方法、装置及存储介质
CN107665314B (zh) 在电子文档上签名的可信处理方法及装置
CN108170753A (zh) 一种共有云中Key-Value数据库加密与安全查询的方法
CN114626079A (zh) 基于用户权限的文件查看方法、装置、设备及存储介质
CN111475690B (zh) 字符串的匹配方法和装置、数据检测方法、服务器
KR101444828B1 (ko) 암호화된 이미지의 저장 및 검색 방법
CN110990848A (zh) 基于hive数据仓库的敏感字加密方法及装置、存储介质
KR20110073227A (ko) 개인 정보를 순서 정보와 내용 정보로 분리하여 암호화하고 합성하는 방법, 장치,서버 및 기록 매체
CA2953091C (en) System and method for encoding and authenticating a digital image
Du et al. Secure and verifiable keyword search in multiple clouds
Pijnenburg et al. Encrypt-to-self: Securely outsourcing storage
Alfawair et al. Secure Image Indexing Using Speeded Up Robust Features (SURF) Key Points and SHAKE256 Hashing