TW201637395A - 資料串流區塊加密技術 - Google Patents

資料串流區塊加密技術 Download PDF

Info

Publication number
TW201637395A
TW201637395A TW105107022A TW105107022A TW201637395A TW 201637395 A TW201637395 A TW 201637395A TW 105107022 A TW105107022 A TW 105107022A TW 105107022 A TW105107022 A TW 105107022A TW 201637395 A TW201637395 A TW 201637395A
Authority
TW
Taiwan
Prior art keywords
block
blocks
encrypted
processor
instructions
Prior art date
Application number
TW105107022A
Other languages
English (en)
Inventor
立群 程
彼得T 坎貝爾
麥可 宛德蘭德
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 慧與發展有限責任合夥企業
Publication of TW201637395A publication Critical patent/TW201637395A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

在一些實例中,一非暫時性機器可讀儲存媒體具有令一電腦處理器進行以下步驟的機器可讀指令:將一資料串流分段成複數個各具有一固定長度之等長度區塊,使用一第一加密金鑰各別加密各等長度區塊,將一第一經加密等長度區塊之一位元支組與一第二經加密等長度區塊之一位元支組調換,使得兩該等區塊各具有一等於該固定長度之長度,以及使用一第二加密金鑰各別加密各區塊。

Description

資料串流區塊加密技術
本發明係有關於資料串流區塊加密技術。
密碼編譯加密可大致意指為用以將明文訊息或資訊編碼成密文的技術,使得該明文之內容對未經授權實體不可分辨或按另一種方式沒有邏輯性。此加密舉例而言,可使用公開或祕密加密演算法及一祕密加密金鑰來進行以將該密文編碼及解碼。另外,在一些加密方案中,亦可使用隨機或擬隨機臨時數初始化向量,以便對於完全相同的明文產生不同的密文。
依據本發明之一實施例,係特地提出一種非暫時性機器可讀儲存媒體,其上儲存有令一電腦處理器進行以下步驟的機器可讀指令:(a)將一資料串流分段成複數個各具有一固定長度之等長度區塊;(b)使用一第一加密金鑰各別加密各等長度區塊;(c)將一第一經加密等長度區塊之一位元支組與一第二經加密等長度區塊之一位元支組調換,使得兩該等區塊各具有一等於該固定長度之長度;以及(d)使用一第二加密金鑰各別加密各區塊。
100‧‧‧系統
102‧‧‧處理器
104‧‧‧記憶體
106~114‧‧‧指令
116‧‧‧通訊鏈路
118‧‧‧機器可讀儲存媒體
120~126‧‧‧機器可讀指令
128‧‧‧方法
130~138、140~148‧‧‧步驟
各種實例的詳細說明現將參照附圖來描述,其中:圖1根據一實例,乃是一系統之一簡圖。
圖2根據一實例,乃是一機器可讀儲存媒體之一簡圖。
圖3根據一實例,乃是用於一方法之一流程圖。
圖4根據另一實例,乃是用於一方法之一流程圖。
圖5根據另一實例,繪示一方法之一步驟。
圖6根據圖5之實例,繪示一方法之另一步驟。
圖7根據圖5之實例,繪示一方法之另一步驟。
圖8根據圖5之實例,繪示一方法之另一步驟。
圖9根據圖5之實例,繪示一方法之另一步驟。
圖10根據圖5之實例,繪示一方法之另一步驟。
以下論述係針對本揭露之各種實例。雖然這些實例之一或多者可為較佳,本文中所揭示之實例仍不應解讀為、或按另一種方式使用作為包括有申請專利範圍之本揭露的範疇限制。另外,以下說明有廣泛的應用範圍,任何實例之論述只是用來說明該實例,並非意欲暗指包括有申請專利範圍之本揭露的範疇受限於該實例。「一」(及其詞形變化)在本揭露全文中意欲表示一特定元件中之至少一者。另外,「包括有」一詞於本文中使用時,意味著包括有但不限於,「包括有」之詞形變化於本文中使用時,意 味著包括有但不限於。「基於」一詞意味著至少部分基於。
如上述,許多加密方案必須使用一臨時數初始化向量以對於完全相同的明文產生不同的密文。一些諸如電子碼簿(ECB)方案等加密方案完全不使用初始值。然而,這些方案通常有安全性低的缺點,而且會使有差別的明文之共同部分流失相等性。也就是說,一使用者或許可分辨兩個密文之一部分是否為相同訊息之加密。雖然使用一初始化向量可改善語意安全性,如本文中所述,在一些情形或應用中,仍會不期望用到初始化向量。舉例而言,此使用可與非顯然通訊及儲存成本相關聯。此外,在一些狀況中,若此等向量的唯一性、隨機性或保密性不足,使用此類向量會損及一加密方案之安全性。另外,在一些應用中,舉例而言例如重複資料刪除及可搜尋加密應用,可能期望一加密方案對於完全相同的明文產生完全相同的密文。
本揭露說明用於加密資訊以設法解決以上問題之改良型系統、方法及媒體的實作態樣。舉例而言,本揭露之某些實作態樣可用於一確定性區塊密鏈方案,這種方案避免揭示有差別的明文之共同部分,而且不需用到一初始值。本揭露之一項實作態樣係針對一種加密技術,該加密技術包括有使用一加密金鑰,但不使用一初始化向量,各別加密一資料串流之等長度區塊,將一第一等長度區塊之一資料支組與一第二等長度區塊之一資料支組調換,使得兩經調換區塊具有等長度,以及接著使用該加密金鑰各別加密兩該等經調換區塊。此一技術相較於現存用於加密 資訊之系統、方法及媒體可呈現出優點。舉例而言,在本揭露之某些實作態樣中,無需一初始值便可將資訊加密,但仍提供可接受的安全性,而且不會使有差別的明文之共同部分流失相等性。本文中所介紹之實作態樣的其他優點一經檢閱本說明及圖式,便將會顯而易見。
圖1繪示一可用於加密資訊之系統100之一簡圖。如下文進一步詳細說明,系統100包括有處理器102、及儲存機器可讀指令之記憶體104,該等機器可讀指令在藉由處理器102執行時,係用以將一資料串流分段成複數個區塊(指令106)、使用一加密金鑰各別加密這些區塊(指令108)、將一第一區塊之一資料支組與一第二區塊之一資料支組調換(指令110)、使用該加密金鑰各別加密該等區塊(指令112)、以及將該等經加密區塊串連成一單一密文(指令114)。包括有處理器102、記憶體104、以及指令106、108、110、112及114之系統100的各項態樣將會在下文進一步詳細說明。
記憶體104上儲存的指令106係用以令處理器102將一資料串流分段成複數個區塊。「資料串流」一詞於本文中使用時,舉例而言,可意指為對人類或一電腦屬於可讀且有意義之一明文訊息或資訊。舉例而言,此一資料串流的形式可以是一文字訊息、電腦碼(例如用以執行一程式、產生一影像等)、或任何其他適用於在實體之間傳送的資訊。「明文」一詞於本文中使用時,大致可意指為資料在採取任何動作予以隱藏、壓縮或「消化」前之一表示型 態。此外,據了解,在一些實作態樣中,可使用多層加密,使得一種加密演算法之輸出變為下一種加密演算法之一資料串流輸入。在此一實作態樣中,輸入到該加密演算法之資料串流舉例而言,可以是出自前一個加密程序之密文。
如上述,指令106在藉由處理器102執行時,將該資料串流分段成複數個區塊。此等指令可容許使用一區塊密碼運作模式將該資料串流加密,此區塊密碼運作模式不斷地套用一區塊密碼之單區塊運作,用以安全地轉換大於一單區塊之一資料串流。「區塊」一詞於本文中使用時,舉例而言,可意指為用於區塊密碼之一組固定長度位元,例如進階加密標準(AES)區塊密碼,其具有一128位元之區塊尺寸。據了解,AES只是提供作為許多適用於配合本揭露使用之加密演算法其中一者之一實例,而且可使用其他演算法,例如三重資料加密標準(TDES)密碼、國際資料加密演算法(IDEA)密碼、Blowfish密碼等。
在一些實作態樣中,指令106在藉由處理器102執行時,係用以將該資料串流分段成複數個各具有一固定長度之等長度區塊、及一具有一比零更大且比該固定長度更小之長度的剩餘區塊。如下文所述,以圖5至圖10之例示性程序為例,此一分段步驟可用於一區塊密碼運作模式,其運用密文竊用以處理不可均勻區分成區塊的訊息。
記憶體104上儲存的指令108在藉由處理器102執行時,係用以令處理器102使用一加密金鑰各別加密該資料串流之每個區塊。指令108所進行的加密程序舉例而言,可 實施諸如AES之公開可用加密演算法、或另一適合的加密演算法。一般而言,「加密金鑰」一詞於本文中使用時,可意指為一則決定一密碼編譯演算法之一功能輸出的資訊。舉一例來說,此一加密金鑰可用於控制一密碼編譯演算法之運作,使得只有正確的金鑰才能將經加密文字轉換成明文,反之亦然。該加密金鑰可具有一適合與用於加密之密碼編譯演算法配合使用的金鑰尺寸。舉運作之AES演算法為一實例,一適合的金鑰尺寸可以是128、192或256個位元、或另一適合的金鑰尺寸。如上述,在諸如重複資料刪除及可搜尋加密應用等應用中,使用初始化向量就密碼編譯而言可能並非必要,而且在一些實作態樣中,指令108係用以令處理器102各別加密該資料串流之該等區塊,但不會用到一初始化向量。同樣地,在其他實作態樣中,指令108係用以令處理器102使用一初始化向量,各別加密該資料串流之該等區塊。
記憶體104上所儲存之指令110在藉由處理器102執行時,係用以令處理器102將一第一區塊之一資料支組與一第二區塊之一資料支組調換。舉例而言,在一些實作態樣中,該第一區塊之該資料支組與該第二區塊之該資料支組可以同尺寸,使得進行該調換步驟之後,兩區塊都維持同尺寸。據了解,可使用出自各區塊之任何支組的適合資料。但舉一個實例來說,該第一區塊之該資料支組可以是該第一區塊之一上半部位元(即一128位元第一區塊之最左邊64個位元),而該第二區塊之該資料支組可以是該第二區 塊之一下半部位元(即一128位元第二區塊之最右邊64個位元)。舉另一例而言,在一些實作態樣中,一出自一128位元區塊之64位元支組可藉由組合該區塊最左邊32個位元、與該區塊最右邊32個位元來形成。
在一些實作態樣中,指令110在藉由處理器102執行時,係用以令處理器102對於各等長度區塊各別調換資料支組。舉例而言,一第一區塊之一第一資料支組可與一第二區塊之一第一資料支組調換。進行此步驟之後,該第二區塊之一第二資料支組可與一第三區塊之一第一資料支組調換。進行此步驟之後,該第三區塊之一第二資料支組可與一第四區塊之一第一資料支組調換,以此類推。在一些實作態樣中,不同對(或其他區塊組合)之間的調換運作可同時進行,或舉例而言,可基於系統100之處理能力在任何適合的時間進行。據了解,可對以上實作態樣施作修改。舉例而言,在一些實作態樣中,一資料支組可與一第三區塊之一資料支組調換,並且在進行此步驟之後,一第二區塊之一資料支組可與一第四區塊之一資料支組調換。
在一些實作態樣中,一給定區塊的相同資料位元可經由指令110(或一不同指令集)來多次「調換」以提供附加或替代的安全性。舉一例來說,一第一區塊之一資料支組(「支組X」)可與一第二區塊之一資料支組(「支組Y」)調換。在進行此步驟之後,支組X(或其一部分)之資料可與出自另一區塊之一資料支組調換。在一些實作態樣中,此藉由指令110進行之調換程序可反覆進行,以便達成一所欲 密碼編譯安全性等級。此一實作態樣之一個實例乃是在下文對照圖5至圖10來提供,其中一調換程序(例如一藉由指令110所進行之調換程序)乃重複多次。在指令110之調換程序之後,該經分段資料串流之該等區塊內的該資料可基於該整體資料串流來重新排序,而不是基於一對區塊來重新排序。
指令112在藉由處理器102執行時,係用以使用一加密金鑰各別加密該資料串流之每個區塊。在一些實作態樣中,各區塊可藉由一不同加密金鑰來各別加密,或一共同金鑰可用於各別加密各區塊。據了解,指令108所進行之加密可合併指令108所進行、及上述的加密態樣。的確,在一些實作態樣中,指令112與指令108乃是相同的指令集,並且在系統100所使用的每個加密反覆動作都經多次呼叫。類似於指令108的某些實作態樣,在一些實作態樣中,指令112可依賴AES區塊密碼演算法來各別加密該資料串流的每個區塊。
在一些實作態樣中,指令112所用的加密金鑰與指令108之第一加密程序所用的加密金鑰相同。在一些實作態樣中,指令112所用的加密金鑰與指令108之第一加密程序所用的加密金鑰不同。在一些實作態樣中,指令112所用的加密金鑰與指令108所用的加密金鑰乃是獨立且隨機(或擬隨機)產生的。據了解,在其他實作態樣中,不同的加密金鑰可彼此從另一加密金鑰導出,或具有一些其他預測性關係。
指令114在藉由處理器102執行時,係用以將指令112所產生之經加密區塊串連成一單一密文。在一些實作態樣中,該密文將會具有一與該原始資料串流相等之尺寸,而在其他實作態樣中,該密文將會具有一比該原始資料串流更大的尺寸。舉例來說,在一些實作態樣中,指令114可「填補」一藉由串連經加密區塊所建立之密文,以便達成一所欲的密文長度。在一些實作態樣中,經加密區塊之尺寸或數量可在加密或調換程序期間變更。舉例而言,在一些實作態樣中,一128位元區塊尺寸可在一加密步驟期間,藉由在各區塊中包括有意義或無意義的資料,「展開」成一192位元區塊尺寸。此一展開舉例而言,會讓區塊與一給定加密演算法不相容而無法使用該演算法來加密。在此一實作態樣中,一經由串連經加密區塊所產生之密文可大於其原始資料串流。
系統100之處理器102舉例而言,形式可以是一中央處理單元(CPU)、一半導體為基之微處理器、一諸如一數位影像處理單元之數位信號處理器(DSP)、其他適用於取回並執行記憶體104中所儲存指令之硬體裝置或處理元件、或其適合的組合。處理器102舉例而言,可包括有一晶片上之單一或多個核心、跨多個晶片之多個核心、跨多個裝置之多個核心、或其適合的組合。處理器102的功能可在於擷取、解碼及執行如本文中所述的指令。舉一替代例或除了取回並執行指令以外,處理器102舉例而言,可包括有至少一個積體電路(IC)、其他控制邏輯、其他電子電路、或其適 合的組合,其包括有一些用於進行記憶體104上所儲存指令之功能的電子組件。處理器102舉例而言,可跨多個處理單元來實施,而指令可藉由系統100之不同區域中的不同處理單元來實施。
系統100之記憶體104舉例而言,形式可以是一諸如一適合的電子、磁性、光學或其他實體儲存設備之非暫時性機器可讀儲存媒體,用以含有或儲存諸如機器可讀指令106、108、110、112及114之資訊。此類指令可運作用以進行本文中所述的一或多個功能,例如針對圖5至圖10之方法或本文中所述其他方法在本文中所述的功能。記憶體104舉例而言,可與系統100之處理器102罩覆於相同的外罩內,例如罩覆於系統100之運算塔型外殼內。在一些實作態樣中,記憶體104及處理器102係罩覆於不同的外罩內。「機器可讀儲存媒體」一詞於本文中使用時,舉例而言,可包括有隨機存取記憶體(RAM)、快閃記憶體、一儲存驅動機(例如硬碟)、任何類型之儲存碟(例如光碟唯讀記憶體(CD-ROM)、任何其他類型之光碟、一DVD等)、及類似者、或其組合。在一些實作態樣中,記憶體104可對應於一包括有一主記憶體之記憶體,例如隨機存取記憶體(RAM),其中軟體可在執行階段駐留,該記憶體還包括有一輔助記憶體。該輔助記憶體舉例而言,可包括有可儲存機器可讀指令之一副本的非依電性記憶體。據了解,機器可讀指令及有關資料兩者都可儲存於記憶體媒體上,而且為了說明,可將多個媒體處理成一單一媒體。
記憶體104可經由一通訊鏈路116與處理器102連通。通訊鏈路116可位在一與處理器102相關聯之機器(例如一運算裝置)的本機處或遠端處。一本機通訊鏈路116之實例可包括有一位在一機器(例如一運算裝置)內部的電子匯流排,其中記憶體104乃是經由該電子匯流排與處理器102連通之依電性、非依電性、固定式及/或可移除式儲存媒體其中一者。
在一些實作態樣中,系統100之一或多項態樣形式可以是功能模組,此功能模組舉例而言,可運作來執行指令106、108、110、112或114之一或多個程序、或本文中所述與本揭露之其他實作態樣有關之其他功能。「模組」一詞於本文中使用時,意指為硬體(例如一諸如一積體電路或其他電路系統之處理器)與軟體(例如機器或處理器可執行指令、命令、或諸如韌體、程式、或目標碼之符碼)之一組合。硬體與軟體之一組合可僅包括有硬體(即一不具有軟體元件之硬體元件)、包括有裝載於硬體之軟體(例如儲存於一記憶體並於一處理器執行或解譯之軟體)、或包括有硬體與裝載於硬體之軟體。據進一步了解,「模組」一詞係另外意欲意指為一或多個模組或模組之一組合。一系統100之各模組舉例而言,可包括有一或多個機器可讀儲存媒體及一或多個電腦處理器。
鑑於上述,據了解,上述系統100之各個指令可對應於分離及/或組合之功能模組。舉例而言,指令106可對應於一用以將一資料串流分段成複數個區塊之「分段模 組」,指令108可對應於一用以使用一加密金鑰各別加密該資料串流每個區塊之「加密模組」,指令110可對應於一用以將一第一區塊之一資料支組與一第二區塊之一資料支組調換之「調換模組」,指令112可藉由上述加密模組或藉由一第二加密模組來進行,而指令114可對應於一用以將經加密區塊串連成一單一密文之「串連模組」。據進一步了解,一給定模組可用於多個有關功能。但舉一個實例來說,在一些實作態樣中,一單一模組可用於將該資料串流分段成複數個區塊(例如對應於指令106之程序),並可用於將經加密區塊串連成一單一密文(對應於指令114之程序)。
圖2繪示一包括有可藉由一處理器執行以加密一資料串流之各個指令的機器可讀儲存媒體118。為了說明,本文中所提供對機器可讀儲存媒體118之描述乃參照系統100之各項態樣(例如處理器102)及本揭露之其他實作態樣。雖然系統100(以及其對應的指令106、108、110、112與114)之一或多項態樣可利用媒體118來套用或按另一種方式併入,據了解,在一些實作態樣中,媒體118可由此一系統來各別儲存或罩覆。舉例而言,在一些實作態樣中,媒體118的形式可以是隨機存取記憶體(RAM)、快閃記憶體、一儲存驅動機(例如硬碟)、任何類型之儲存碟(例如光碟唯讀記憶體(CD-ROM)、任何其他類型之光碟、一DVD等)、及類似者、或其組合。
媒體118包括有儲存於其上之機器可讀指令120,此等機器可讀指令係用以令處理器102將一資料串流 分段成複數個各具有一固定長度之等長度區塊。媒體118之指令120可合併以上對照系統100所述之指令106的一或多項態樣,反之亦然。但舉一個實例來說,在一些實作態樣中,指令120係用以將該資料串流分段成複數個各具有一固定長度之等長度區塊、及一具有一比零更大且比該固定長度更小之長度的剩餘區塊。
媒體118包括有儲存於其上之機器可讀指令122,此等機器可讀指令係用以令處理器102使用一加密金鑰各別加密各等長度區塊。媒體118之指令122可合併以上對照系統100所述之指令108與112的一或多項態樣,反之亦然。但舉一個實例來說,在一些實作態樣中,指令122可實施一諸如AES之已知加密演算法、或另一適合的加密演算法以各別加密各等長度區塊。
媒體118包括有儲存於其上之機器可讀指令124,此等機器可讀指令係用以令處理器102將一第一經加密等長度區塊之一位元支組與一第二經加密等長度區塊之一位元支組調換,使得兩該等區塊各具有一等於該固定長度之長度。媒體118之指令124可合併以上對照系統100所述之指令110的一或多項態樣,反之亦然。舉例而言,可使用任何出自各區塊之適合的位元支組。但舉一個實例來說,該第一區塊之該位元支組可以是該第一區塊之一上半部位元(即一128位元第一區塊之最左邊64個位元),而該第二區塊之該位元支組可以是該第二區塊之一下半部位元(即一128位元第二區塊之最右邊64個位元)。
媒體118包括有儲存於其上之機器可讀指令126,此等機器可讀指令係用以令處理器102使用一加密金鑰各別加密各區塊。媒體118之指令126可合併以上對照系統100及/或媒體118之指令122所述之指令108與112的一或多項態樣,反之亦然。但舉一個實例來說,在一些實作態樣中,指令126所用的加密金鑰與媒體118先前所用的加密金鑰(例如指令122中所用的加密金鑰)可相同。
圖3乃是一用以加密一資料串流之方法128之一流程圖。雖然方法128及本文中所述的其他方法係參照系統100、媒體118、及上述本揭露之其他態樣來執行,其他適用於執行這些方法之裝置對所屬技術領域中具有通常知識者仍將會顯而易見。圖3之流程圖中所示的方法128及其他圖中描述的方法舉例而言,形式可實施為儲存於系統100之記憶體104上的可執行指令、儲存於媒體118上之可執行指令,形式可以是電子電路系統、或另一適合的形式。
方法128包括有一步驟130,該步驟使用一加密金鑰,但不使用一初始化向量,各別加密一資料串流之等長度區塊。步驟130可合併上述指令108之一或多項態樣、或系統100及/或指令122之另一適合的態樣、或媒體118之另一適合的態樣(反之亦然)。但舉一個實例來說,在一些實作態樣中,步驟130包括有將該資料串流分段成複數個各具有一固定長度之等長度區塊、及一具有一比零更大且比該固定長度更小之長度的剩餘區塊。
方法128包括有一步驟132,該步驟將一第一等長 度區塊之一資料支組與一第二等長度區塊之一資料支組調換,使得兩經調換區塊具有等長度。步驟132可合併上述指令110之一或多項態樣、或系統100及/或指令124之另一適合的態樣、或媒體118之另一適合的態樣(反之亦然)。舉例而言,可在該調換程序期間使用任何出自各區塊之適合的位元支組。但舉一個實例來說,該第一區塊之該位元支組可以是該第一區塊之一上半部位元(即一128位元第一區塊之最左邊64個位元),而該第二區塊之該位元支組可以是該第二區塊之一下半部位元(即一128位元第二區塊之最右邊64個位元)。
方法128包括有一步驟134,該步驟使用該加密金鑰各別加密出自步驟132之兩該等經調換區塊。步驟134可合併上述指令112之一或多項態樣、或系統100及/或指令122之另一適合的態樣、或媒體118之另一適合的態樣(反之亦然)。但舉一個實例來說,在一些實作態樣中,步驟134之該加密可實施一諸如AES之已知加密演算法、或另一適合的加密演算法以各別加密該等經調換區塊。
圖4根據本揭露繪示方法128之另一實例。方法128包括有一附加步驟136,該附加步驟在步驟134之該加密之後將該等經加密區塊串連成一單一密文。步驟136可合併指令114之一或多項態樣或系統100之另一適合的態樣(反之亦然)。但舉一個實例來說,在一些實作態樣中,該經串連密文可具有一與該原始資料串流相等之尺寸,而在其他實作態樣中,該密文將會具有一比該原始資料串流更大的 尺寸。
圖5至圖10根據本揭露繪示一例示性加密程序之各個步驟。圖5至圖10之加密程序舉例而言,形式可實施為儲存於系統100之記憶體104上的可執行指令、儲存於媒體118上之可執行指令,形式可以是電子電路系統、或另一適合的形式。圖5至圖10之加密程序始於一資料串流A,該資料串流已分段成50個字元之區塊(例如A1、A2、A3、A4及A5),該資料串流之其餘部分乃分段成位於該資料串流末端之一區塊(A6),並且僅包括有20個字元。據了解,此分段舉例而言,可如上述對照指令106及/或指令120來進行。對照這項實例之說明所用的「字元」一詞只是為了說明而提供。的確,據了解,本揭露之實作態樣可在位元級或另一適合的層級運作來處理該資料串流。
圖5繪示例示性加密程序之一步驟138,該步驟舉例而言,可對應於用於系統100之加密指令108、媒體118之指令122、及/或方法128之步驟130的一或多項態樣。如圖5所示,資料串流A之各區塊可使用一加密演算法E及各別加密金鑰K來加密,用以達成藉由各別經加密區塊C1、C2、C3、C4及C5所形成之一各別經加密之密文C。為了說明,各資料串流區塊係使用相同的加密演算法E及相同的加密金鑰K來加密。然而,據了解,不同的加密演算法及/或加密金鑰可用於不同的區塊。
圖6繪示該例示性加密程序中之一步驟140,該步驟舉例而言,可實施一與一區塊密碼配合使用之密文竊用 運作的一或多項態樣,用以處理不可均勻區分成區塊之訊息。在此步驟中,步驟138所產生之密文C之一經加密區塊C5係分割成與資料串流A之剩餘區塊A6中之資料W等尺寸(20個字元)的資料X之一第一部分、以及用於出自區塊C5之資料之其餘部分的資料Y之一第二部分(30個字元)。資料W與資料Y組合以形成資料Z,資料Z係使用加密演算法E及加密金鑰K來加密以形成經修改密文區塊C5’。資料X係儲存於密文區塊C6中。於該程序中之這個階段,密文C之各區塊包括有已使得加密演算法E至少加密一次之資料。據了解,可修改步驟140之以上說明以達成類似功能,例如,將一適當資料量加入一區塊,使得可在該資料上進行一固定尺寸之加密運作。舉例來說,如上述,資料Y乃是區塊C5之最右邊30個字元。然而,據了解,在一些實作態樣中,資料Y可以是區塊C5之最左邊30個字元。類似的是,資料Z係藉由將資料Y加入資料W來形成,然而,據了解,在一些實作態樣中,資料Z可藉由將資料W加入資料Y來形成,或可將資料Y以多則方式加入資料W,反之亦然。此外,在一些實作態樣中,可將隨機資料(例如非出自資料串流A或密文C之任何其他區塊的資料)加入區塊A6,使得區塊A6的尺寸適用於藉由加密演算法E來進行加密。
圖7繪示例示性加密程序中之一步驟142,該步驟舉例而言,可對應於用於系統100之指令110、媒體118之指令124、及/或方法128之步驟132的一或多項態樣。如圖7所示,步驟140所產生之密文C之一第一區塊C2(其可以是或 可不是密文C之第一順序區塊)係分割成資料V之一第一部分(25個字元)及資料W之一第二部分(25個字元)。同樣地,步驟140所產生之密文C之一第二區塊C3(其可以是或可不是區塊C2後之下一個順序區塊)係分割成資料X之一第一部分(25個字元)及資料Y之一第二部分(25個字元)。為了說明,資料(例如V、W、X及Y)之部分之相同的參照字母係為了方便起見,在圖5至圖10之例示性加密程序之各個步驟的說明中使用。然而,由圖5至圖10應該顯而易見的是,此等參考字母不必然意欲在該例示性加密程序之不同步驟之間意指為相同的資料。也就是說,步驟142所指的資料W與步驟140中所指的資料W不必然相同。如圖7所示,資料V與資料Y組合以形成資料J,資料J係使用加密演算法E及加密金鑰K來加密以形成經修改密文區塊C2’。同樣地,資料X與資料W組合以形成資料L,資料L係使用加密演算法E及加密金鑰K來加密以形成經修改密文區塊C3’。雖然圖7僅繪示一介於密文區塊C2與C3之間用以形成經修改密文區塊C2’及C3’的單一資料調換運作,該例示性加密程序仍在此步驟中用於使用類似運作來形成經修改密文區塊C1’、C4’及C5’。在此例示性程序中,出自密文區塊C6之資料(其乃是於上述步驟140中建立)係與出自另一區塊之資料調換。然而,據了解,可對步驟142進行適合的修改以對於區塊C6提供一調換運作。
圖8繪示該例示性加密程序中之一步驟144,此步驟舉例而言,可實施類似於以上對照步驟140所述之一密文 竊用運作的一或多項態樣。在此步驟中,步驟142所產生之密文C之一經加密區塊C5係分割成與密文C之剩餘區塊C6中之資料X等尺寸(20個字元)的資料V之一第一部分、以及用於出自區塊C5之資料之其餘部分的資料W之一第二部分(30個字元)。資料X與資料W組合以形成資料J,資料J係使用加密演算法E及加密金鑰K來加密以形成經修改密文區塊C5’。資料V係儲存於經修改密文區塊C6’中。如以上對照步驟138所述,據了解,可對步驟144之準確描述進行修改以達成類似功能,亦即,可將一適當資料量加入一區塊,使得可在該資料上進行一固定尺寸區塊加密運作。
圖9繪示該例示性加密程序中之一步驟146,該步驟舉例而言,可對應於步驟144之一第二反覆動作以進一步將密文C加密。也就是說,步驟144所產生之密文C之一經加密區塊C5係分割成與密文C之剩餘區塊C6中之資料X等尺寸(20個字元)的資料V之一第一部分、以及用於出自區塊C5之資料之其餘部分的資料W之一第二部分(30個字元)。資料X與資料W組合以形成資料J,資料J係使用加密演算法E及加密金鑰K來加密以形成經修改密文區塊C5’。資料V係儲存於經修改密文區塊C6’中。如以上對照步驟144所述,據了解,可對步驟146之準確描述進行修改以達成類似功能。
圖10繪示該例示性加密程序中之一步驟148,該步驟舉例而言,可對應於步驟142之一第二反覆動作以進一步將密文C加密。也就是說,步驟146所產生之密文C之一 第一區塊C2(其可以是或可不是密文C之第一順序區塊)係分割成資料V之一第一部分(25個字元)及資料W之一第二部分(25個字元)。同樣地,步驟146所產生之密文C之一第二區塊C3(其可以是或可不是區塊C2後之下一個順序區塊)係分割成資料X之一第一部分(25個字元)及資料Y之一第二部分(25個字元)。如圖10所示,資料V與資料Y組合以形成資料J,資料J係使用加密演算法E及加密金鑰K來加密以形成經修改密文區塊C2’。同樣地,資料X與資料W組合以形成資料L,資料L係使用加密演算法E及加密金鑰K來加密以形成經修改密文區塊C3’。如以上對照步驟142所示,雖然圖10僅繪示一介於密文區塊C2與C3之間用以形成經修改密文區塊C2’及C3’的單一資料調換運作,該例示性加密程序仍在此步驟中用於使用類似運作來形成經修改密文區塊C1’、C4’及C5’。
儘管以上已展示並說明某些實作態樣,仍可在形式與細節方面進行變更。舉例而言,一些已涉及一項實作態樣及/或程序所述的特徵可與其他實作態樣有關。換句話說,涉及一項實作態樣所述的程序、特徵、組件及/或性質在其他實作態樣中會有用處。再者,據了解,本文中所述的系統及方法可包括有所述不同實作態樣之組件及/或特徵的各種組合及/或次組合。因此,參照一或多項實作態樣所述的特徵可與本文中所述其他實作態樣組合。
「邏輯」於本文中使用時,乃是一用以進行一本文中所述特定動作及/或功能等之替代或附加處理資源,包 括有硬體,例如各種形式之電晶體邏輯器、特定應用積體電路(ASIC)等,與儲存於記憶體中且可由一處理器執行之機器可執行指令截然不同,例如軟體、韌體等。〔再者,「一」或「一些」於本文中使用時,有時可意指為一或多個此類東西。舉例而言,「一些界面工具集」可意指為一或多個界面工具集。同樣地,「複數個」於本文中使用時,有時可意指為超過一個此類東西。
118‧‧‧機器可讀儲存媒體
120~126‧‧‧機器可讀指令

