JP2023529948A - データの圧縮と暗号化の為のシステム及び方法 - Google Patents

データの圧縮と暗号化の為のシステム及び方法 Download PDF

Info

Publication number
JP2023529948A
JP2023529948A JP2022576506A JP2022576506A JP2023529948A JP 2023529948 A JP2023529948 A JP 2023529948A JP 2022576506 A JP2022576506 A JP 2022576506A JP 2022576506 A JP2022576506 A JP 2022576506A JP 2023529948 A JP2023529948 A JP 2023529948A
Authority
JP
Japan
Prior art keywords
hash table
data
encryption key
keys
encryption
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2022576506A
Other languages
English (en)
Inventor
エー. マクエルヴィーン,クリストファー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lognovations Holdings LLC
Original Assignee
Lognovations Holdings LLC
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 Lognovations Holdings LLC filed Critical Lognovations Holdings LLC
Publication of JP2023529948A publication Critical patent/JP2023529948A/ja
Pending legal-status Critical Current

Links

Images

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/04Masking or blinding
    • H04L2209/043Masking or blinding of tables, e.g. lookup, substitution or mapping
    • 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/30Compression, e.g. Merkle-Damgard construction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

データの圧縮及び暗号化の為のシステム及び方法が、本明細書において説明される。方法は、暗号化キーにビットマスクを適用することによって複数のハッシュテーブルキーを作成するステップと、暗号化キーにハッシュ関数を適用するステップと、ハッシュ関数を用いてハッシュテーブルを作成するステップであって、ハッシュテーブルは複数のハッシュテーブルキー及びインデックス値を含み、インデックス値は夫々、複数のハッシュテーブルキーの1つに接続されたハッシュテーブル内のデータの場所を特定している、ステップと、入力データを受け取るステップと、入力データを符号化して符号化データを生成するステップであって、符号化は暗号化キー及びハッシュテーブルを用いた入力データの圧縮及び暗号化の両方を含む、ステップと、を含む。

Description

