JP6285536B2 - データを暗号化するシステムおよび方法 - Google Patents

データを暗号化するシステムおよび方法 Download PDF

Info

Publication number
JP6285536B2
JP6285536B2 JP2016509115A JP2016509115A JP6285536B2 JP 6285536 B2 JP6285536 B2 JP 6285536B2 JP 2016509115 A JP2016509115 A JP 2016509115A JP 2016509115 A JP2016509115 A JP 2016509115A JP 6285536 B2 JP6285536 B2 JP 6285536B2
Authority
JP
Japan
Prior art keywords
key
data
pseudo
random
key field
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.)
Active
Application number
JP2016509115A
Other languages
English (en)
Other versions
JP2016517243A (ja
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 リソフトデブ,インコーポレイテッド
Publication of JP2016517243A publication Critical patent/JP2016517243A/ja
Application granted granted Critical
Publication of JP6285536B2 publication Critical patent/JP6285536B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Description

(関連出願の相互参照)
本出願は、2013年4月18日に出願された「データを暗号化するシステムおよび方法」という発明の名称の米国仮出願第61/813,186号の優先権を主張し、かつ出願日によりその権利を有する。上記出願の開示内容は、参照により本明細書に組み込まれる。
出願人は、本出願において引用または参照される、ありとあらゆる特許および公開特許出願を参照により本明細書に組み込む。
本発明の態様は一般に、コンピュータ暗号法に関し、より詳細には、データを暗号化する改良されたシステムおよび関連方法に関する。
背景としては、電子データへのアクセスおよび関連する通信を保護するために、ここ何年間にわたって様々な方法が開発されてきた。一般的な方法では、データを暗号化および復号化するためにキーを用いる対称暗号化アルゴリズムが使用される。キーは、それがなければデータを容易に復号化することができないように使用される。そのような方法に関する主要な問題は、キーを所有するものは誰でも、キーを使用してデータを復号化できるという点にある。いくつかのキー難読化技術により、ブラックキーまたはキー暗号化キー(「KEK」)としても知られているマスターキーを使用してキーを暗号化する方法を用いて、この問題を解決することが試みられてきた。言い換えると、データを暗号化するために使用されるキー自体がKEKにより暗号化される。しかし、そのようなシステムは通常、比較的高価なハードウェアを必要とするため、多様な用途において有用でないことが多い。さらに、この種のシステムは、「ブラックボックス」が比較的安全であるハードウェアベースのシステムにおいて良好に機能する傾向があり、通常、ソフトウェアベースのシステムまたは家庭/消費者環境では、どこにKEKを安全に格納するかが問題となるため、良好に機能しない。これは、KEKが常に危険に曝されていれば、発行される全てのキーがそれにより脆弱になることに起因する。従って、多くの暗号化方法は、KEKによるキーの暗号化に依存する代わりに、単に、ランダムに生成されるキーに依存している。
コンピュータなどの電子装置は多くの場合、賭博、統計的サンプリング、コンピューターシミュレーション、および予測不可能な結果を生成するのにランダム配列が有用な他の分野などの様々な他の目的に沿った暗号法のために、ランダム配列を生成することができる。電子装置は、ハードウェア乱数発生器を用いてランダム配列を生成するように構成されているものもあれば、ソフトウェアに依存するものもある。これらのソフトウェアベースの技術は多くの場合、所定数のランダム配列を生成する。この種のソフトウェアは一般に、典型的なハードウェア乱数発生器と比較した場合、完全にランダムな配列を生成しないため、疑似乱数発生器(「PRNG」)とも呼ばれる。あらゆるPRNGの動作において欠陥が露呈される少なくとも2つの主要な事例がある。第1に、配列を生成するために使用されているシードが十分に多様でない場合、得られる疑似ランダム配列は潜在的に予測可能であり、従って、推測されるという脅威の下にあり危険である。第2に、環境を配慮して十分に多様なシードを生成することができたとしても、それらの条件を決定して再生成することができれば、得られる疑似ランダム配列は、なお推測されるという脅威の下にあり危険である。公知の先行技術の改良への試みは、ランダムシードのエントロピーを増加させることに関する各種手段により、PRNG自体を改良する試みを中心に行われている。ところが、この種の解決方法に関する問題は、この改良を使用中のPRNGに組み込まなければならないという点にある。従って、PRNGの機能の変更を必要とすることなく、そのようなPRNGのセキュリティおよび性能を高める必要がある。
先行技術のPRNGに関連するさらなる問題は、疑似ランダム値に含まれている特定の数字または文字に関連する相対的確率である。もう少し詳しく言うと、数列を生成する場合、PRNGは、10個の整数値、すなわち0、1、2、3、4、5、6、7、8または9のうちの1つを選択しなければならない。疑似ランダム値を生成するために使用される手段に関わらず、その最終値は、この範囲内でなければならない。同じことが、疑似ランダム英数字値(すなわち、0〜9およびA〜Z、場合により、他のASCII文字までも含む)にも当てはまる。PRNGの強度に応じて、10桁のランダム配列は、例えば7526435744と同程度に脆弱になり得る。生成される配列の長さが増えるに従って、含められている数の尤度は高まる。従って、2倍の長さの配列は、元の配列において選択されたもの以外の数を含む可能性が高い(例えば、30820913007504796977)。疑似ランダム配列の長さが増加するにつれて、この尤度は高まる。さらに、キーの長さが決定されると、暗号化キーのクラッキングは、その長さのキーの数の組み合わせの各順列を一通り実行するのと同定に簡単である。
公知の先行技術の対称暗号化アルゴリズムに関連する別の問題は、設計またはそれらの実装のどちらか一方において、正しくないキーの使用が試みられた際に何も出力しなかったりエラーまたは異常を起こしたりするという点にある。次いで、これにより、正しいキーを判定するための自動化または半自動化された総当たりクラッキング技術の使用が容易になる。クラックを試みている人は全て、読取り可能な出力が達成されるまで、潜在的にキーを含む全ての可能な文字の組み合わせを一通り試す必要がある。読取り可能なデータを出力する理論上の暗号化アルゴリズムは、不良なキーが提示された場合に暗号化されたデータが不明であるという性質により実行不可能であるため、却下されている。
本発明の態様は、これらの問題の全てを解決し、かつ以下の発明の概要に記載されているさらなる関連する利点を提供することに関する。
本発明は、データを暗号化するシステムおよび関連方法を提供することにより、上記問題を解決する。少なくとも1つの実施形態では、キー管理プログラムは、少なくとも1つの計算装置上のメモリに位置し、データを暗号化するために使用される少なくとも1つの暗号化キーを作成および管理するように構成されている。少なくとも1つのキーファイルも少なくとも1つの計算装置上のメモリに位置し、そのファイルは、少なくとも1人の許可されたユーザに関連づけられている。キーファイルは、疑似ランダムバイト列と、キーファイルをユーザに関連づけるために使用される固有のハッシュ値とを含むキーフィールドを含む。基本文字セットがキーフィールドのサブセットであるように、基本文字セットをキーフィールドからランダムに選択する。次いで、基本文字セットを暗号化アルゴリズムに入力して、暗号化キーを生成する。次いで、暗号化キーを用いてデータを暗号化する。
上記装置および使用方法の主要な目的は、先行技術によって教示されていない利点を提供することにある。
本発明の態様の他の特徴および利点は、例えば本発明の態様の原理を示す添付の図面と関連させた以下のより詳細な説明から明らかになるであろう。
添付の図面は、本発明の態様を示す。
少なくとも1つの実施形態に係る、データを暗号化する例示的なシステムのアーキテクチャ図である。 少なくとも1つの実施形態に係る、例示的なキーファイルデータ構造を示すブロック図である。 少なくとも1つの実施形態に係る、例示的なキーフィールドの図である。 少なくとも1つの実施形態に係る、例示的なハッシュ値の図である。 少なくとも1つの実施形態に係る、データを暗号化する例示的な方法のフローチャートである。 少なくとも1つの実施形態に係る、例示的なキーフィールドに由来する例示的な基本文字セットの図である。 少なくとも1つの実施形態に係る、疑似ランダムバイト列を生成する例示的な方法のフローチャートである。 少なくとも1つの実施形態に係る、例示的な長い疑似ランダム配列に由来する例示的な疑似ランダム列の図である。 少なくとも1つの実施形態に係る、既知のトークンにより暗号化された機微なデータの例示的な断片の図である。 少なくとも1つの実施形態に係る、総当たりクラッキングの試みに対抗する例示的な方法のフローチャートである。
上記図面は、以下の説明においてさらに詳細に定められているその例示的な実施形態の少なくとも1つにより本発明の態様を示す。異なる図において同じ符号で参照されている本発明の特徴、要素および態様は、1つ以上の実施形態に係る、同じ、同等または同様の特徴、要素または態様を表わす。
上記図面は、以下の説明においてさらに詳細に定めされているその例示的な実施形態の少なくとも1つにより本発明の態様を示す。
図1を参照すると、少なくとも1つの実施形態に係る、データを暗号化する例示的なシステム20のアーキテクチャ図が示されている。システム20は、例示的な実施形態では、それぞれが少なくとも1つの計算装置34上のメモリ32に存在する、キー管理プログラム22、疑似乱数発生器(「PRNG」)24、暗号化モジュール26、少なくとも1つのキーファイル28、および少なくとも1つのクライアントアプリケーション30を備える。なお、「メモリ」という用語は、ローカルハードドライブ、RAM、フラッシュメモリ、外部記憶装置、ネットワークまたはクラウド記憶装置などの、現在知られているか後に開発されるあらゆる種類の電子記憶媒体(または記憶媒体の組み合わせ)を含むものとする。さらに、システム20の各種構成要素は、1つの計算装置34上のメモリ32に存在しても、2つ以上の計算装置34上に別々に存在してもよい。さらに、「計算装置」という用語は、デスクトップコンピュータ、スマートフォン、ラップトップコンピュータ、タブレットコンピュータ、ゲーム装置などの、現在知られているか後に開発されるあらゆる種類の計算装置を含むものとする。
図1を続けて参照すると、少なくとも1つの実施形態では、キー管理プログラム22は、機微なデータ36を暗号化するために使用される1つ以上の暗号化キーを作成および管理し、許可されたユーザのみに、機微なデータ36を公開させるか、そうでなければ、そこにアクセスすることを許可する。以下でさらに説明するように、少なくとも1つの実施形態では、キー管理プログラム22は、暗号化キーを作成する際の特定の工程の間に、PRNG24を利用する。
少なくとも1つの実施形態では、暗号化モジュール26は、機微なデータ36を受信し、その代わりに使用されるトークン38を生成するプロセスを実施する。言い換えると、暗号化モジュール26は、関連する暗号化キーを用いてトークン38を生成し、元の機微なデータ36を暗号化し、かつ暗号化されたデータ40をメモリ32に格納する。トークン38は単に、暗号化されたデータ40の参照であり、トークン38と暗号化されたデータ40との間に数学的関係は存在しない。従って、トークン38は、システム20全体を通して安全に使用することができ、それが表わす暗号化されたデータ40は、メモリ32に格納されたままである。暗号化モジュール26は、機微なデータ36と生成されたトークン38との間に1対1の関係があることを保証し、従って、システム20全体を通して参照整合性が維持される。
少なくとも1つのクライアントアプリケーション30は、機微なデータ36の収集、操作または処理に関わる、現在知られているか後に開発される様々なアプリケーションまたはプラットフォームのいずれであってもよく、機微なデータ36を暗号化および復号化するためのキー管理プログラム22および暗号化モジュール26と通信するように構成されている。例えば、クライアントアプリケーション30は、企業が受け取る支払いを処理または分析するための金融アプリケーションであってもよい。別のクライアントアプリケーション30は、レジまたは支払いカード読取装置などのPOS装置であってもよい。
図2に示すように、少なくとも1つのキーファイル28の例示的な実施形態は、例えば、暗号化キーに関連する特定の値を格納するデータ構造として示されている。少なくとも1つの他の実施形態では、キーファイル28は、テキストファイルである。キーファイル28は、少なくとも1つの実施形態では、ヘッダ42、キーフィールド44、ハッシュ値46、および所有者情報48を含む。ヘッダ42は、キーファイル28の特定のバージョン情報を含む。図3の例示的な図に示すように、キーフィールド44は、疑似ランダムバイト列である。例示的な実施形態では、キーフィールド44は、PRNG24により生成されるが、他の実施形態では、キーフィールド44は、ランダムまたは疑似ランダムバイト列を生成することができる現在知られているか後に開発されるあらゆる他の好適な手段により生成してもよい。図4の例示的な図に示すように、ハッシュ値46は、生成される固有の識別子であり、キーファイル28をその関連する所有者(すなわち、ユーザ)および送信元の計算装置34にロックする。但し、少なくとも1つの実施形態では、システム20は、キーファイル28を異なる計算装置で使用するために携帯可能にすることができるエクスポート機能を提供する。少なくとも1つの実施形態においてキーフィールド44およびハッシュ値46のそれぞれがどのように導出されるかについての詳細は(関連する暗号化キーと共に)以下に記載する。図2を再び参照すると、所有者情報48は、ユーザ名、IPアドレスなどのキーファイル28の所有者に関する詳細を含む。
上述のように、システム20は、暗号化キーを暗号化しない。従って、システム20は、KEKに依存しない。その代わり、図5のフローチャートに示すように、キー管理プログラム22は最初に、疑似ランダムバイト(または文字)列としてキーフィールド44を生成する(100)。使用時に、少なくとも1つの実施形態では、さらなる処理の前に、システム20は、ユーザが新しいか否かを確認する(102)。新しいユーザの場合、システム20は、ユーザにユーザ名およびパスフレーズなどの特定のユーザ固有変数の入力を促す(104)。キーフィールド44、パスフレーズならびに他の環境変数および/またはユーザ提供変数(すなわち、計算装置の日付および/または時間、オペレーティングシステムのバージョン、ユーザ名、IPアドレスなど)などの選ばれたデータをハッシュ関数に入力し、次いで、ここから固有のハッシュ値46を導出する(106)。システム20を再び使用すると、ハッシュ値46に基づき、ユーザの識別および関連するアクセス権を確認する(108)。そのような一実施形態では、ユーザは、自身のパスフレーズの再入力を促され、再入力されるとすぐに、システム20は、同じ変数を用いてハッシュ関数を実行して、その結果をユーザのキーファイル28に格納されているハッシュ値46と比較する。他の実施形態では、システム20は単に、ユーザがメモリ32に既に格納されているキーファイル28を有するか否かを確認する。
次に、図6に示すように、キー管理プログラム22は、キー抽出アルゴリズムを用いて、キーフィールド44からランダムに選択される基本文字セット50を構築する(110)。基本文字セット50は、キーフィールド44よりも比較的小さく、各種環境変数および/またはユーザ提供変数に基づき、本キー抽出アルゴリズムにより、キーフィールド44からランダムに(かつ、好ましくは不連続に)選択される特定の文字を決定する。このように、キーファイル28は、キーフィールド44においてランダムに生成される文字の数を増やし、次いで基本文字セット50に到達するようにこの拡大した群の中から必要な列の長さをランダムに選択することにより、エントロピーを増加させる。言い換えると、キーファイル28の使用により、システム20の異なるインストールで所与のキーフィールド44が重複する確率を大きく低下させる。基本文字セット50を構築するために使用される本キー抽出アルゴリズムに関しては、機微なデータ36を暗号化するシステム20および関連方法の保全性を保護するために、そのアルゴリズムの詳細は、本明細書に開示しない。さらに、基本文字セット50は目に見えないため、本キー抽出アルゴリズムの仕組みを解析するあらゆる試みは、どう見ても困難であろう。
図5を続けて参照すると、基本文字セット50を構築したら、暗号化アルゴリズムに入力し、次いで、これにより暗号化キーを導出する(112)。次いで、暗号化モジュール26は、暗号化キーを用いて機微なデータ36を暗号化することができる。例示的な実施形態では、キー管理プログラム22は、所望の長さの暗号化キーを指定することもでき、これによりシステム20は、実質的にあらゆる暗号化モジュールで使用される実質的にあらゆる暗号化アルゴリズムに適合可能な暗号化キーを生成することができる。
また、十分な時間やリソースがあり、かつ本明細書に記載されている例示的なシステム20などの特定の暗号化システムにアクセス可能であれば、熱心な個人または個人の集団ならば、その仕組みを理解することができるものと十分に考えられる。これを念頭に置いて、大部分の暗号化アルゴリズムは公開されており、難読化のために数学的複雑性に依存している。一方、本システム20は、拡張可能な難読なアルゴリズム暗号化の形態を利用しており、ここでは、暗号化キーを作成するアルゴリズム(すなわち、キー抽出アルゴリズム)が隠されている。さらに、十分な暗号化キーにアクセス可能であれば、熱心に努力すれば、最後には、本キー抽出アルゴリズムを理解することができるものと考えられる。但し、本キー抽出アルゴリズムの要素は拡張可能であり(すなわち、それらを簡単に変更することができ)(116)、本キー抽出アルゴリズムの基本的な仕組みを変える必要もない。従って、本キー抽出アルゴリズムは、既知の集団によって使用されるように作られているため、所定の時間で(本キー抽出アルゴリズムがクラックされるのに要する推定時間に基づく)、あるいは、本キー抽出アルゴリズムが実際に危険に曝されているという判定がなされるとすぐに、本キー抽出アルゴリズムの更新版が、この集団に利用可能な状態になり得る(114)。既存の暗号化キーをエクスポートし、新しい暗号化キーが、更新された本キー抽出アルゴリズムを用いて、ユーザに送られる。従って、本キー抽出アルゴリズムのクラックを試みているものは全て、始めからやり直すことを強いられる。そのような各変数が有し得る広範囲の潜在的に固有の値は言うまでもなく、本キー抽出アルゴリズムが利用することができる各種環境変数および/またはユーザ提供変数の多くの可能な組み合わせがあれば、本キー抽出アルゴリズムの設計により、ほぼ無限数のパターンが可能になる。
上述のように、少なくとも1つの実施形態では、PRNG24により、キーフィールド44を生成する。そのような一実施形態では、図7のフローチャートに示すように、PRNG24は、数字および/または文字からなる長い疑似ランダム配列(「LPRS」)52を最初に生成する(200)。LPRS52の例示的な図が図8に示されている。次に、PRNG24は、疑似ランダム入口点56を選択し(202)、かつ疑似ランダム入口点56で始まるLPRS52内の所定数の連続した数字(および/または文字)を選択して、疑似ランダム列54を構築する(204)。一例として、図8の例示的な図に示すように、PRNG24が疑似ランダム入口点56を「3」、疑似ランダム列54の長さを「10」として選択すれば、図8のLPRS52から導出されて得られる疑似ランダム列54は、「1043726879」となる。必要に応じて、さらなる疑似ランダム列54を生成してもよい(206)。なおさらなる実施形態では、PRNG24は、疑似ランダム入口点56で始まるLPRS52内の所定数の連続しない数字(および/または文字)を選択して、疑似ランダム列54を構築する。このように、LPRS52をメモリ32に格納し、そこから比較的短い長さの疑似ランダム列54を構築して、それによりPRNG24のエントロピーを増加させる。さらに、システム20のメモリ32がPRNG24をホストする計算装置34内にない実施形態では、LPRS52は、疑似ランダム列54を推測することを試みているものが、その推測の根拠として計算装置34のハードウェアの知識を用いることを防止する抽象化レイヤを形成する。簡単に言うと、少なくとも1つの実施形態では、LPRS52を1つの計算装置34で生成し、別の装置で利用することができる。
PRNG24の上記実施形態の1つの考えられる制限は、LPRS52の自動更新を許可しない点にある。もう少し詳しく言えば、図8の例示的なLPRS52を続けて参照すると、単に疑似ランダム入口点56を選択して前方の10個の文字を数えることにより使用することができる、10個の文字からなる固有の疑似ランダム列54が90種類存在し得る。これを達成するために使用されるあらゆる計算装置34は、PRNG24を使用して疑似ランダム入口点56を選択するため、繰り返しが生じる前に選択することができる固有の疑似ランダム列54の実際の数は、さらに小さくなるであろう。この制限を避けるために、少なくとも1つの実施形態では、拡張したアーキテクチャを利用し、LPRS52を作成するために使用した文字セットの格納および検索を可能にする。これにより、文字セットに基づき、LPRS52の自動の定期的更新が可能になり(208)、特定の疑似ランダム列54が繰り返される可能性が低下する。
なお、本明細書では、例示的なデータ暗号化システム20との関連でPRNG24について述べてきたが、実際には、疑似ランダムバイトまたは一連の疑似ランダムバイトが必要とされるあらゆる他の用途において、PRNG24を別個に利用してもよい。
少なくとも1つの実施形態では、システム20は、本暗号化キーおよび/またはキー抽出アルゴリズムのクラッキングの際の総当たり攻撃に対抗し、その確率を減少させるために、さらなる工程を用いる。手短に言うと、図9の例示的な図に示すように、システム20は、暗号化される機微なデータ36の開始点および終了点にトークン38を含む。トークン38は既知の値であり、かつトークン38は、同じ暗号化キーを用いて作成されているため、機微なデータ36を暗号化するために使用されるキーではないあらゆる暗号化キー(従って、トークン38)は、復号時にトークン38を正確に再構築しない。このように、暗号化キーが正しいキーであるか否かを容易に判定することができる。さらなる実施形態では、暗号化されたデータ40以外のデータを出力する方法が用いられる。その結果、暗号化されたデータ40の総当たりクラックを試みる人が、自身が見ているデータが暗号化された機微なデータ36と同一であるか否かを知る方法が存在しないため、本暗号化キーおよび/またはキー抽出アルゴリズムをクラックするために必要なサイクル数は、極めて大きくなる。
そのような一実施形態では、図10のフローチャートに示すように、暗号化モジュール26は最初に、既知の値を有するトークン38を生成し(300)、既知のトークン38の第1のインスタンス58を暗号化される機微なデータ36の開始点に挿入する(302)。次に、チェックサム値60をランダムに生成する(304)。例示的な実施形態では、上記方法に従って、PRNG24によりチェックサム値60を生成するが、他の実施形態では、そのようなランダムまたは疑似ランダムバイト列を生成することができる、現在知られているか後に開発されるあらゆる他の好適な手段により、チェックサム値60を生成してもよい。次いで、チェックサム値60を、第1の部分62と第2の部分64とに分ける(306)。チェックサム値60の第1の部分62をトークンの第1のインスタンス58の後に挿入し(308)、その後に機微なデータ36を挿入し(310)、その後にチェックサム値60の第2の部分64を挿入し(312)、その後にトークン38の第2のインスタンス66を挿入する(314)。次いで、暗号化キーを用いて、データ列全体を暗号化する(316)。従って、暗号化される機微なデータ36に後続するチェックサム値60の第2の部分64は、チェックサム値60の第1の部分62と既知の関係を有する。図9の例示的な図では、チェックサム値60は、第1の部分62で始まり、かつ第2の部分64に引き継がれる一連の整数を含む。このようにして、暗号化キー内のあらゆる分散により、トークン38またはチェックサム値60のいずれか一方において検出可能な破損を生じさせる。トークン38の値は既知であるため、暗号化モジュール26は、部分的に復号化されていることにより破損または部分的に破損しているか否かを検出することができる。これにより、暗号化モジュール26は、読取り可能であるが偽のデータを出力する各種技術を用いることができる。
要約すると、本明細書に図示および記載されている本発明の例示的な実施形態に関して、データを暗号化するシステムおよび方法が開示されていることが分かる。本発明の原理を、図示および記載されているもの以外の多くの構成で実施することができるため、当然のことながら、本発明は、決して例示的な実施形態によって限定されず、一般にデータを暗号化するシステムおよび方法に関し、本発明の趣旨および範囲を逸脱することなく、数多くの形態をそのために利用することができる。また、当業者には理解されるように、本発明は、開示されている構造物の特定の幾何学的形状および材料に限定されず、代わりに、本発明の趣旨および範囲を逸脱することなく、現在知られているか後に開発される他の機能的に類似した構造または材料を包含してもよい。さらに、上記各実施形態の各種特徴を、あらゆる論理的な方法で組み合わせてもよく、それらも本発明の範囲に含まれるものとする。
当然のことながら、各方法のそれぞれの要素が実施される、論理コード、プログラム、モジュール、プロセス、方法および順序は、単に例示である。その実装に応じて、本開示に特に明記しない限り、それらを任意の順序で、あるいは同時に実施してもよい。さらに、論理コードは、あらゆる特定のプログラミング言語に関するものでも、それらに限定されるものでもなく、分散処理、非分散処理または多重処理環境において1つ以上の処理装置で実行する1つ以上のモジュールを含んでもよい。
上記方法を集積回路チップの製作で使用してもよい。得られる集積回路チップは、未加工のウェーハ形態で(すなわち、複数のパッケージ化されていないチップを有する単一のウェーハとして)、ベアダイとして、あるいはパッケージ化された形態で流通させることができる。後者の場合、このチップは、単一のチップパッケージ(リード線がマザーボードまたは他のより高レベルのキャリアに取り付けられたプラスチックキャリアなど)またはマルチチップパッケージ(表面相互接続または埋設相互接続のいずれか一方または両方を有するセラミックキャリアなど)に搭載されている。いずれの場合も、次いで、チップを、(a)マザーボードなどの中間製品または(b)最終製品のいずれか一方の一部として、他のチップ、ディスクリート回路素子および/または他の信号処理装置と一体化させる。最終製品は、おもちゃや他の低価格の用途から、表示装置、キーボードまたは他の入力装置および中央制御装置を有する高度なコンピュータ製品に至るまでの、集積回路チップを含むあらゆる製品であってもよい。
本明細書の態様は、以下のように記載することもできる。
1.少なくとも1つの計算装置上のメモリに、データを暗号化するために使用される少なくとも1つの暗号化キーを作成および管理するように構成されたキー管理プログラムを実装する工程と、前記少なくとも1つの計算装置上のメモリに、少なくとも1人の許可されたユーザに関連づけられた少なくとも1つのキーファイルであって、疑似ランダムバイト列と前記キーファイルを前記少なくとも1人のユーザに関連づけるために使用される固有のハッシュ値とを含むキーフィールドを含むキーファイルを実装する工程と、前記キーフィールドからランダムに選択される、前記キーフィールドのサブセットである基本文字セットを構築する工程と、前記基本文字を暗号化アルゴリズムに入力して前記暗号化キーを生成する工程と、暗号化されるデータを受信する工程と、前記暗号化キーを用いて前記データを暗号化する工程とを含む、コンピュータに実装されたデータを暗号化する方法。
2.前記キー管理プログラムを用いて、疑似ランダムバイト列として前記キーフィールドを生成する工程をさらに含む、実施形態1に記載の方法。
3.前記ユーザが新しいと判定するとすぐに、ユーザ名、パスフレーズ、前記ユーザの計算装置に関連する現在の日付、前記ユーザの計算装置に関連する現在の時間、前記ユーザの計算装置に関連するオペレーティングシステムのバージョン、および前記ユーザの計算装置に関連するIPアドレスのうちの少なくとも1つを含む選ばれたユーザに固有の情報を前記ユーザから得る工程をさらに含む、実施形態1〜2に記載の方法。
4.前記ユーザに固有の情報の少なくとも一部をハッシュ関数に入力して前記固有のハッシュ値を生成する工程をさらに含む、実施形態1〜3に記載の方法。
5.前記ユーザが新しくないと判定するとすぐに、前記ハッシュ値に基づいて前記ユーザの識別を確認する工程をさらに含む、実施形態1〜4に記載の方法。
6.前記ユーザに前記パスフレーズの再入力を促す工程と、以前に前記ハッシュ値を生成するために使用された同じユーザ固有情報を用いて、前記ハッシュ関数を実施する工程と、前記結果を前記ユーザに関連づけられた前記キーファイルに格納された前記ハッシュ値と比較して、前記結果および前記ハッシュ値が同一であるか否かを判定する工程とをさらに含む、実施形態1〜5に記載の方法。
7.基本文字セットを構築する前記工程は、前記キーフィールドから連続しない文字をランダムに選択する工程をさらに含む、実施形態1〜6に記載の方法。
8.基本文字セットを構築する前記工程は、キー抽出アルゴリズムを用いて、前記キーフィールドから文字をランダムに選択する工程をさらに含む、実施形態1〜7に記載の方法。
9.前記キー抽出アルゴリズムが危険に曝されていると判定するとすぐに、前記キー抽出アルゴリズムを修正し、かつそれを前記少なくとも1人の許可されたユーザに配信する工程をさらに含む、実施形態1〜8に記載の方法。
10.疑似乱数発生器(「PRNG」)を用いて、前記キーフィールドを生成する工程をさらに含む、実施形態1〜9に記載の方法。
11.長い疑似ランダムバイト配列(「LPRS」)を生成する工程と、前記LPRS内の疑似ランダム入口点を選択し、かつ前記疑似ランダム入口点で始まる前記LPRS内の所定数のバイトを選択することにより、疑似ランダム列を構築する工程とをさらに含む、実施形態1〜10に記載の方法。
12.疑似ランダム列を構築する前記工程は、前記疑似ランダム入口点で始まる前記LPRS内の所定数の連続したバイトを選択する工程をさらに含む、実施形態1〜11に記載の方法。
13.疑似ランダム列を構築する前記工程は、前記疑似ランダム入口点で始まる前記LPRS内の所定数の連続しないバイトを選択する工程をさらに含む、実施形態1〜12に記載の方法。
14.前記少なくとも1つの計算装置上のメモリに前記PRNGを実装する工程をさらに含む、実施形態1〜13に記載の方法。
15.前記少なくとも1つの計算装置上のメモリに、前記キー管理プログラムおよび前記機微なデータを暗号化/復号化するための暗号化モジュールと通信するように構成された少なくとも1つのクライアントアプリケーションを実装する工程をさらに含む、実施形態1〜14に記載の方法。
16.前記データを暗号化する前記工程は、既知の値を有するトークンを生成する工程と、前記トークンの第1のインスタンスを前記データの開始点に挿入する工程と、チェックサム値をランダムに生成する工程と、前記チェックサム値を第1の部分と第2の部分に分ける工程と、前記チェックサム値の前記第1の部分を前記トークンの前記第1のインスタンスと前記データの開始点との間に挿入する工程と、前記チェックサム値の前記第2の部分を前記データの終了点に挿入する工程と、前記トークンの第2のインスタンスを前記チェックサム値の前記第2の部分の後ろに挿入する工程と、前記暗号化キーを用いて、前記トークンの前記第1のインスタンス、前記チェックサム値の前記第1の部分、データ、前記チェックサム値の前記第2の部分、および前記トークンの前記第2のインスタンスからなる列全体を暗号化する工程とをさらに含む、実施形態1〜15に記載の方法。
17.チェックサム値をランダムに生成する前記工程は、前記第1の部分が前記第2の部分と既知の関係を有するように、前記チェックサム値の前記第1の部分で始まり、かつ前記チェックサム値の前記第2の部分に引き継がれる一連の整数を生成する工程をさらに含む、実施形態1〜16に記載の方法。
18.正しくない暗号化キーで復号化されたことにより破損しているか部分的に破損しているトークンを検出するとすぐに、読取り可能であるが偽のデータを出力する工程をさらに含む、実施形態1〜17に記載の方法。
19.少なくとも1つの計算装置上のメモリに、データを暗号化するために使用される少なくとも1つの暗号化キーを作成および管理するように構成されたキー管理プログラムを実装する工程と、前記少なくとも1つの計算装置上のメモリに、少なくとも1人の許可されたユーザに関連づけられた少なくとも1つのキーファイルであって、疑似ランダムバイト列と、前記キーファイルを前記少なくとも1人のユーザに関連づけるために使用される固有のハッシュ値とを含むキーフィールドを含むキーファイルを実装する工程と、長い疑似ランダムバイト列(「LPRS」)を生成し、前記LPRS内の疑似ランダム入口点を選択し、かつ前記疑似ランダム入口点で始まる前記LPRS内の所定数のバイトを選択することにより疑似ランダム列を構築して、前記キーフィールドを生成する工程と、前記キーフィールドからランダムに選択される、前記キーフィールドのサブセットである基本文字セットを構築する工程と、前記基本文字を暗号化アルゴリズムに入力して前記暗号化キーを生成する工程と、暗号化されるデータを受信する工程と、前記暗号化キーを用いて前記データを暗号化する工程とを含む、コンピュータに実装されたデータを暗号化する方法。
20.少なくとも1つの計算装置上のメモリに、データを暗号化するために使用される少なくとも1つの暗号化キーを作成および管理するように構成されたキー管理プログラムを実装する工程と、前記少なくとも1つの計算装置上のメモリに、少なくとも1人の許可されたユーザに関連づけられた少なくとも1つのキーファイルであって、疑似ランダムバイト列と、前記キーファイルを前記少なくとも1人のユーザに関連づけるために使用される固有のハッシュ値とを含むキーフィールドを含むキーファイルを実装する工程と、前記キーフィールドからランダムに選択される、前記キーフィールドのサブセットである基本文字セットを構築する工程と、前記基本文字を暗号化アルゴリズムに入力して前記暗号化キーを生成する工程と、既知の値を有するトークンを生成する工程と、前記トークンの第1のインスタンスを前記データの開始点に挿入する工程と、チェックサム値をランダムに生成する工程と、前記チェックサム値を第1の部分と第2の部分とに分ける工程と、前記チェックサム値の前記第1の部分を前記トークンの前記第1のインスタンスと前記データの開始点との間に挿入する工程と、前記チェックサム値の前記第2の部分を前記データの終了点に挿入する工程と、前記トークンの第2のインスタンスを前記チェックサム値の前記第2の部分の後ろに挿入する工程と、前記暗号化キーを用いて、前記トークンの前記第1のインスタンス、前記チェックサム値の前記第1の部分、データ、前記チェックサム値の前記第2の部分、および前記トークンの前記第2のインスタンスからなる列全体を暗号化する工程とを含む、コンピュータに実装されるデータを暗号化する方法。
本発明の態様について少なくとも1つの例示的な実施形態を参照して説明してきたが、本発明はそれらに限定されないことを当業者であれば明確に理解することができる。むしろ、本発明の範囲は、添付の特許請求の範囲のみと合わせて解釈されるものであり、本発明者らは、特許請求されている主題が本発明であるとみなすことを、ここに明らかにするものである。

Claims (20)

  1. コンピュータプロセッサによって実行される、コンピュータに実装されたデータを暗号化する方法において、前記方法は、
    少なくとも1つの計算装置上のメモリに、データを暗号化するために使用される少なくとも1つの暗号化キーを作成および管理するように構成されたキー管理プログラムを実装する工程と、
    前記少なくとも1つの計算装置上のメモリに、少なくとも1人の許可されたユーザに関連づけられた少なくとも1つのキーファイルであって、疑似ランダムバイト列を含むキーフィールドを含むキーファイルを実装する工程と、
    前記キーフィールドからランダムに選択される、基本文字セットを構築する工程と、
    前記基本文字を暗号化アルゴリズムに入力して前記暗号化キーを生成する工程と、
    暗号化されるデータを受信する工程と、
    前記暗号化キーを用いて前記データを暗号化する工程と、
    を含み、
    記基本文字セットは、前記キーフィールドからランダムに選択された少なくとも1つの文字と、前記キーフィールドからランダムに選択された少なくとも1つの他の文字とを有し、前記キーフィールドからランダムに選択された少なくとも1つの文字および前記キーフィールドからランダムに選択された少なくとも1つの他の文字は、前記キーフィールド内で、前記キーフィールドから選択された不連続な文字となる、前記キーフィールドのサブセットである方法。
  2. 前記キー管理プログラムを用いて、疑似ランダムバイト列として前記キーフィールドを生成する工程をさらに含む、請求項1に記載の方法。
  3. 前記ユーザが新しいと判定するとすぐに、ユーザ名、パスフレーズ、前記ユーザの計算装置に関連する現在の日付、前記ユーザの計算装置に関連する現在の時間、前記ユーザの計算装置に関連するオペレーティングシステムのバージョン、および前記ユーザの計算装置に関連するIPアドレスのうちの少なくとも1つを含む選ばれたユーザに固有の情報を前記ユーザから得る工程をさらに含む、請求項1に記載の方法。
  4. 前記ユーザに固有の情報の少なくとも一部をハッシュ関数に入力して固有のハッシュ値を生成する工程をさらに含む、請求項3に記載の方法。
  5. 前記ユーザが新しくないと判定するとすぐに、前記ハッシュ値に基づいて前記ユーザの識別を確認する工程をさらに含む、請求項4に記載の方法。
  6. 前記ユーザに前記パスフレーズの再入力を促す工程と、
    以前に前記ハッシュ値を生成するために使用された同じユーザ固有情報を用いて、前記ハッシュ関数を実施する工程と、
    前記結果を前記ユーザに関連づけられた前記キーファイルに格納された前記ハッシュ値と比較して、前記結果および前記ハッシュ値が同一であるか否かを判定する工程と、
    をさらに含む、請求項5に記載の方法。
  7. 基本文字セットを構築する前記工程は、前記キーフィールドから連続しない文字をランダムに選択する工程をさらに含む、請求項1に記載の方法。
  8. 基本文字セットを構築する前記工程は、キー抽出アルゴリズムを用いて、前記キーフィールドから文字をランダムに選択する工程をさらに含む、請求項1に記載の方法。
  9. 前記キー抽出アルゴリズムが危険に曝されていると判定するとすぐに、前記キー抽出アルゴリズムを修正し、かつそれを前記少なくとも1人の許可されたユーザに配信する工程をさらに含む、請求項に記載の方法。
  10. 疑似乱数発生器(「PRNG」)を用いて、前記キーフィールドを生成する工程をさらに含む、請求項1に記載の方法。
  11. 長い疑似ランダムバイト配列(「LPRS」)を生成する工程と、
    前記LPRS内の疑似ランダム入口点を選択し、かつ前記疑似ランダム入口点で始まる前記LPRS内の所定数のバイトを選択することにより、疑似ランダム列を構築する工程と、
    をさらに含む、請求項10に記載の方法。
  12. 疑似ランダム列を構築する前記工程は、前記疑似ランダム入口点で始まる前記LPRS内の所定数の連続したバイトを選択する工程をさらに含む、請求項11に記載の方法。
  13. 疑似ランダム列を構築する前記工程は、前記疑似ランダム入口点で始まる前記LPRS内の所定数の連続しないバイトを選択する工程をさらに含む、請求項11に記載の方法。
  14. 前記少なくとも1つの計算装置上のメモリに前記PRNGを実装する工程をさらに含む、請求項10に記載の方法。
  15. 前記少なくとも1つの計算装置上のメモリに、前記キー管理プログラムおよび前記機微なデータを暗号化/復号化するための暗号化モジュールと通信するように構成された少なくとも1つのクライアントアプリケーションを実装する工程をさらに含む、請求項1に記載の方法。
  16. 前記データを暗号化する前記工程は、
    既知の値を有するトークンを生成する工程と、
    前記トークンの第1のインスタンスを前記データの開始点に挿入する工程と、
    チェックサム値をランダムに生成する工程と、
    前記チェックサム値を第1の部分と第2の部分に分ける工程と、
    前記チェックサム値の前記第1の部分を前記トークンの前記第1のインスタンスと前記データの開始点との間に挿入する工程と、
    前記チェックサム値の前記第2の部分を前記データの終了点に挿入する工程と、
    前記トークンの第2のインスタンスを前記チェックサム値の前記第2の部分の後ろに挿入する工程と、
    前記暗号化キーを用いて、前記トークンの前記第1のインスタンス、前記チェックサム値の前記第1の部分、データ、前記チェックサム値の前記第2の部分、および前記トークンの前記第2のインスタンスからなる列全体を暗号化する工程と、
    をさらに含む、請求項1に記載の方法。
  17. チェックサム値をランダムに生成する前記工程は、前記第1の部分が前記第2の部分と既知の関係を有するように、前記チェックサム値の前記第1の部分で始まり、かつ前記チェックサム値の前記第2の部分に引き継がれる一連の整数を生成する工程をさらに含む、請求項16に記載の方法。
  18. 正しくない暗号化キーで復号化されたことにより破損しているか部分的に破損しているトークンを検出するとすぐに、読取り可能であるが偽のデータを出力する工程をさらに含む、請求項16に記載の方法。
  19. コンピュータプロセッサによって実行される、コンピュータに実装されたデータを暗号化する方法において、前記方法は、
    少なくとも1つの計算装置上のメモリに、データを暗号化するために使用される少なくとも1つの暗号化キーを作成および管理するように構成されたキー管理プログラムを実装する工程と、
    長い疑似ランダムバイト列(「LPRS」)を生成し、前記LPRS内の疑似ランダム入口点を選択し、かつ前記疑似ランダム入口点で始まる前記LPRS内の所定数のバイトを選択することにより疑似ランダム列を構築して、キーフィールドを生成する工程と、
    前記キーフィールドからランダムに選択される、基本文字セットを構築する工程と、
    前記基本文字を暗号化アルゴリズムに入力して前記暗号化キーを生成する工程と、
    暗号化されるデータを受信する工程と、
    前記暗号化キーを用いて前記データを暗号化する工程と、
    を含み、
    記基本文字セットは、前記キーフィールドからランダムに選択された少なくとも1つの文字と、前記キーフィールドからランダムに選択された少なくとも1つの他の文字とを有し、前記キーフィールドからランダムに選択された少なくとも1つの文字および前記キーフィールドからランダムに選択された少なくとも1つの他の文字が、前記キーフィールド内で、前記キーフィールドから選択された不連続な文字となる、前記キーフィールドのサブセットである方法。
  20. コンピュータプロセッサによって実行される、コンピュータに実装されたデータを暗号化する方法において、前記方法は、
    少なくとも1つの計算装置上のメモリに、データを暗号化するために使用される少なくとも1つの暗号化キーを作成および管理するように構成されたキー管理プログラムを実装する工程と、
    キーフィールドからランダムに選択される、前記キーフィールドのサブセットである基本文字セットを構築する工程と、
    前記基本文字を暗号化アルゴリズムに入力して前記暗号化キーを生成する工程と、
    既知の値を有するトークンを生成する工程と、
    前記トークンの第1のインスタンスを前記データの開始点に挿入する工程と、
    チェックサム値をランダムに生成する工程と、
    前記チェックサム値を第1の部分と第2の部分とに分ける工程と、
    前記チェックサム値の前記第1の部分を前記トークンの前記第1のインスタンスと前記データの開始点との間に挿入する工程と、
    前記チェックサム値の前記第2の部分を前記データの終了点に挿入する工程と、
    前記トークンの第2のインスタンスを前記チェックサム値の前記第2の部分の後ろに挿入する工程と、
    前記暗号化キーを用いて、前記トークンの前記第1のインスタンス、前記チェックサム値の前記第1の部分、データ、前記チェックサム値の前記第2の部分、および前記トークンの前記第2のインスタンスからなる列全体を暗号化する工程と、
    を含む、コンピュータに実装されるデータを暗号化する方法。
JP2016509115A 2013-04-18 2014-04-18 データを暗号化するシステムおよび方法 Active JP6285536B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361813186P 2013-04-18 2013-04-18
US61/813,186 2013-04-18
PCT/US2014/034582 WO2014172593A1 (en) 2013-04-18 2014-04-18 System and methods for encrypting data

Publications (2)

Publication Number Publication Date
JP2016517243A JP2016517243A (ja) 2016-06-09
JP6285536B2 true JP6285536B2 (ja) 2018-02-28

Family

ID=51729005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016509115A Active JP6285536B2 (ja) 2013-04-18 2014-04-18 データを暗号化するシステムおよび方法

Country Status (14)

Country Link
US (2) US9374224B2 (ja)
EP (1) EP2987267B1 (ja)
JP (1) JP6285536B2 (ja)
KR (1) KR101824787B1 (ja)
CN (1) CN105340211A (ja)
AU (2) AU2014253868B2 (ja)
BR (1) BR112015026182A2 (ja)
CA (1) CA2914785C (ja)
ES (1) ES2731775T3 (ja)
NZ (2) NZ720190A (ja)
PL (1) PL2987267T3 (ja)
RU (1) RU2619895C1 (ja)
SG (1) SG11201509412WA (ja)
WO (1) WO2014172593A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150082054A1 (en) * 2013-08-21 2015-03-19 Venux LLC System and Method for Establishing a Secure Digital Environment
US10361844B2 (en) 2015-04-20 2019-07-23 Certicom Corp. Generating cryptographic function parameters based on an observed astronomical event
US10079675B2 (en) 2015-04-20 2018-09-18 Certicom Corp. Generating cryptographic function parameters from a puzzle
US10375070B2 (en) 2015-04-20 2019-08-06 Certicom Corp. Generating cryptographic function parameters from compact source code
CN106100829B (zh) * 2016-05-23 2020-05-19 深圳市硅格半导体有限公司 加密存储的方法及装置
JP2019518397A (ja) * 2016-06-06 2019-06-27 アジャイルピーキュー, インコーポレイテッド データ変換システムおよび方法
US10476661B2 (en) * 2016-06-27 2019-11-12 Fujitsu Limited Polynomial-based homomorphic encryption
KR101881117B1 (ko) 2016-09-02 2018-07-23 한전케이디엔 주식회사 다중 통신 암호연산 병렬처리를 구현하는 보안 게이트웨이
US10360373B2 (en) 2016-09-28 2019-07-23 Intel Corporation Return address encryption
CN107320959B (zh) * 2017-06-28 2020-10-23 网易(杭州)网络有限公司 游戏角色标识信息生成方法、装置、介质和电子设备
US11743356B2 (en) * 2018-01-10 2023-08-29 Vmware, Inc. Email notification system
US10924512B2 (en) 2018-03-07 2021-02-16 Vmware, Inc. Secure email gateway with device compliance checking for push notifications
US10848302B2 (en) * 2018-04-12 2020-11-24 Simmonds Precision Products, Inc. Network security framework for wireless aircraft communication
WO2020220034A1 (en) 2019-04-26 2020-10-29 Csub Auxiliary For Sponsored Programs Administration Reconfigurable security hardware and methods for internet of things (iot) systems
EP3770751B1 (en) * 2019-07-25 2023-10-18 PUFsecurity Corporation High speed encryption key generating engine
KR102123435B1 (ko) * 2019-08-19 2020-06-16 세종대학교산학협력단 멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치
KR102123440B1 (ko) * 2019-09-02 2020-06-16 세종대학교산학협력단 멀티 클라이언트 환경에서 범위 질의를 지원하는 암호화 방법 및 이를 이용한 장치
US11381393B2 (en) 2019-09-24 2022-07-05 Akamai Technologies Inc. Key rotation for sensitive data tokenization
CN113468544B (zh) * 2020-03-30 2024-04-05 杭州海康威视数字技术股份有限公司 一种应用模型的训练方法及装置
CN113761566A (zh) * 2020-11-27 2021-12-07 西安京迅递供应链科技有限公司 一种数据处理方法和装置
US11727733B2 (en) 2021-05-11 2023-08-15 Ford Global Technologies, Llc Enabling operator controls for machine operation
CN114040229B (zh) * 2021-11-29 2024-02-06 北京无忧创想信息技术有限公司 一种视频加解密方法及装置
CN115412247A (zh) * 2022-11-02 2022-11-29 中安云科科技发展(山东)有限公司 基于时间戳的随机密钥同步方法、平台、设备及存储介质

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495580A (en) * 1992-10-20 1996-02-27 Xlnt Designs, Inc. Ring network security system with encoding of data entering a subnetwork and decoding of data leaving a subnetwork
US5454039A (en) * 1993-12-06 1995-09-26 International Business Machines Corporation Software-efficient pseudorandom function and the use thereof for encryption
US5438622A (en) * 1994-01-21 1995-08-01 Apple Computer, Inc. Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing an offset in the pseudorandom sequence
US5732138A (en) 1996-01-29 1998-03-24 Silicon Graphics, Inc. Method for seeding a pseudo-random number generator with a cryptographic hash of a digitization of a chaotic system
JPH10301492A (ja) * 1997-04-23 1998-11-13 Sony Corp 暗号化装置および方法、復号装置および方法、並びに情報処理装置および方法
JP2000307565A (ja) * 1999-04-26 2000-11-02 Nec Corp 通信方法、その装置およびicカード
US7373517B1 (en) 1999-08-19 2008-05-13 Visto Corporation System and method for encrypting and decrypting files
US6704730B2 (en) 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US7242772B1 (en) * 2000-09-07 2007-07-10 Eastman Kodak Company Encryption apparatus and method for synchronizing multiple encryption keys with a data stream
GB0030804D0 (en) * 2000-12-16 2001-01-31 Ncr Int Inc Method of conducting transactions
CA2329590C (en) * 2000-12-27 2012-06-26 Certicom Corp. Method of public key generation
JP4488647B2 (ja) * 2001-04-27 2010-06-23 大日本印刷株式会社 通信システム
KR100813954B1 (ko) * 2003-01-16 2008-03-14 삼성전자주식회사 암호화 장치 및 암호화 방법
US20060010203A1 (en) * 2004-06-15 2006-01-12 Nokia Corporation Personal server and network
US7769709B2 (en) * 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
EP1865481A1 (en) 2005-03-31 2007-12-12 Matsushita Electric Industrial Co., Ltd. Data encryption device and data encryption method
EP1913509B1 (en) * 2005-08-05 2011-10-19 Hewlett-Packard Development Company, L.P. System, method and apparatus to obtain a key for encryption/decryption/data recovery from an enterprise cryptography key management system
US7958362B2 (en) * 2005-10-11 2011-06-07 Chang Gung University User authentication based on asymmetric cryptography utilizing RSA with personalized secret
JP4883273B2 (ja) * 2006-01-11 2012-02-22 日本電気株式会社 乱数品質管理装置および管理方法
JP4872512B2 (ja) * 2006-08-02 2012-02-08 ソニー株式会社 記憶装置、記憶制御方法、並びに、情報処理装置および方法
US20080219449A1 (en) * 2007-03-09 2008-09-11 Ball Matthew V Cryptographic key management for stored data
US8107620B2 (en) * 2007-03-21 2012-01-31 International Business Machines Corporation Simple and efficient one-pass authenticated encryption scheme
CN101159556B (zh) * 2007-11-09 2011-01-26 清华大学 基于组密钥服务器的共享加密文件系统中的密钥管理方法
US20100094755A1 (en) * 2008-10-09 2010-04-15 Nelnet Business Solutions, Inc. Providing payment data tokens for online transactions utilizing hosted inline frames
WO2010046104A2 (en) 2008-10-23 2010-04-29 University Of Ulster An encryption method
US8812570B2 (en) * 2009-05-28 2014-08-19 Red Hat, Inc. String hashing using a number generator
US8826036B1 (en) * 2009-10-29 2014-09-02 Amazon Technologies, Inc. Ebook encryption using variable keys
US20120063597A1 (en) * 2010-09-15 2012-03-15 Uponus Technologies, Llc. Apparatus and associated methodology for managing content control keys
US8619986B2 (en) * 2011-07-21 2013-12-31 Patton Protection Systems LLC Systems and methods for secure communication using a communication encryption bios based upon a message specific identifier
US9204298B2 (en) * 2011-09-13 2015-12-01 Bank Of America Corporation Multilevel authentication

Also Published As

Publication number Publication date
BR112015026182A2 (pt) 2017-07-25
KR101824787B1 (ko) 2018-02-01
NZ720190A (en) 2016-10-28
US20160239678A1 (en) 2016-08-18
US9374224B2 (en) 2016-06-21
AU2014253868A1 (en) 2015-12-03
AU2016203169A1 (en) 2016-06-09
ES2731775T3 (es) 2019-11-19
US9934400B2 (en) 2018-04-03
AU2014253868B2 (en) 2016-05-19
EP2987267A4 (en) 2017-02-22
JP2016517243A (ja) 2016-06-09
CA2914785C (en) 2019-12-17
CN105340211A (zh) 2016-02-17
EP2987267B1 (en) 2019-03-20
KR20160008560A (ko) 2016-01-22
RU2619895C1 (ru) 2017-05-19
PL2987267T3 (pl) 2019-09-30
EP2987267A1 (en) 2016-02-24
NZ714230A (en) 2016-06-24
SG11201509412WA (en) 2015-12-30
AU2016203169B2 (en) 2017-11-23
US20140314231A1 (en) 2014-10-23
WO2014172593A1 (en) 2014-10-23
CA2914785A1 (en) 2014-10-23

Similar Documents

Publication Publication Date Title
JP6285536B2 (ja) データを暗号化するシステムおよび方法
US9965249B2 (en) Stochastic processing
EP3692681B1 (en) A system and method for quantum-safe authentication, encryption and decryption of information
US10284372B2 (en) Method and system for secure management of computer applications
US9021269B2 (en) Blind hashing
CN110110163A (zh) 安全子字符串搜索以过滤加密数据
EP3942476A1 (en) Encrypting and decrypting information
CN111512590B (zh) 用于密码认证的同态加密
JP2017524306A (ja) 暗号化操作における悪意のある変更に対する保護
CN113597627B (zh) 区块链报头验证中的动态变换
CN114499859A (zh) 密码验证方法、装置、设备及存储介质
Imam et al. NoInjection: preventing unsafe queries on NoSQL-document-model databases
JP6735062B2 (ja) 乱数列生成装置、方法及びプログラム
Durai et al. Real Time Implementation of QFT-PUF Architecture for Data Secure System-on-Chip
TR201713373A2 (tr) Kaos tabanli rasgele sayi üretme yöntemi̇
CN115913535A (zh) 安全可信密钥生成方法及系统、通信方法及系统、设备

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180201

R150 Certificate of patent or registration of utility model

Ref document number: 6285536

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250