Claims (15)

  1. 一種非暫時性機器可讀儲存媒體,其上儲存有令一電腦處理器進行以下步驟之機器可讀指令:(a)將一資料串流分段成複數個各具有一固定長度之等長度區塊;(b)使用一第一加密金鑰各別加密各等長度區塊;(c)將一第一經加密等長度區塊之一位元支組與一第二經加密等長度區塊之一位元支組調換,使得兩該等區塊各具有一等於該固定長度之長度;以及(d)使用一第二加密金鑰各別加密各區塊。
  2. 如請求項1之媒體,其中該等指令係令該處理器進行步驟(b)及(d)之該加密,但不使用一初始化向量。
  3. 如請求項1之媒體,其中該等指令係令該處理器使用一進階加密標準(AES)加密方法,進行步驟(b)及(d)之該加密。
  4. 如請求項1之媒體,其中該第一加密金鑰與該第二加密金鑰乃是相同金鑰。
  5. 如請求項1之媒體,其中該等指令係用以令該處理器進行步驟(c)之該調換,使得該第一等長度區塊之該位元支組乃是該第一等長度區塊之該等位元之一上半部,並且該第二等長度區塊之該位元支組乃是該第二等長度區塊之該等位元之一下半部。
  6. 如請求項1之媒體,其中該等指令係用以令該處理器進 行以下步驟(e)在步驟(d)之後,將一第一經加密等長度區塊之一位元支組與一第二經加密等長度區塊之一位元支組調換,使得兩該等區塊各具有一等於該固定長度之長度;以及(f)使用一第三加密金鑰各別加密步驟(e)之各區塊。
  7. 如請求項6之媒體,其中該第一加密金鑰、該第二加密金鑰與該第三加密金鑰乃是相同金鑰。
  8. 如請求項1之媒體,其中該等指令係用以令該處理器對於各等長度區塊進行步驟(c)之該調換。
  9. 如請求項1之媒體,其中該等指令係用以令該處理器進行步驟(a)之該分段,以將該資料串流分段成複數個各具有一固定長度之等長度區塊、及一具有一比零更大且比該固定長度更小之長度的剩餘區塊,以及其中該等指令係用以進一步令該處理器進行以下步驟:(e)將該剩餘區塊之該等位元與出自一預定等長度區塊之一組等長度經加密位元調換,以及(f)使用一第三加密金鑰加密該預定等長度區塊。
  10. 如請求項9之媒體,其中該等指令係用以令該處理器在進行步驟(b)之後、並在進行步驟(c)之前進行步驟(e)及(f)之該等運作。
  11. 如請求項1之媒體,其中該等指令係用以令該處理器在進行步驟(d)之後進行步驟(e)及(f)之該等運作。
  12. 一種方法,其包含有:(a)使用一加密金鑰,但不使用一初始化向量,各別加密一資料串流之等長度區塊;(b)將一第一等長度區塊之一資料支組與一第二等長度區塊之一資料支組調換,使得兩經調換區塊具有等長度;以及(c)使用該加密金鑰各別加密兩該等經調換區塊。
  13. 如請求項12之方法,其更包含有:(d)將步驟(c)之該等經加密區塊串連成一單一密文。
  14. 一種系統,其包含有:一處理器;以及一儲存機器可讀指令之記憶體,該等機器可讀指令係用以令該處理器進行以下步驟:(a)將一資料串流分段成複數個區塊;(b)使用一加密金鑰各別加密該資料串流之每個區塊;(c)將一第一區塊之一資料支組與一第二區塊之一資料支組調換;(d)使用該加密金鑰各別加密該資料串流之每個區塊;以及(e)將該等經加密區塊串連成一單一密文。
  15. 如請求項14之系統,其中該等指令係用以令該處理器進行以下步驟: 進行步驟(a)之該分段,以將該資料串流分段成複數個各具有一固定長度之等長度區塊、及一具有一比零更大且比該固定長度更小之長度的剩餘區塊;以及在步驟(b)之該加密之前,將該剩餘區塊之該等位元與出自一預定等長度區塊之一組等長度經加密位元調換。