関連出願の相互参照
N/A
本開示は、データセキュリティ及びプライバシーの技術分野に関し、より具体的には、限定するものではないが、圧縮及び暗号化の単一のプロセスを用いてデータを符号化するシステム及び方法に関する。
本開示は、方法を含み得るものであり、前記方法は、暗号化キーにビットマスクを適用することによって複数のハッシュテーブルキーを作成するステップと、前記暗号化キーにハッシュ関数を適用するステップと、前記ハッシュ関数を用いてハッシュテーブルを作成するステップであって、前記ハッシュテーブルは、前記複数のハッシュテーブルキーとインデックス値とを含み、前記インデックス値は夫々、前記複数のハッシュテーブルキーの内の1つに接続されている前記ハッシュテーブル内のデータの位置を特定している、ステップと、入力データを受け取るステップと、前記入力データを符号化して符号化データを生成するステップであって、前記符号化は、前記暗号化キーと前記ハッシュテーブルを用いた前記入力データの圧縮と暗号化の両方を含むステップと、を含む。
本開示は、プロセッサと、命令を格納する為のメモリとを備えたシステムを含み得るものであり、前記プロセッサは、前記命令を実行して、暗号化キーにビットマスクを適用することによって複数のハッシュテーブルキーを作成するステップと、前記暗号化キーにハッシュ関数を適用するステップと、前記ハッシュ関数を用いてハッシュテーブルを作成するステップであって、前記ハッシュテーブルは前記複数のハッシュテーブルキーとインデックス値を含み、前記インデックス値は夫々、前記複数のハッシュテーブルキーの内の1つに接続されている前記ハッシュテーブル内のデータの位置を特定している、ステップと、入力データを受け取るステップと、前記入力データを符号化して符号化データを生成するステップであって、前記符号化は、前記暗号化キーと前記ハッシュテーブルを用いた前記入力データの圧縮と暗号化の両方を含むステップと、を行う。
本技術の特定の実施形態は、添付の図によって示される。図は必ずしも縮尺通りでは無く、技術の理解に必要でない詳細、又は他の詳細を知覚し難くするような詳細は省略される場合があることが理解されよう。本技術は、必ずしも本明細書に例示された特定の実施形態に限定されないことが理解されよう。
本明細書に開示されるシステム及び方法を提供する為の技術及び構造が実装され得る例示的な概略図である。 図1に例示されるようなシステムを用いてデータを符号化することに関連する、本開示の例示的な方法のフローチャートである。 本開示の例示的なサブメソッドのフローチャートである。 本開示の別の例示的なサブメソッドのフローチャートである。 ハッシュテーブル作成に関連する、本開示の更に別の例示的なサブメソッドのフローチャートである。 入力データの符号化に関連する、本開示の更に別の例示的なサブメソッドのフローチャートである。 本技術による実施形態を実装する為に使用される例示的なコンピュータシステムの概略図である。 乃至 本開示の暗号化キー処理を実施する為のコード例を示す図である。
概要
一般に、本開示は、データセキュリティ及びプライバシーに関連する。より詳細には、本明細書のシステム及び方法は、一般に符号化と呼ばれる単一のプロセスにおいて、入力データファイル又はストリームを圧縮及び暗号化する為に使用され得る。
文脈上、データ圧縮と暗号化の基本的な特性と目標は互いに異なるものである。データ圧縮の目標が、データのパターンを利用して冗長性を減らし、従って出力を元のものよりも小さくすることであるのに対し、データ暗号化の目標は、パターンが見つからないようにデータを符号化し、従って入力データ又はストリーム内に含まれる情報を保護することである。
データ圧縮には、ストレージや伝送のコストを削減することにより、伝送中及び静止中のデータのサイズを縮小するという明確な利点がある。又、データ暗号化には、データファイル又はストリームのコンテンツが知られないように保護するという明確な利点がある。生成されるデータが年々増加し、プライバシーと情報のセキュリティに関心を持つエンドユーザが増えているので、データ圧縮と暗号化の組み合わせは幅広い応用性を有する。年毎に、作成、送信、保存されるデータの総量は増加している。クラウドコンピューティングやパーソナルコンピューティングデバイスの台頭と費用対効果を考えると、エンドユーザは、幾つかの大規模な集中管理ポイントのコンピューティングリソースに、より一層依存するようになってきている。ファイルやストリーム等のエンドユーザのデータを、中央処理設備への転送中、データの保存中、或いは処理待ちの間に保護することは、公共・民間の両領域の事業体にとって重要な差別化要因に成っている。データの送信と保存に掛かるコストは比較的固定されたままである。従って、送信又は保存されるデータの総量を削減すれば、データ送信又は保存をコストとしてカウントするビジネスを運営する為のコストを削減することができる。
本明細書に開示されるようにデータ圧縮と暗号化を組み合わせることにより、データ圧縮と暗号化の両方の個々の利点の全てが単一のプロセスで提供される。単一のプロセスは、圧縮及び暗号化の複数のステップの必要性を低減する。ステップ数の減少は、システムにおける故障点を減少させ、そのようなシステムを維持又は運用するコストを減少させ、エンドユーザに対するそのシステムの可用性を増大させることができる。
実施例
ここで図面を参照すると、図1は、本明細書に開示されるシステム及び方法を提供する為の技術及び構造が、データ符号化に関連して実施され得る例示的な概略図を示している。上述したように、符号化は、単一のエンドツーエンドプロセスにおけるデータの圧縮と暗号化の両方を含む。
乱数発生器を用いて生成した秘密キーを用いて、データを符号化(圧縮と暗号化の組み合わせ)するシステムが利用され得る。秘密キーは暗号化キーとして機能し、ハッシュテーブルキー、及びハッシュ関数を生成する為に使用される。システムは、ネットワーク110を介して通信可能に結合された符号化コンピュータ100と復号コンピュータ105を備え得る。又、システム100は、乱数発生器115と暗号化キー発生器120を含む。符号化コンピュータ100は、符号化モジュール103と二次暗号化モジュール109とを備え得る。復号コンピュータ105は、復号モジュール111と二次復号化モジュール113を備え得る。
ネットワーク110は、ケーブルネットワーク、インターネット、無線ネットワーク、並びに他のプライベート及び/又はパブリックネットワーク等の複数の異なるタイプのネットワークの何れか1つ又はその組み合わせを含んでもよい。幾つかの実施例では、ネットワーク110は、セルラー、Wi-Fi、又はWi-Fiダイレクトを含んでもよい。任意の短距離又は長距離無線又は有線通信が使用され得る。
別々のコンピューティングシステムが図示されているが、符号化コンピュータ100と復号コンピュータ105は同じ装置又はシステムに統合されてもよく、単一のシステム又は装置において安全なデータ送信を可能にする。符号化コンピュータ100と復号コンピュータ105は、同じ装置内のモジュールとして機能し得る。
本明細書に記載された機能は、ハードウェア、ソフトウェア、ファームウェア、デジタルコンポーネント、又はアナログコンポーネントの内の1つ以上で適宜実行され得る。例えば、符号化システム及び又は復号システムは、本明細書に記載されるシステム及び手順の内の1つ以上を実行するようにプログラムされ得る1つ以上の特定用途向け集積回路(ASIC)又はマイクロコントローラとして具現化され得る。特定の用語は、本明細書及び特許請求の範囲を通して、特定のシステム構成要素を指す為に使用される。当業者であれば理解できるように、構成要素は異なる名称で呼ばれることがある。本書は、名称は異なるが機能は異ならない構成要素を区別することを意図していない。
乱数発生器115は、暗号化キー発生器120によるキー生成のシードに使用されるエントロピーのビットを生成するように構成される。暗号化キー発生器120は、乱数発生器115からエントロピービットを受け取り、複数の暗号化キーを生成する。生成される暗号化キーの数は、設計要件に従って変化し得る。幾つかの実施形態では、各キーは128ビットキーであるが、他のサイズのキーも生成され得る。念の為、複数の暗号化キーの各々は、互いに同様の長さを有し得る。
複数の暗号化キーは、本明細書に開示されるように、データを符号化する為に使用され得る候補暗号化キーのプールを作成する為に生成される。幾つかの実施形態では、複数の暗号化キーから最適な暗号化キーが選択される。幾つかの実施形態では、複数の暗号化キーの量は、反復的な暗号化キー分析を可能にする為に十分に大きくあり得る。
最終的に選択される暗号化キーは、所望の量の圧縮と所望の量の暗号化(例えば、符号化)の両方を生じさせる候補暗号化キーの内の1つを含み得る。選択されたキーの発見は、複数の暗号化キーの夫々で複数のサンプルデータファイルを符号化及び復号して、どの暗号化キーを使用でき、どの暗号化キーを使用できないかを判断する反復プロセスを含み得る。比較は、複数の暗号化キーを使用することから生じるサンプルデータファイルの圧縮量を評価することを含み得る。
本開示に従ってデータを符号化する為に選択される最適な暗号化キー又は暗号化キーのセットは、そのようなキーを発見し、送信又は格納されたデータファイル又はストリームに対してチェックすることが容易であるので、複数の暗号化キーの内、最も最適な暗号化キーでは無い場合があることが理解されよう。
nビットのランダムに生成された暗号化キーが与えられると、ビット単位のインデックス付け関数(ビット単位のインデックス付け関数の使用は以下で説明する)に対して
((2^n)*n)-1種類の異なる最適開始位置を表す(2^n)-1種類の暗号化キーが存在することが理解されよう。別の言い方をすれば、全てのnビットのウィンドウサイズに対して、圧縮の為の最適な暗号化キーが存在する。nが十分に大きく、(2^n)-1次数が符号化及び/又は復号化関数の外部で知られていない場合、全てのnについて圧縮と暗号化を生じさせる暗号化キーが存在する。
更に、nが真にランダムであり、2^n-1の暗号化キーが真にランダムである場合、圧縮は生じない。暗号化キーを与えられたf(i)(即ち、符号化及び/又は復号化関数)の出力は、nの内容及びその暗号化キー(2^n)-1が知られていない場合にのみ、完全に暗号化される。
全ての最適な暗号化キーに対して、2番目に最適なもの、2番目に最適なもの、4番目に最適なもの等が、圧縮が行われなくなるまで存在する。又、多くの準最適暗号化キーが存在する(即ち、nを増大させる)。実際、|((2^n)-1)/(n))-(2^n)-1)|個の準最適暗号化キーが存在する。暗号化に使用する十分に大きい暗号化キーは、暗号化キーの総ビット数では決まらず、寧ろ(2^n)-1)/(n)で決まり得る。
理想的には、(2^n)-1)/(n)は、敵対者が現実的又は実現可能な時間又は金額で容易に格納又はチェックできる暗号化キーの数より大きくなければならない。幾つかの実施例では、暗号化キーのサイズは(2^n)-1)よりも大きく在るべきであり、(2^n)-1)/(n)は(2^n)-1の部分群である。(2^n)-1の暗号化キーとその部分群((2^n)-1)/(n))の全ての特性は、計算に関して同じである。
ハッシュテーブル135を生成する際に使用する為に選択される暗号化キー又は暗号化キーのセットは、暗号化キー(複数可)がサンプルファイル/データを圧縮及び暗号化する両方のやり方を比較することによって選択され得ることが理解されるであろう。即ち、圧縮及び暗号化の態様は、暗号化キーの内容に基づいて変化し得る。例えば、或る暗号化キーは、サンプルファイルを十分に圧縮できてもサンプルファイルを十分に暗号化することができない場合がある。別の暗号化キーは、サンプルファイルの圧縮は不十分であってもサンプルファイルの暗号化は十分に行うことができる。幾つかの実施形態では、符号化コンピュータ100は、複数の暗号化キーから、圧縮と暗号化の予め選択されたバランスを有する暗号化キーを選択するように構成され得る。一実施形態では、圧縮は、約8:1の比率であり得る。
様々な実施形態において、最良の圧縮の為に選択される暗号化キーは、n長の全てのバイナリ順列を表す標準キーを利用してもよい。バイナリ情報の系列は、特定の又は選択された長さを超えないようにしてもよい。別の暗号化キーは、n番目の最適な暗号化キーである組み合わせを生じさせ得る。別の暗号化キーは、圧縮用に最適でもなく暗号化用に最適でもなく、暗号化と圧縮の間の均衡であるものが選択され得る。
一実施形態では、選択された暗号化キー125は、実質的に、多種多様なバイトシーケンスが存在するようなサイズであってよい。理想的には、選択された暗号化キー125は、12~24ビットに関して48~64文字の表現を可能にし、可変長バイト符号化(即ち、図8で参照されるパラメータ「-c0」)の追加なしに50%+圧縮率を生じさせると共に、データ難読化を提供することが望ましい。一実施形態では、利用されるビットマスクのマスク長は、少なくとも8文字であることが好ましい。選択された暗号化キー125の内容が、選択された暗号化キー125が適用された時にデータがどれだけ広範に分散するかを決定し得るので、マスク長のサイズは運用要件に従って変化し得る。要約すると、上記の方法を用いて、選択された暗号化キー125として指定された複数の暗号化キーから単一の暗号化キーが選択される。
単一の暗号化キーを用いて、その単一の暗号化キーにビットマスクを適用することに基づいて、複数のハッシュテーブルキーを生成できる。本方法は又、選択された暗号化キー125からハッシュ関数127を生成するステップを含む。本方法は、ハッシュ関数127及び複数のハッシュキーからハッシュテーブル135を生成するステップを含む。
このように、本明細書で論じた様々なキーの内、暗号化キーと呼ばれる1つのキーは、データを暗号化する為に使用されるエンコーダ/暗号化キーを指す。暗号化キーは、幾つかの実施形態では、キーファイルの形態であり得る。ハッシュキーは、生成されたハッシュテーブル/マップのキー値を参照する。
例として、キー抽出のメカニズムは、以下の項目を用いて説明され得る。
・01<-1バイトのデータ
・01 23 45 67<-文書のキーファイル(例えば、サンプルファイル)からの1つの32ビットサイズの「チャンク」
・01 23 45 67 89 AB CD EF キーファイルから読み込んだ64ビットのチャンク(ワードと呼ばれる)[01 23 45 67 89 AB CD EF, FE DC BA 98 76 54 32 10]<-基本的な暗号化キーの例
・[00000001 00100011 01000101 01100111 10001001 10101011 11001101 11101111
・11111110 11011100 10111010 10011000 01110110 01010100 00110010 00010000]<-バイナリでの基本的な暗号化キー(標準的なMSbit-first形式で書かれている)
ハッシュテーブルはキーの各ビットに対して1つの値で生成されるので、この例では順不同マップに128の異なる値を持つことになる。マップ内のi番目の値は、総キー中のi番目のビットに関連する。ハッシュテーブル135は<i,j>成分を参照することができ、ここで、「i」は一致のインデックス又は開始位置であり、「j」は一致のビット単位の長さである。一般に、<i,j>に関して、iはビットインデックスであり、jはビット単位での一致の長さである。注:<i,j>は、<i mod j>とも考えられ得る。
幾つかの実施形態では、ハッシュ関数127を用いて、特定のハッシュキーに接続されたハッシュテーブル135内のデータの位置を特定するインデックス値を生成する。
次に、これらのデータは、渡されたビットマスク長で縮小される。例えば、コーデック構築に渡された時に4のビットマスクは、ハッシュテーブルの全てのエントリが4ビット長になることを意味する。例を挙げると、
・i=0:ワード1
・i=31:ワード1の後半+ワード2の前半
・i=95:ワード2の後半+ワード1の前半
・i=127:ワード2の最終ビット+ワード1の前方63ビット
例として、ビットマスクが12のハッシュテーブル135に追加される31番目の項目を考えると、以下の値:[10001001 10101011 11001101 11101111 11111110 11011100 10111010 10011000]が生成され、以下のハッシュテーブルキー10001001 1011でハッシュテーブルに追加される。概念的には、ハッシュテーブル135のエントリは連結リストとして機能し、同じキーを生成する入力データの全ての候補セグメントが、各エントリでリストに追加されるようになる。

上述のキーとマスク長4が与えられると、ハッシュテーブルの1つのエントリは次のようになる。
Figure 2023529948000002
ハッシュテーブル1
ハッシュキー:1001
値:(連結リスト)
1.01011001 11100010 01101010 11110011
2.10001001 10101011 11001101 11101111
3.11111001 11011101 10011111 01011011
ハッシュテーブル1の要素は上記の値と一致する。即ち、ハッシュテーブルのエントリの上にある参照番号は上記の1~3の値と一致する。参照番号の上(又は下)に延在する行は順番に並んでいる。例えば、1100101の値は、値(1)、(2)に対応し、部分的に値(3)に対応する。
ハッシュテーブルは、符号化プロセスにおいて、新しい文字列に対して潜在的なO(1)一致を提供する為に使用され得る。ハッシュキーで一致すると、次にエンコーダはリストを巡回し、右から最長のコンコーダンスがあるワードを見つけ、ハッシュキーと長さを報告する。これは速度の為の最適化であり、比較の回数を減らす為に使用され得る。
ハッシュテーブルが生成されると、符号化コンピュータ100による符号化のプロセスが発生し得る。上述したように、符号化は、圧縮と暗号化の両方を単一のステップで含む。大まかに言えば、圧縮と符号化は、上記に開示されたように生成されたハッシュテーブル135を用いて促進される。符号化コンピュータ100は、入力データ140(ファイル又はデータストリーム)を受け取り、受け取ったファイルの中でハッシュテーブル135のキーと一致する最長データシーケンスを検索し、対応するインデックス値を取得できる。
符号化コンピュータ100は、ハッシュテーブル135からのインデックス値(複数可)を用いて、入力データ140を、一般に「符号化データ145」と呼ばれる圧縮及び暗号化された表現に符号化する。念の為、符号化データ145は、データの長さが短縮されており、それによって入力データ140を圧縮している。又、インデックス値(複数可)の置換は、入力データ140を暗号化するように機能する。従って、符号化データ145はハッシュテーブル及びハッシュテーブルキーへの参照のみを含む。
幾つかの実施形態では、符号化コンピュータ100は、二次暗号化タイプを適用して符号化データ145を更に暗号化することができる。例えば、符号化コンピュータ100は、AES(高度暗号化標準)、HE(準同型暗号)、又は他の暗号化タイプを利用できる。これにより、暗号化された符号化データ160が生成される。この場合も、ここで参照される二次暗号化は、入力データを符号化する為に使用された圧縮/暗号化の複合プロセスで発生する暗号化とは異なるものである。二次暗号化タイプは二次暗号化キーを利用できる。
符号化コンピュータ100は、暗号化された符号化データ160をコンピュータネットワーク110上で復号コンピュータ105に送信することができる。暗号化されたバイナリデータの送信は、データが「通常の」数字のセットを含むので、他の暗号化されたデータファイルとして扱われ得る。
本明細書の方法は対称暗号化方法を利用する為、キーの配布の慎重な制御が使用され得る。ユーザは、データファイルと暗号化キーとを互いに離して保管し、夫々を別個の暗号化又は分離された送信方式で送信することができる。即ち、暗号化キーやハッシュ関数等のデータを符号化コンピュータと復号コンピュータとの間で共有する場合、これらのデータは符号化データ145(又は暗号化された符号化データ160)とは別個に送信され得る。
復号コンピュータ105は、選択された暗号化キー125、暗号化された符号化データ160、二次暗号化キー(二次暗号化が使用された場合)、及びハッシュ関数127を受信する。二次暗号化が使用された場合、復号コンピュータ105は、暗号化された符号化データ160を復号して、符号化データ145を復元することができる。次に、復号コンピュータ105は、上記に開示されたハッシュテーブル135と同じ複数のハッシュキー及び同じハッシュ関数127を用いて生成されたハッシュテーブル170(ハッシュテーブル135の再生コピー)を再生することにより、選択した暗号化キー125を用いて符号化データ145を復号できる。
一実施例では、ソースファイルからのコンテンツの着信ストリームは、64ビット長の値に切り捨てられる。ワードの署名は最下位ビットのマスク長であり(即ち、マスク長が8であればLSbyte)、次に、その署名がハッシュテーブルで検索される。一致するものがあれば、テーブルの連結リストを巡回し、最初に最もよく一致するものを見つける。その値が見つからない場合、エンコーダはスライディングウィンドウを用いてキー全体の線形巡回を行い、最長のリンクのエントリを見つける。
出力は、キーファイル内のビット位置と、一致するビット列の長さとの、順序付きペアのシーケンスである。64ビットワードの中には、キーが短すぎる場合、アルゴリズムの圧縮機能を逆転させて分割されるものもある。符号化アルゴリズムは、LS→MSの順に一致することが理解できるだろう。ここで行うように、MSbitを左、LSbitを右として値を表現するのが標準的な方法である。但し、ビットインデックスは連続する各バイトのLSbitからカウントされる。
Figure 2023529948000003
一使用例で表1を参照する。暗号化キー:[00000001 01100100 01101111 00111 011,10001 011 10101011 11001101 11101111]を用いて、「犬」[01100100,01101111,01100111]は、<8,16>、<27,8>で符号化され得るが、それは、8~24番目のキービットが文字列の最初の2文字をカバーし、最後の文字が27~35番目のキービットで伝達されるからである。
符号化データが提示されると、元のメッセージを組み立てるプロセスは、以下を含む:<i,j>の各ペアについて、暗号化キーファイルのi番目のビットに行き、jビットを読み取る。次に、この情報を64ビットのワードの連続的なストリームに段階化し、それらのワードを書き出す。
従って、メッセージ<8,16>,<27,8>は、デコーダが暗号化キーの8番目の位置から始まる16ビットと、キーの27番目の位置から始まる8ビットとをコピーすることを必要とし、01100100,01101111,01100111・・・即ち「犬」に至ることになる。
図2は、本開示の例示的な方法を示している。この方法は、暗号化キーにビットマスクを適用することによって複数のハッシュテーブルキーを作成するステップ202を含み得る。文脈上、ビットマスクのマスク長は、上記に開示されたハッシュテーブルキーのビット幅であり、それに対応して、入力データの検索値のビット幅である。暗号化キーは、乱数発生器を用いて生成された複数の可能な暗号化キー又は候補の暗号化キーから得られた特定の選択された暗号化キーを含む。幾つかの実施例では、この方法は、ランダムプロセスを用いて複数の暗号化キーを生成するステップと、入力データの圧縮と暗号化の両方を行う暗号化キーの能力に基づいて、複数の暗号化キーから暗号化キーを選択するステップも含み得る。
この方法は、暗号化キーにハッシュ関数を適用するステップ204と、ハッシュ関数を用いてハッシュテーブルを作成するステップ206をも含み得る。ハッシュテーブルは、複数のハッシュテーブルキーとインデックス値を含むことが理解されよう。念の為、インデックス値は各々、複数のハッシュテーブルキーの内の1つに接続されたハッシュテーブルのデータの位置を特定している。
ハッシュテーブルが作成されると、方法は、入力データを受け取るステップ208と、入力データを符号化して符号化データを生成するステップ210を含み得る。上述の通り、符号化は、暗号化キーとハッシュテーブルを使用した入力データの圧縮と暗号化の両方を含む。
図3は、選択された暗号化キーを選出する方法である。この方法は、複数の暗号化キーサンプルデータの各々が、符号化データを作成する為の複数の暗号化キーの内1つを伴い得るステップ302を含み得る。方法は更に、符号化データを復号して復号データを作成するステップ304を含む。次に、方法は、復号データを符号化データと比較するステップ306と、その比較に基づいて暗号化キーを選択するステップ308を含み得る。
図4は、本開示の方法の別の実施例であり、符号化データを暗号化して、暗号化された符号化データである暗号文を作成するステップ402を含む。上述の通り、この暗号化は、AES、HE又は他の所望の暗号化方法を含み得る。方法は、暗号化された符号化データを、暗号化キーと共に受信側に送信するステップ404をも含み得る。
方法は更に、暗号化された符号化データを、暗号化キーを用いて復号化して符号化データを取得するステップ406と、ハッシュ関数と複数のハッシュテーブルキーを用いてハッシュテーブルを再生するステップ408を含み得る。幾つかの実施例では、方法は、ハッシュテーブルと暗号化キーを用いて符号化データを復号するステップ410を含む。
図5は、ハッシュテーブル作成に関連する本開示の方法の別の実施例である。この方法は、暗号化キー内の各ビットに値を作成して、順不同マッピングで異なる値を生成するステップ502を含み得る。方法は、ビットマスク長を適用して順不同マッピングを縮小するステップ504をも含み得る。念の為、順不同マッピングのi番目の値は、暗号化キーのi番目のビットに相関する。幾つかの実施形態において、ハッシュテーブルは連結リストを含む。
方法は、複数のハッシュテーブルキーの内の1つと一致する入力データ中の最長データシーケンスを検索することに関連する諸ステップをも含み得る。従って、方法は、連結リストを巡回して最長データシーケンスを探し出すステップ506と、複数のハッシュテーブルキーの内の一致する1つと最長データシーケンスの長さとを報告するステップ508を含み得る。
図6は、入力データの符号化に関連する、フローチャートとして図示された別の例示的な方法である。この方法は、入力データをセグメントに分割するステップ602を含み得る。方法は、セグメントの各々の署名を取得するステップ604を含み得る。これは、任意の所望のハッシュ方法を用いて各セグメントをハッシュ化することを含み得る。
方法は、ハッシュテーブル内で署名を検索するステップ606を含み得る。署名に一致するものが見つかると、方法は、最も一致するエントリが見つかるまで連結リストを巡回するステップ608を含み得る。或いは、一致するものが見つからない場合、方法は、ウィンドウ関数を用いて暗号化キーを巡回し、連結リストで最長のエントリを見つけるステップ610を含み得る。
この場合も、符号化のプロセスは、暗号化キー内のビット位置と、一致するエントリの長さとを含む順序付きペアのシーケンスを生成する。順序付きペアのシーケンスは、入力データの圧縮され暗号化されたバージョンである。幾つかの実施例では、このプロセスで使用されるビットマスク長は8ビットであり、入力データの8:1圧縮が可能である。
図7は、コンピュータシステム1の形態の例示的なマシンの図解であり、コンピュータシステム1内で、本明細書で論じた方法論の何れか1つ以上をマシンに実行させる為の命令のセットが実行され得る。様々な例示的な実施形態において、マシンは、スタンドアロンデバイスとして動作するか、又は他のマシンに接続(例えば、ネットワーク化)されてもよい。ネットワーク化された展開において、マシンは、サーバ・クライアントネットワーク環境におけるサーバ又はクライアントマシンの能力で、或いはピアツーピア(又は分散)ネットワーク環境におけるピアマシンとして動作してもよい。マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、携帯音楽プレーヤー(例えば、ムービング・ピクチャー・エクスパーツ・グループ・オーディオ・レイヤー3(MP3)プレーヤー等の携帯ハードドライブオーディオ装置)、ウェブアプライアンス、ネットワークルータ、スイッチ、ブリッジ、又はそのマシンによって行われるべき動作を指定する命令のセット(連続又はその他)を実行できる任意のマシンであってもよい。更に、単一のマシンのみが図示されているが、用語「マシン」は、本明細書で論じる方法論の何れか1つ以上を実行する為の命令のセット(又は複数のセット)を個別に又は共同で実行するマシンの任意の集合も含むと見做されるものとする。
コンピュータシステム1は、プロセッサ又は複数のプロセッサ(複数可)5(例えば、中央処理装置(CPU)、グラフィックス処理装置(GPU)、又はその両方)と、バス20を介して互いに通信するメインメモリ10及びスタティックメモリ15とを含む。コンピュータシステム1は更に、ビデオディスプレイ35(例えば、液晶ディスプレイ(LCD))を含んでもよい。又、コンピュータシステム1は、英数字入力装置(複数可)30(例えば、キーボード)、カーソル操作装置(例えば、マウス)、音声認識又は生体認証装置(図示せず)、駆動装置37(ディスク駆動装置とも呼ぶ)、信号発生装置40(例えば、スピーカー)及びネットワークインターフェース装置45を含んでもよい。コンピュータシステム1は更に、データを暗号化するデータ暗号化モジュール(図示せず)を含んでもよい。
駆動装置37は、本明細書に記載された方法論又は機能の何れか1つ以上を具現化又は利用する1つ以上の命令及びデータ構造(例えば、命令55)のセットが格納されているコンピュータ又は機械可読媒体50を含む。命令55は又、コンピュータシステム1によるその実行中に、完全に又は少なくとも部分的に、メインメモリ10内及び/又はプロセッサ(複数可)5内に存在してもよい。メインメモリ10及びプロセッサ(複数可)5は又、機械可読媒体を構成してもよい。
命令55は更に、多数の周知の転送プロトコル(例えば、ハイパーテキスト・トランスファー・プロトコル(HTTP))の何れか1つを利用して、ネットワークインターフェース装置45を介してネットワークを介して送信又は受信されてもよい。機械可読媒体50は、例示的な実施形態では単一の媒体であるように示されているが、「コンピュータ可読媒体」という用語は、1つ以上の命令セットを格納する単一の媒体又は複数の媒体(例えば、集中若しくは分散データベース及び/又は関連キャッシュとサーバ)を含むものと解釈されるべきである。又、「コンピュータ可読媒体」という用語は、マシンによる実行の為の命令セットを格納、符号化、又は搬送することができ、マシンに本願の方法論の何れか1つ以上を実行させる媒体、或いはそのような命令セットによって利用される、又はそれに関連するデータ構造を格納、符号化、又は搬送することができる任意の媒体を含むものと解釈するものとする。「コンピュータ可読媒体」という用語は、それに応じて、固体メモリ、光学及び磁気媒体、並びに搬送波信号を含むと見做されるが、これらに限定されないものとする。そのような媒体は又、限定されないが、ハードディスク、フロッピーディスク、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)等を含み得る。本明細書に記載された例示的な実施形態は、コンピュータにインストールされたソフトウェアを備えた動作環境において、ハードウェアにおいて、又はソフトウェアとハードウェアの組み合わせにおいて実装され得る。
コンピュータシステム1において提供される構成要素は、本開示の実施形態と共に使用するのに適し得るコンピュータシステムにおいて典型的に見られるものであり、当技術分野において周知のそのようなコンピュータ構成要素の広いカテゴリを表すことを意図している。従って、コンピュータシステム1は、パーソナルコンピュータ(PC)、ハンドヘルドコンピュータシステム、電話、モバイルコンピュータシステム、ワークステーション、タブレット、ファブレット、携帯電話、サーバ、ミニコンピュータ、メインフレームコンピュータ、ウェアラブル、又は任意の他のコンピュータシステムであり得る。又、コンピュータは、異なるバス構成、ネットワーク化されたプラットフォーム、マルチプロセッサプラットフォーム等を含んでもよい。UNIX(登録商標)、LINUX、WINDOWS(登録商標)、MAC OS、PALM OS、QNX ANDROID(登録商標)、IOS、CHROME、TIZEN、及び他の適切なオペレーティングシステムを含む様々なオペレーティングシステムが使用されてもよい。
上述した機能の幾つかは、記憶媒体(例えば、コンピュータ可読媒体)に格納される命令で構成されてもよい。命令は、プロセッサによって検索され、実行されてもよい。記憶媒体の幾つかの例は、メモリ装置、テープ、ディスク等である。命令は、プロセッサによって実行されると動作可能であり、プロセッサに、本技術に合致した動作を指示する。当業者は、命令、プロセッサ(複数可)、及び記憶媒体に精通している。
幾つかの実施形態では、コンピュータシステム1は、コンピューティングクラウド内で動作する仮想マシン等の、クラウドベースのコンピューティング環境として実装され得る。他の実施形態では、コンピュータシステム1は、それ自体が、コンピュータシステム1の機能性が分散方式で実行される、クラウドベースのコンピューティング環境を含んでもよい。従って、コンピュータシステム1は、コンピューティングクラウドとして構成される場合、以下でより詳細に説明されるように、様々な形態の複数のコンピューティングデバイスを含んでもよい。
一般に、クラウドベースのコンピューティング環境は、典型的には、(ウェブサーバ内のような)プロセッサの大規模なグループの計算能力を結合し、及び/又はコンピュータメモリ若しくはストレージデバイスの大規模なグループの記憶容量を結合するリソースである。クラウドベースのリソースを提供するシステムは、その所有者によって排他的に利用されてもよいし、そのようなシステムは、大規模な計算又はストレージリソースの利益を得る為にコンピューティングインフラ内にアプリケーションを展開する外部ユーザがアクセス可能であってもよい。
クラウドは、例えば、コンピュータ装置1等の複数のコンピューティング装置を備えたウェブサーバのネットワークによって形成され、各サーバ(又は少なくともその内の複数)は、プロセッサ及び/又はストレージリソースを提供する。これらのサーバは、複数のユーザ(例えば、クラウドリソースの顧客又は他のユーザ)により提供されるワークロードを管理する。典型的には、各ユーザは、リアルタイムで、時には劇的に変動するワークロードの要求をクラウドに対して行う。これらの変動の性質及び程度は、典型的には、ユーザに関連するビジネスの種類に依存する。
本明細書に記載された処理を実行するのに適した任意のハードウェアプラットフォームが、本技術と共に使用するのに適していることは注目に値する。本明細書で使用される「コンピュータ可読記憶媒体」及び「コンピュータ可読記憶メディア」という用語は、実行の為にCPUに命令を提供することに関与する任意の媒体又はメディアを意味する。そのようなメディアは、不揮発性メディア、揮発性メディア、及び伝送メディアを含むがこれらに限定されない、多くの形態を取り得る。不揮発性メディアは、例えば、固定ディスクのような光ディスク又は磁気ディスクを含む。揮発性メディアは、例えば、システムRAM等のダイナミックメモリを含む。伝送メディアは、取り分け、同軸ケーブル、銅線、光ファイバー等を含み、バスの一実施形態を含む電線も含まれる。伝送メディアは、無線周波数(RF)及び赤外線(IR)データ通信中に発生するような音響波又は光波の形態を取り得る。コンピュータ可読メディアの一般的な形態は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、その他の磁気媒体、CD-ROMディスク、デジタルビデオディスク(DVD)、その他の光媒体、マーク又はホールのパターンを有するその他の物理媒体、RAM、PROM、EPROM、EEPROM、FLASHEPROM、その他のメモリチップ又はデータ交換アダプタ、搬送波、その他コンピュータが可読な任意の媒体を含む。
1つ以上の命令の1つ以上のシーケンスを実行の為にCPUに搬送することに、様々な形態のコンピュータ可読メディアが関与してもよい。バスがデータをシステムRAMに搬送し、そこからCPUが命令を取り出して実行する。システムRAMによって受信された命令は、CPUによる実行の前又は後に、任意に固定ディスクに格納され得る。
本技術の態様の為の動作を実行する為のコンピュータプログラムコードは、Java、Smalltalk、C++等のオブジェクト指向プログラミング言語及び「C」プログラミング言語等の従来の手続き型プログラミング言語又は同様のプログラミング言語を含む1つ以上のプログラミング言語の任意の組み合わせで記述されてもよい。プログラムコードは、ユーザのコンピュータ上で完全に実行してもよいし、ユーザのコンピュータ上で部分的に、スタンドアロンのソフトウェアパッケージとして実行してもよいし、部分的にユーザのコンピュータ上且つ部分的にリモートコンピュータ上で実行してもよいし、又はリモートコンピュータ又はサーバー上で完全に実行してもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、或いは接続は外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)行われてもよい。
前述の詳細な説明は、詳細な説明の一部を構成する添付の図面への参照を含む。図面は、例示的な実施形態に従った図解を示す。本明細書において「実施例」とも呼ばれるこれらの例示的な実施形態は、当業者が本主題を実践できるように十分に詳細に説明されている。実施形態は組み合わせることができ、他の実施形態を利用することができ、又は構造的、論理的、及び電気的な変更を、特許請求の範囲から逸脱すること無く行うことができる。従って、以下の詳細な説明は、限定的な意味で解釈されるものでは無く、その範囲は、添付の請求項及びその等価物によって定義される。
本書では、特許文献で一般的であるように、「a」又は「an」という用語は、1つ又は複数を含むように使用される。本書では、用語「又は」は、特に断らない限り、「A又はB」が「AだがBではない」、「BだがAではない」、及び「A及びB」を含むように、非排他的な「又は」を指す為に使用されている。更に、本書で言及されている全ての出版物、特許及び特許文書は、個別に参照することにより本書に組み込まれるものとして、その全体が参照により本書に組み込まれる。本書と参照により組み込まれた文書との間で用法に矛盾が有る場合、組み込まれた文献の用法は本書の用法を補足するものと見做され、調整不可能な矛盾については本書の用法が支配する。
以下の請求項における全ての手段又はステッププラスファンクションエレメントの対応する構造、材料、行為、及び等価物は、請求項に具体的に記載される他の請求項要素との組み合わせで機能を実行する為の任意の構造、材料、行為を含むことを意図している。本技術の説明は、例示及び説明の為に提示されたが、網羅的であること、又は開示された形態での発明に限定されることを意図するものではない。多くの修正及び変形が、本発明の範囲及び主旨から逸脱すること無く、当業者には明らかであろう。例示的な実施形態は、本技術の原理及びその実用化を最も良く説明する為に、又、当業者が、企図される特定の用途に適するように様々な変更を伴う様々な実施形態について本発明を理解できるように、選択及び説明されたものである。
以上、様々な実施形態について説明したが、これらは例示としてのみ提示されたものであり、限定するものではないことを理解されたい。説明は、本明細書に記載された特定の形態に技術の範囲を限定することを意図していない。従って、好ましい実施形態の広がり及び範囲は、上述した例示的な実施形態の何れによっても限定されるべきではない。上記の説明は例示的なものであり、制限的なものではないことを理解されたい。それどころか、本説明は、添付の特許請求の範囲によって定義される如くに、又は他様に当業者によって理解されるような技術の主旨及び範囲内に含まれ得る代替物、修正物、及び等価物を網羅することを意図している。従って、本技術の範囲は、上記の説明を参照して決定されるべきではなく、代わりに、添付の請求項を参照して、その等価物の完全な範囲と共に決定されるべきである。
100 符号化コンピュータ
103 符号化モジュール
105 復号コンピュータ
109 二次暗号化モジュール
110 ネットワーク
111 復号モジュール
113 二次復号化モジュール
115 乱数発生器
120 暗号化キー発生器
125 暗号化キー
127 ハッシュ関数
135、170 ハッシュテーブル
140 入力データ
145 符号化データ
160 暗号化された符号化データ