TW105107022A 2015-03-20 2016-03-08 資料串流區塊加密技術 TW201637395A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/021632 WO2016153457A1 (en) 2015-03-20 2015-03-20 Datastream block encryption

Publications (1)

Publication Number Publication Date
TW201637395A true TW201637395A (zh) 2016-10-16

Family

ID=56978360

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105107022A TW201637395A (zh) 2015-03-20 2016-03-08 資料串流區塊加密技術

Country Status (5)

Country Link
US (1) US10742400B2 (zh)
EP (1) EP3272060B1 (zh)
CN (1) CN107534549B (zh)
TW (1) TW201637395A (zh)
WO (1) WO2016153457A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3060789A1 (fr) * 2016-12-19 2018-06-22 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede d'execution par un microprocesseur d'un code machine polymorphique d'une fonction predeterminee
US10187200B1 (en) * 2017-12-18 2019-01-22 Secure Channels Inc. System and method for generating a multi-stage key for use in cryptographic operations
US10725743B2 (en) 2018-01-22 2020-07-28 John Rankin System and method for generating random numbers
WO2019152573A1 (en) 2018-01-31 2019-08-08 John Rankin System and method for secure communication using random blocks or random numbers
WO2019168978A1 (en) 2018-02-28 2019-09-06 John Rankin System and method for expanding a set of random values
US11483147B2 (en) * 2020-01-23 2022-10-25 Bank Of America Corporation Intelligent encryption based on user and data properties

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4924515A (en) * 1988-08-29 1990-05-08 International Business Machines Coprporation Secure management of keys using extended control vectors
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
JP2004537072A (ja) 2001-04-07 2004-12-09 トムソン ライセンシング ソシエテ アノニム コンテンツを暗号化する方法および装置
US20030165242A1 (en) 2001-11-19 2003-09-04 Adrian Walker Confusion encryption
US20040131181A1 (en) * 2002-04-03 2004-07-08 Rhoads Steven Charles Method and apparatus for encrypting content
WO2005081934A2 (en) * 2004-02-23 2005-09-09 The Trustees Of Columbia University In The City Of New York Computer-implemented methods and systems for generating elastic block ciphers for encryption and decryption
US7418100B2 (en) * 2004-10-20 2008-08-26 Cisco Technology, Inc. Enciphering method
US7933838B2 (en) * 2005-05-17 2011-04-26 Zhishen Ye Apparatus for secure digital content distribution and methods therefor
US8127130B2 (en) 2006-04-18 2012-02-28 Advanced Communication Concepts, Inc. Method and system for securing data utilizing reconfigurable logic
KR20080072345A (ko) * 2007-02-02 2008-08-06 삼성전자주식회사 암호화 장치 및 그 방법
US9336160B2 (en) 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
US8565421B1 (en) * 2009-01-15 2013-10-22 Marvell International Ltd. Block cipher improvements
US8687802B2 (en) 2009-03-30 2014-04-01 The Regents Of The University Of California Method and system for accelerating the deterministic enciphering of data in a small domain
US8189775B2 (en) 2010-02-18 2012-05-29 King Fahd University Of Petroleum & Minerals Method of performing cipher block chaining using elliptic polynomial cryptography
CA2825391A1 (en) * 2011-01-27 2012-08-02 Rick L. Orsini Systems and methods for securing data
US8687803B2 (en) * 2011-09-14 2014-04-01 Apple Inc. Operational mode for block ciphers
US8726037B2 (en) 2011-09-27 2014-05-13 Atmel Corporation Encrypted memory access
CN104040934B (zh) * 2011-12-15 2018-04-24 英特尔公司 当被云服务操控时保护图像隐私
US9100184B2 (en) 2011-12-22 2015-08-04 Intel Corporation Instructions processors, methods, and systems to process BLAKE secure hashing algorithm
US9008308B2 (en) * 2012-02-08 2015-04-14 Vixs Systems, Inc Container agnostic decryption device and methods for use therewith
WO2014058971A1 (en) * 2012-10-09 2014-04-17 Huawei Technologies Co., Ltd. Authenticated encryption support in iso/iec 23009-4
US9798893B2 (en) * 2015-01-29 2017-10-24 International Business Machines Corporation Secure format-preserving encryption of data fields