Claims (20)

  1. 方法であって、
    暗号化キーにビットマスクを適用することによって複数のハッシュテーブルキーを作成するステップと、
    前記暗号化キーにハッシュ関数を適用するステップと、
    前記ハッシュ関数を用いてハッシュテーブルを作成するステップであって、前記ハッシュテーブルは、前記複数のハッシュテーブルキーとインデックス値とを含み、前記インデックス値は夫々、前記複数のハッシュテーブルキーの内の1つに接続されている前記ハッシュテーブル内のデータの位置を特定している、ステップと、
    入力データを受け取るステップと、
    前記入力データを符号化して符号化データを生成するステップであって、前記符号化は、前記暗号化キーと前記ハッシュテーブルを用いた前記入力データの圧縮と暗号化の両方を含むステップと、
    を含む方法。
  2. 更に、
    ランダムプロセスを用いて複数の暗号化キーを生成するステップと、
    入力データの圧縮と暗号化の両方に関する前記暗号化キーの能力に基づいて、前記複数の暗号化キーから前記暗号化キーを選択するステップと、を含む請求項1に記載の方法。
  3. 前記暗号化キーは、
    前記複数の暗号化キーの夫々について、前記複数の暗号化キーの内の1つを用いてサンプルデータを符号化し、符号化データを作成するステップと、
    前記符号化データを復号して、復号データを作成するステップと、
    前記復号データを前記符号化データと比較するステップと、
    前記比較に基づいて前記暗号化キーを選択するステップと、によって選択される、請求項2に記載の方法。
  4. 更に、前記符号化データを暗号化し、暗号化された符号化データである暗号文を作成するステップを含む、請求項1に記載の方法。
  5. 更に、前記暗号化された符号化データを、前記暗号化キーと共に受信側に送信するステップを含む、請求項1に記載の方法。
  6. 更に、前記暗号化キーを用いて前記暗号化された符号化データを復号して、前記符号化データを取得するステップと、
    前記ハッシュ関数と前記複数のハッシュテーブルキーとを用いてハッシュテーブルを再生するステップと、
    前記ハッシュテーブルと前記暗号化キーを用いて、前記符号化データを復号するステップと、を含む請求項5に記載の方法。
  7. 前記ハッシュテーブルは、
    前記暗号化キーの前記ビットの各々について値を作成し、順不同マッピングで異なる値を生成するステップと、
    ビットマスク長を適用することにより、前記順不同マッピングを縮小し、前記順不同マッピングのi番目の値は前記暗号化キーのi番目のビットに相関し、前記ハッシュテーブルは連結リストを含む、ステップと、
    によって作成される、請求項1に記載の方法。
  8. 前記入力データを符号化して符号化データを生成するステップは、
    最初に、複数のハッシュテーブルキーの内の1つに一致する、前記入力データ中の最長データシーケンスを検索するステップと、
    前記最長データシーケンスに一致する前記インデックス値の内の対応する1つを前記複数のハッシュテーブルキーから取得するステップと、
    前記インデックス値の内の更なるインデックス値を取得して、前記入力データの残りを符号化するステップと、
    を含む請求項7に記載の方法。
  9. 前記複数のハッシュテーブルキーの内の1つに一致する前記入力データ中の最長データシーケンスを検索するステップは、
    前記連結リストを巡回し、前記最長データシーケンスを探し出すことを更に含む、ステップと、
    前記複数のハッシュテーブルキーの内の前記一致するハッシュテーブルキーと、前記最長データシーケンスの長さとを報告するステップと、を含む、請求項8に記載の方法。
  10. 符号化するステップは、
    入力データをセグメントに分割するステップと、
    前記セグメントの夫々の署名を取得するステップと、
    前記ハッシュテーブル内で前記署名を検索するステップと、
    前記署名に一致するものが見つかった場合、前記連結リストを、最も一致するエントリが見つかるまで巡回するステップと、
    一致するものがない場合、ウィンドウ関数を用いて暗号化キーを巡回し、前記連結リスト中の最長エントリを見つけるステップと、を含む請求項1に記載の方法。
  11. 符号化することにより、前記暗号化キー内のビット位置と前記一致するエントリの長さとを含む順序付きペアのシーケンスを生成する、請求項10に記載の方法。
  12. 前記順序付きペアのシーケンスは、前記入力データの圧縮及び暗号化バージョンである、請求項11に記載の方法。
  13. 前記ビットマスク長が8ビットであり、前記入力データの8:1圧縮を可能にする、請求項11に記載の方法。
  14. システムであって、
    プロセッサと、
    命令を格納する為のメモリとを備え、前記プロセッサは、前記命令を実行して、以下:
    暗号化キーにビットマスクを適用することによって、複数のハッシュテーブルキーを作成するステップと、
    前記暗号化キーにハッシュ関数を適用するステップと、
    前記ハッシュ関数を用いてハッシュテーブルを作成するステップであって、前記ハッシュテーブルは前記複数のハッシュテーブルキーとインデックス値を含み、前記インデックス値は夫々、前記複数のハッシュテーブルキーの内の1つに接続されている前記ハッシュテーブル内のデータの位置を特定しているステップと、
    入力データを受け取るステップと、
    前記入力データを符号化して符号化データを生成するステップであって、前記符号化は、前記暗号化キーと前記ハッシュテーブルを用いた前記入力データの圧縮と暗号化の両方を含むステップと、を行うシステム。
  15. 前記プロセッサは、
    ランダムプロセスを用いて複数の暗号化キーを生成し、
    前記入力データの圧縮と暗号化の両方を行う前記暗号化キーの能力に基づいて、前記複数の暗号化キーから前記暗号化キーを選択する、ように構成されている、請求項14に記載のシステム。
  16. 前記プロセッサは、前記暗号化キーを選択して、
    前記複数の暗号化キーの夫々について、前記複数の暗号化キーの内の1つを用いてサンプルデータを暗号化して符号化データを作成し、
    前記符号化データをデコードして復号データを作成し、
    前記復号データを前記符号化データと比較し、
    前記比較に基づいて前記暗号化キーを選択する、請求項14に記載のシステム。
  17. 前記プロセッサは、前記符号化データを暗号化して暗号文を作成し、
    前記暗号文を前記暗号化キーと共に受信側に送信し、
    前記暗号化キーを用いて前記暗号文を復号し、前記符号化データを復元し、
    前記ハッシュ関数と前記複数のハッシュテーブルキーを用いてハッシュテーブルを再生し、
    前記ハッシュテーブルを用いて前記符号化データを解凍する、ように構成されている、請求項14に記載のシステム。
  18. 前記プロセッサは、
    暗号化キーの前記ビットの各々について値を作成し、順不同マッピングを有する異なる値を生成するステップと、
    ビットマスク長を適用することによって前記順不同マッピングを縮小させ、前記順不同マッピングのi番目の値が前記暗号化キーのi番目のビットに相関し、前記ハッシュテーブルは連結リストを含む、ステップと、
    最初に、前記複数のハッシュテーブルキーの内の1つに一致する、前記入力データ中の最長データシーケンスを検索するステップと、
    前記複数のハッシュテーブルキーの中から、前記最長データシーケンスに一致する前記インデックス値の内の対応するインデックス値を取得するステップと、
    前記インデックス値の内の更なるインデックス値を取得して、前記入力データの残りを符号化するステップと、によって前記ハッシュテーブルを作成するように構成される、請求項14に記載のシステム。
  19. 前記複数のハッシュテーブルキーの内の1つに一致する前記入力データ中の最長データシーケンスを検索するステップは、
    前記連結リストを巡回し、前記最長データシーケンスを探し出すステップと、
    前記複数のハッシュテーブルキーの内の前記一致するハッシュテーブルキーと、前記最長データシーケンスの長さとを報告するステップと、を含む、請求項18に記載のシステム。
  20. 前記プロセッサは、
    入力データをセグメントに分割し、
    前記セグメントの各々の署名を取得し、
    前記ハッシュテーブルで署名を検索し、
    前記署名に一致するものが見つかった時、最も一致するエントリが見つかるまで前記連結リストを巡回し、
    一致するものが無い場合、ウィンドウ関数を用いて前記暗号化キーを巡回し、前記連結リストの最長のエントリを見つける、ように構成されている、請求項19に記載のシステム。
JP2022576506A 2020-06-11 2021-06-01 データの圧縮と暗号化の為のシステム及び方法 Pending JP2023529948A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/899,457 2020-06-11
US16/899,457 US11533173B2 (en) 2020-06-11 2020-06-11 Systems and methods for compression and encryption of data
PCT/US2021/035272 WO2021252227A1 (en) 2020-06-11 2021-06-01 Systems and methods for compression and encryption of data

Publications (1)

Publication Number Publication Date
JP2023529948A true JP2023529948A (ja) 2023-07-12

Family

ID=78826153

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022576506A Pending JP2023529948A (ja) 2020-06-11 2021-06-01 データの圧縮と暗号化の為のシステム及び方法

Country Status (7)

Country Link
US (1) US11533173B2 (ja)
EP (1) EP4165780A1 (ja)
JP (1) JP2023529948A (ja)
KR (1) KR20230024342A (ja)
AU (1) AU2021287730A1 (ja)
CA (1) CA3181813A1 (ja)
WO (1) WO2021252227A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114301583B (zh) * 2021-12-22 2023-10-24 阿里巴巴(中国)有限公司 密文压缩方法、装置、设备和存储介质
CN117354059B (zh) * 2023-12-04 2024-03-29 广州汇通国信科技有限公司 一种基于云边端协同的数据共享方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778102A (en) * 1995-05-17 1998-07-07 The Regents Of The University Of California, Office Of Technology Transfer Compression embedding
US20010042204A1 (en) * 2000-05-11 2001-11-15 David Blaker Hash-ordered databases and methods, systems and computer program products for use of a hash-ordered database
US7254232B2 (en) * 2001-02-14 2007-08-07 Copytele, Inc. Method and system for selecting encryption keys from a plurality of encryption keys
JP2005020346A (ja) * 2003-06-26 2005-01-20 Konica Minolta Business Technologies Inc データ秘密化装置、データ復元装置、画像データ保存装置及び画像形成装置
US9143323B2 (en) * 2005-04-04 2015-09-22 Blackberry Limited Securing a link between two devices
US9497172B2 (en) * 2005-05-23 2016-11-15 Litera Corp. Method of encrypting and transferring data between a sender and a receiver using a network
US8769279B2 (en) 2006-10-17 2014-07-01 Verifone, Inc. System and method for variable length encryption
US8082359B2 (en) 2009-12-23 2011-12-20 Citrix Systems, Inc. Systems and methods for determining a good RSS key
US8645713B2 (en) * 2011-03-22 2014-02-04 Fujitsu Limited Encrypting method, recording medium of encrypting program, decrypting method, and recording medium of decrypting program
US10785545B2 (en) * 2012-04-20 2020-09-22 The Board Of Regents Of The University Of Texas System Systems and methods for simultaneous compression and encryption
KR101956031B1 (ko) * 2012-10-15 2019-03-11 삼성전자 주식회사 데이터 압축 장치 및 방법, 데이터 압축 장치를 포함하는 메모리 시스템
JP6028567B2 (ja) * 2012-12-28 2016-11-16 富士通株式会社 データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法
US10339112B1 (en) * 2013-04-25 2019-07-02 Veritas Technologies Llc Restoring data in deduplicated storage
US10469383B2 (en) * 2016-11-10 2019-11-05 International Business Machines Corporation Storing data in association with a key within a hash table and retrieving the data from the hash table using the key
KR101987025B1 (ko) * 2017-05-31 2019-06-10 삼성에스디에스 주식회사 암호화 처리 방법 및 그 장치
US20200151356A1 (en) * 2017-08-11 2020-05-14 Duality Technologies, Inc. System and method for fast and efficient searching of encrypted ciphertexts
US10491240B1 (en) * 2019-01-17 2019-11-26 Cyborg Inc. Systems and methods for variable length codeword based, hybrid data encoding and decoding using dynamic memory allocation
US10904001B2 (en) * 2019-05-24 2021-01-26 Tokenex, Inc. Data format-preserving encryption, tokenization, and access control for vaultless systems and methods