Also Published As

Publication number Publication date
CN107534549B (zh) 2020-06-30
US20170279603A1 (en) 2017-09-28
EP3272060A4 (en) 2018-03-14
CN107534549A (zh) 2018-01-02
US10742400B2 (en) 2020-08-11
EP3272060A1 (en) 2018-01-24
WO2016153457A1 (en) 2016-09-29
EP3272060B1 (en) 2019-05-01

Similar Documents

Publication Publication Date Title
TW201637395A (zh) 資料串流區塊加密技術
TWI573039B (zh) 計算系統及其加解密裝置與加解密方法
US7092525B2 (en) Cryptographic system with enhanced encryption function and cipher key for data encryption standard
TW201826162A (zh) 用於藉由位元混合器來產生保密器回合金鑰的方法和系統
JPH08248879A (ja) 2つの鍵を使用して暗号化する方法および装置
WO2014109828A2 (en) Method for secure substring search
CN114175572B (zh) 利用拟群运算对加密数据实行相等和小于运算的***和方法
US10536264B2 (en) Efficient cryptographically secure control flow integrity protection
TW201545524A (zh) 用於以第二密文編密演算法之運算修改第一密文編密演算法的技術
Pandey et al. A high-performance and area-efficient VLSI architecture for the PRESENT lightweight cipher
US20170257212A1 (en) Cryptographic Apparatuses And Methods For Encrypting And Decrypting Data Using Automata
CN114221766B (zh) 数据加密方法、解密方法及装置
CN108063760B (zh) 一种分组加密的方法及其***、分组解密的方法
CN112199696A (zh) 基于白盒分组密码的加解密方法
WO2020010642A1 (zh) 安全加密芯片及含有该芯片的电子设备
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
CN107078900B (zh) 基于可再现随机序列的密码***
JP2004157535A (ja) データ暗号化方法
CN107835070B (zh) 一种简单的嵌入式加密方法
CN114826560B (zh) 一种轻量级分组密码cref实现方法及***
US20240097880A1 (en) High-speed circuit combining aes and sm4 encryption and decryption
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
Noorbasha et al. FPGA implementation of cryptographic systems for symmetric encryption.
CN111355577B (zh) 一种网络数据安全传输***及方法
EP4307155A1 (en) Method and circuit for protecting an electronic device from a side-channel attack