Also Published As

Publication number Publication date
US11533173B2 (en) 2022-12-20
WO2021252227A1 (en) 2021-12-16
EP4165780A1 (en) 2023-04-19
AU2021287730A1 (en) 2023-02-02
KR20230024342A (ko) 2023-02-20
CA3181813A1 (en) 2021-12-16
US20210391990A1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
US8533456B2 (en) Accelerating stream cipher operations using single and grid systems
CN102780685B (zh) 用于对数据进行压缩和加密的方法及系统
US20140082376A1 (en) System, Method and Apparatus for Securely Saving/Retrieving Data on a Data Storage
CN111698576B (zh) 信息加密方法、解密方法、服务器、客户端及介质
WO2016140033A1 (en) Classification device and method of performing a real- time classification of a data stream, computer program product, and system
JP2023529948A (ja) データの圧縮と暗号化の為のシステム及び方法
US11586588B2 (en) System and methods for bandwidth-efficient cryptographic data transfer
CN115225409A (zh) 基于多备份联合验证的云数据安全去重方法
CN116488814A (zh) 一种基于fpga的数据加密的安全计算方法
US10305865B2 (en) Permutation-based content encryption with manifests in a content centric network
US20230401173A1 (en) System and methods for secure deduplication of compacted data
US11477172B2 (en) Securing data compression
Nguyen et al. A probabilistic integrity checking approach for dynamic data in untrusted cloud storage
CN111030930B (zh) 基于去中心化网络数据分片传输方法、装置、设备及介质
Venkatesh et al. MLPD: a multi-layer protection with deduplication technique to preserve audio file transmission over the public domain
US9734154B2 (en) Method and apparatus for storing a data file
Sharma et al. Lossless data compression technique with encryption based approach
US20240113729A1 (en) System and method for data compression with homomorphic encryption
US9654286B2 (en) Content gathering using shared key
US20240154622A1 (en) System and method for extracting data from a compressed and encrypted data stream
Pinnapati et al. Encryption and Compression for Big Data Analytics comparative Study
Sri Gurubaran et al. Storage Optimization Using Secure Image Hashing
WO2021087001A1 (en) System and methods for bandwidth-efficient cryptographic data transfer
WO2023064823A1 (en) Encoding/decoding system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240528