(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-15
(45)【発行日】2024-11-25
(54)【発明の名称】データをセキュアにするための方法およびシステム
(51)【国際特許分類】
G09C 1/00 20060101AFI20241118BHJP
【FI】
G09C1/00 650Z
(21)【出願番号】P 2021506422
(86)(22)【出願日】2019-08-07
(86)【国際出願番号】 AU2019050828
(87)【国際公開番号】W WO2020028950
(87)【国際公開日】2020-02-13
【審査請求日】2022-08-05
(32)【優先日】2018-08-07
(33)【優先権主張国・地域又は機関】AU
(73)【特許権者】
【識別番号】518047757
【氏名又は名称】ヘイヴンテック プロプライエタリー リミテッド
【氏名又は名称原語表記】Haventec Pty Ltd
(74)【代理人】
【識別番号】110001302
【氏名又は名称】弁理士法人北青山インターナショナル
(72)【発明者】
【氏名】マードック,ヴァーノン
(72)【発明者】
【氏名】ネティ,ナヴィーン
(72)【発明者】
【氏名】ケライタ,ジョン
【審査官】金沢 史明
(56)【参考文献】
【文献】特表2016-535310(JP,A)
【文献】特表2010-530081(JP,A)
【文献】米国特許出願公開第2003/0005005(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/00- 9/40
G09C 1/00
G06F 21/60-21/64
(57)【特許請求の範囲】
【請求項1】
データアイテムNをセキュアにする方法であって、前記データアイテムがデータアイテム文字列の形態にあり、前記データアイテムの表現のセキュアな格納のためのものであり、前記方法は、
コンピュータのプロセッサによって実行される以下のステップであって、
a.通信ネットワークを介してクライアントデバイスから、第1のサーバで前記データアイテムを含む文字列を受信するステップであって、前記データアイテムは、前記クライアントデバイスのユーザに関連付けられたトランザクションに対応するトランザクション情報を含む、ステップと、
b.少なくとも第1のデータアイテム引数を有する第1のアルゴリズムを前記データアイテム文字列に適用し
、前記第1のアルゴリズムが、前記データアイテム文字列を第1の数字列に変換するステップと、
c.少なくとも第2のデータアイテム引数を有する第2のアルゴリズムを
前記第1の数字列に適用し、前記第2のアルゴリズムが、数値デルタを前記第1の数字列に追加して素数である第2の数字列を形成し、当該第2の数字列は第1のデータアイテム素数の形態であるステップと、
d.前記第1のデータアイテム素数とは異なる第2のデータアイテム素数を選択するステップと、
e.少なくとも前記第1のデータアイテム素数を前記データアイテムについてのデータアイテム秘密鍵として規定し、前記第1のデータアイテム素数と前記第2のデータアイテム素数との積を前記データアイテムについてのデータアイテム公開鍵として規定するステップであって、前記データアイテムの公開鍵は第2のサーバに格納される、ステップと、
f.前記第1のサーバから前記データアイテム文字列を削除するステップと、
g.前記第1のデータアイテム素数、前記第1のアルゴリズム、および前記第2のアルゴリズムを関連付けるデータ記録を前記第1のサーバで保存し、それにより、前記データアイテムが、前記第1のアルゴリズムおよび前記第2のアルゴリズムへの引数の供給によって計算され得る、ステップと、を含む、方法。
【請求項2】
ステップgにおける前記引数は、前記データアイテム公開鍵である、請求項1に記載の方法。
【請求項3】
ステップgにおける前記引数は、データアイテム秘密鍵である、請求項1に記載の方法。
【請求項4】
ステップgにおける前記引数は、前記第2のデータアイテム引数である、請求項1に記載の方法。
【請求項5】
ステップgにおける前記引数は、前記第1のデータアイテム引数である、請求項1に記載の方法。
【請求項6】
前記第2のデータアイテム引数は、数値デルタである、請求項4に記載の方法。
【請求項7】
前記第1のデータアイテム引数は、ASCIIルックアップテーブルである、請求項5に記載の方法。
【請求項8】
前記第1のアルゴリズムは、当該第1のアルゴリズムに入力される前記データアイテム文字列を、前記第1のデータアイテム引数の相手のうちの一方または他方を単に保有するだけでは獲得することができないように、不可逆である、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データをセキュアにするための方法およびシステム、ならびにより詳細には、排他的ではないが、複数の戦略の使用を組み合わせるシステムに関する。
【背景技術】
【0002】
データ難読化および暗号化などの技術は、データをセキュアにするための方法として当該技術分野においてよく知られている。データの難読化は、典型的には、ランダムな鍵セットによるデータのオフセットを伴う。
【0003】
これに加えて、オペレータは、ネットワーク上の様々な目立たない場所にデータを隠すことを試みる。この技術は、一般には、“隠蔽によるセキュリティ”と呼ばれる。この技術は、よく知られており、典型的には、ハッカーがネットワーク上で限られた時間を有する場合にのみ効果的である。これは、今日のハッキング情勢において防御可能な戦略ではない。
【0004】
存在する他の問題としては、暗号化システムのための鍵を中央に格納すること、ならびに暗号化および保護されたデータの中央格納という慣行が挙げられる。これらの慣例は共に、ハッカーがデータおよび鍵ストアの両方を見つけ出して攻撃することを容易にする。
【0005】
さらに別の慣行では、保護されたデータの複数のセットを保護するための暗号鍵の使用は、1つのデータセットに対する攻撃の成功がデータセットのすべてに対する攻撃の成功をもたらすことを意味する。
【0006】
Sun Microsystemsに対する米国特許第7,685,430号は、暗号化アルゴリズムの複数の応用を利用する。この場合、本技術は、インターネットホスト環境内の一時パスワード、より詳細には、ワンタイムパスワードを提供する文脈において適用される。
【0007】
米国特許第7,685,430号の構成において、暗号化アルゴリズムに使用される鍵は、静的データ、すなわち、暗号化アルゴリズムの複数のインスタンスにわたって繰り返し使用される同じデータを含む。
【0008】
加えて、米国特許第7,685,430号は、分散された場所にデータの部分を格納する目的でデータをセグメント化するための戦略については全く説明していない。
【0009】
本出願の構成は、1年または時としてより長い規模の、相当な時間期間にわたって、時として保存される必要があるデータを対象としている。それは、商業的意義を有するデータ、すなわち、ハッキングコミュニティ、いわゆる‘ハニーポット’にとって特に魅力的な標的になる傾向のあるデータに特に好適であり、またこれを対象としている。そのようなデータは、クレジットカードデータ、サーバ証明書、および同様のものを含み得る。
【0010】
今日、この種のデータを格納する者には非常に重大な責任が伴うということに留意されたい。多くの管轄において最低限として、違反が発生したことが決定される場合は、報告義務がある。
【0011】
保護されているデータおよび暗号鍵の両方のための分散型リモート格納技術と組み合わされた標準戦略に勝る強力な難読化システムは、現在使用されていない。
【0012】
説明される発明は、これらの問題に対処するように設計される。
【発明の概要】
【0013】
定義
難読化:データまたはコードを、データまたはコードに適用されるアルゴリズムの使用により隠す。隠されているデータまたはコードを明らかにするには、アルゴリズムの知識が必要とされる。
【0014】
英数字要素:数字または英字または特殊文字から選択される一文字。
【0015】
文字列:文字の単一の列へと連結される2つ以上の文字。
【0016】
データ暗号化:アルゴリズムを入力文字列に適用し、これにより入力文字列とは異なる文字列を出力する。出力文字列は、入力文字列の暗号化である。入力文字列は、復号パラメータまたは引数(場合によっては、鍵として知られる)の使用を条件として出力文字列から復元可能である。パラメータまたは引数へのアクセスは制御され、これにより、権限者のみが出力文字列から入力文字列を復元(または復号)することができる。
【0017】
データパディング:文字列に文字を追加することにより文字列を長くすること。
【0018】
データマッピング:ルックアップテーブルを利用して文字を文字列へ変換する。例えば、英数字が、ASCII翻訳テーブルの使用により数字の列へ変換され得る。
【0019】
遠隔地:距離または論理により他の場所から分離されている場所。
【0020】
したがって、本発明の1つの広範な形態において、データアイテムを暗号化および格納する方法が提供され、本方法は、
・データアイテムが、暗号化されて、暗号化されたデータアイテムを形成する、データ暗号化ステップと、
・暗号化されたデータアイテムが、少なくとも第1の構成部分および第2の構成部分を含む2つ以上の暗号化されたデータアイテム構成部分に数学的に分解される、数学的分解ステップと、
・構成部分のうちの少なくとも一方を、構成部分のうちの他方とは分離した場所に格納するステップと、を含む。
【0021】
好ましくは、場所の分離は、論理メモリの分離によるものである。
【0022】
好ましくは、場所の分離は、別個のサーバの使用によるものである。
【0023】
好ましくは、場所の分離は、地理的分離によるものである。
【0024】
好ましくは、場所の分離は、別個のサーバの地理的分離であり、各サーバが、暗号化されたデータアイテムを形成する構成部分のうちの異なる構成部分を保持する。
【0025】
好ましくは、場所の分離は、論理メモリの分離によるものであり、これにより、少なくとも第1の構成部分は、第1の論理メモリに格納され、少なくとも第2の構成部分は、第2の論理メモリに格納される。
【0026】
好ましくは、場所の分離は、別個のサーバの使用によるものであり、これにより、少なくとも第1の構成部分は、第1のサーバに格納され、少なくとも第2の構成部分は、第2のサーバに格納される。
【0027】
好ましくは、場所の分離は、地理的分離によるものであり、これにより、少なくとも第1の構成部分は、第1の地理的場所に格納され、少なくとも第2の構成部分は、第2の地理的場所に格納され、第1の地理的場所は、第2の地理的場所から地理的に分離されている。
【0028】
好ましくは、データ暗号化ステップは、データアイテムを暗号化するアルゴリズム内のパラメータとして暗号鍵を使用してデータアイテムを暗号化するステップを含む。
【0029】
好ましくは、データアイテムは、データ暗号化ステップの前にパディングされる。
【0030】
好ましくは、暗号鍵は、対称鍵である。
【0031】
好ましくは、暗号化されたデータアイテムは、数学的分解ステップの前に、暗号化されたデータアイテムマッピングステップによってマッピングされて、マッピングされた暗号化されたデータアイテムを形成する。
【0032】
好ましくは、数学的分解ステップは、暗号化されたデータアイテムを構成部分に分割するアルゴリズム内のパラメータとしての分解鍵の使用を含む。
【0033】
好ましくは、分解鍵は、素数である。
【0034】
好ましくは、分解鍵は、対称鍵である。
【0035】
好ましくは、データアイテムは、認証情報を参照して格納される。
【0036】
好ましくは、データアイテムは、エンティティと関連付けられる。
【0037】
好ましくは、認証情報は、データアイテムがエンティティと関連付けられる場合、エンティティのエンティティ認証情報である。
【0038】
好ましくは、特定の形態では、アルゴリズムは、アルゴリズム17に入力されるデータアイテム文字列16を、アルゴリズムの引数の相手のうちの一方または他方を単に保有するだけでは獲得することができないように、不可逆である。
【0039】
本発明のさらなる広範な形態において、データアイテムNをセキュアにする方法であって、前記データアイテムがデータアイテム文字列の形態にあり、データアイテムの表現のセキュアな格納のためのものである、方法が提供され、本方法は、
・データアイテムを含む文字列を第1の環境にインポートするステップと、
・少なくとも第1のデータアイテム引数を有する第1の関数/アルゴリズムをデータアイテム文字列に適用し、それにより第1の修正されたデータアイテム文字列を形成するステップと、
・少なくとも第2のデータアイテム引数を有する第2の関数/アルゴリズムを第1の修正された文字列に適用し、それにより、第1の修正されたデータアイテム文字列が、第2の修正されたデータアイテム文字列に埋め込まれる、ステップであって、前記第2の修正されたデータアイテム文字列が第1のデータアイテム素数の形態にある、ステップと、
・前記第1のデータアイテム素数とは異なる第2のデータアイテム素数を選択するステップと、
・少なくとも第1のデータアイテム素数をデータアイテムについてのデータアイテム秘密鍵として規定し、第1のデータアイテム素数と第2のデータアイテム素数との積をデータアイテムについてのデータアイテム公開鍵として規定するステップと、
・第1の環境からデータアイテム文字列を削除するステップと、
・第1のデータアイテム素数、第1の関数/アルゴリズム、および第2の関数/アルゴリズムを関連付けるデータ記録を保存し、それにより、データアイテムが、第1の関数/アルゴリズムおよび第2の関数/アルゴリズムへの引数の供給によって計算され得る、ステップと、を含む。
【0040】
好ましくは、引数は、データアイテム公開鍵である。
【0041】
好ましくは、引数は、データアイテム秘密鍵である。
【0042】
好ましくは、引数は、第2のデータアイテム引数である。
【0043】
好ましくは、引数は、第1のデータアイテム引数である。
【0044】
好ましくは、第2のデータアイテム引数は、数値デルタである。
【0045】
好ましくは、第1のデータアイテム引数は、ASCIIルックアップテーブルである。
【0046】
好ましくは、第1の関数は、文字列を数字列に変換する。
【0047】
好ましくは、第2の関数/アルゴリズムは、第2の修正された文字列を形成するために、数値デルタを第1の修正された文字列に追加する。
【0048】
好ましくは、特定の形態では、アルゴリズムは、アルゴリズム17に入力されるデータアイテム文字列16を、アルゴリズムの引数の相手のうちの一方または他方を単に保有するだけでは獲得することができないように、不可逆である。
【0049】
本発明の依然としてさらなる広範な形態において、データアイテムNをセキュアにする方法であって、前記データアイテムNがデータアイテム文字列の形態で表現され、データアイテムの少なくとも2つの表現、および少なくとも2つのデータアイテム引数のセキュアな格納のためのものであり、データアイテム引数が、少なくとも2つの関数のための引数を含み、少なくとも2つの関数が、データアイテムの表現を入力として受信し、データアイテムの前記表現の修正された形態を出力する、方法が提供され、本方法は、
・データアイテム文字列を第1の環境へインポートするステップと、
・少なくとも第1のデータアイテム引数を有する第1のアルゴリズムをデータアイテム文字列に適用し、それにより第1の修正されたデータアイテム文字列を形成するステップと、
・少なくとも第2のデータアイテム引数を有する第2のアルゴリズムを第1の修正された文字列に適用し、それにより第2の修正されたデータアイテム文字列を形成するステップと、
・第1の環境からデータアイテム文字列を削除するステップと、
・第1の修正されたデータアイテム文字列、第2の修正されたデータアイテム文字列、第1のデータアイテム引数、および第2のデータアイテム引数のうちの1つまたは複数を第2の環境へ移動させるステップと、
・前記第1の環境から遠隔地にある前記第2の環境と、を含む、方法が提供される。
【0050】
好ましくは、記録は、データアイテム文字列、第1の関数/アルゴリズム、および第2の関数/アルゴリズムが保存されるものであり、それにより、データアイテムが、第1の関数/アルゴリズムおよび第2の関数/アルゴリズムへの引数の供給によって計算され得る。
【0051】
好ましくは、引数は、データアイテム公開鍵である。
【0052】
好ましくは、引数は、データアイテム秘密鍵である。
【0053】
好ましくは、引数は、第2のデータアイテム引数である。
【0054】
好ましくは、引数は、第1のデータアイテム引数である。
【0055】
好ましくは、第2のデータアイテム引数は、数値デルタである。
【0056】
好ましくは、第1のデータアイテム引数は、ASCIIルックアップテーブルである。
【0057】
好ましくは、第1の関数は、文字列を数字列に変換する。
【0058】
好ましくは、第2の関数/アルゴリズムは、第2の修正された文字列を形成するために、数値デルタを第1の修正された文字列に追加し、それにより、第1の修正されたデータアイテム文字列が、第2の修正されたデータアイテム文字列に埋め込まれ、前記第2の修正されたデータアイテム文字列が第1のデータアイテム素数の形態にあり、第1のデータアイテム素数とは異なる第2のデータアイテム素数を選択すること、少なくとも第1のデータアイテム素数をデータアイテムについてのデータアイテム秘密鍵として規定すること、第1のデータアイテム素数と第2のデータアイテム素数との積をデータアイテムについてのデータアイテム公開鍵として規定すること。
【0059】
好ましくは、引数は、アルゴリズムへのその適用の直前に動的に作成される。
【0060】
好ましくは、各2次引数は、アルゴリズムへのその適用の直前に動的に作成される。
【0061】
好ましくは、2次引数の少なくともいくつかは、アルゴリズムへの入力としてのそれらの適用の直前に動的に作成される。
【0062】
好ましくは、アルゴリズムは、第1の環境20内のデータアイテム文字列に適用される。好ましい形態では、アルゴリズムが一旦適用されると、引数のうちの1つまたは複数が、第2の環境21に格納される。
【0063】
好ましくは、1次引数のうちの少なくとも1つは、第2の環境に格納される。好ましい形態では、1次引数のうちの少なくとも1つは、第2の環境に格納され、次いで第1の環境から削除される。
【0064】
好ましくは、2次引数のうちの少なくとも1つは、第2の環境に格納される。好ましい形態では、2次引数のうちの少なくとも1つは、第2の環境に格納され、次いで第1の環境から削除される。
【0065】
好ましくは、少なくとも第1のアルゴリズム14および第2のアルゴリズム17は、データアイテム文字列13に連続的に適用される。好ましい形態では、少なくとも1つの1次引数および少なくとも1つの2次引数は、少なくとも第1のアルゴリズム14および少なくとも第2のアルゴリズム17のデータアイテム文字列13への適用後、第2の環境に格納される。
【0066】
好ましくは、本プロセスは、N回繰り返される。
【0067】
好ましくは、Nは2に等しい。
【0068】
好ましくは、Nは3に等しい。
【0069】
好ましくは、Nは4に等しい。
【0070】
好ましくは、少なくとも1つの1次引数および少なくとも1つの2次引数は、第2の環境への格納後に第1の環境から削除される。
【0071】
好ましくは、第2の環境21は、第1の環境20から分離されている。好ましい形態では、第2の環境21は、第2の環境が第1の環境の場所から遠隔地にある場所に位置するという理由で、第1の環境20から分離されている。
【0072】
好ましくは、第2の環境21は、第1の環境20から論理的に分離されている。好ましくは、第2の環境に格納されるそれらの出力または引数は、その後、第1の環境から削除される。
【0073】
好ましくは、データアイテム文字列13を含むデータアイテム11は、アルゴリズムのうちの1つまたは複数が適用されると、第1の環境から削除される。
【0074】
好ましくは、データアイテム文字列13を含むデータアイテム11は、アルゴリズムのうちの1つまたは複数が適用されると、およびアルゴリズムの出力または引数のうちの1つまたは複数が第2の環境21に格納されると、第1の環境から削除される。
【0075】
好ましくは、データアイテム11に含まれていた情報12を復元することが望まれる場合、上記プロセスが逆転される。
【0076】
好ましくは、逆転における第1のステップは、第1の環境20および第2の環境21に格納されるアルゴリズムの出力または引数を1つの場所に持ってくることである。
【0077】
好ましくは、引数は、次いで、プロセスを逆転させるためにアルゴリズムに適用され、それにより、データアイテム11が使用のために復元される。
【0078】
好ましくは、上記のプロセスは、データアイテム11が使用された後にデータアイテム11に再適用され、それにより、その中に含まれる情報12を、潜在的には不確定の時間期間にわたってもう一度セキュアにする。
【0079】
好ましくは、特定の形態では、アルゴリズムは、アルゴリズム17に入力されるデータアイテム文字列16を、アルゴリズムの引数の相手のうちの一方または他方を単に保有するだけでは獲得することができないように、不可逆である。
【0080】
本発明の依然としてさらなる広範な形態において、データアイテムN内の情報をセキュアにする方法であって、前記データアイテムNがデータアイテム文字列の形態で表現される、方法が提供され、本方法は、
・データアイテム文字列を第1の環境へインポートするステップと、
・少なくとも第1のデータアイテム1次引数および少なくとも第1のデータアイテム2次引数を有する少なくとも第1の関数/アルゴリズムを、データアイテム文字列に適用し、それにより、第1の修正されたデータアイテム文字列を形成するステップであって、少なくとも第1のデータアイテム1次引数が、データアイテム文字列を含む、ステップと、
・少なくとも第2のデータアイテム1次引数および少なくとも第2のデータアイテム2次引数を有する第2の関数/アルゴリズムを、第1の修正された文字列に適用し、それにより、第2の修正されたデータアイテム文字列を形成するステップであって、少なくとも第2のデータアイテム1次引数が、第1の修正されたデータアイテム文字列を含む、ステップと、
・第1の環境からデータアイテム文字列を削除するステップと、
・引数のうちの1つまたは複数を少なくとも第2の環境へ移動させるステップと、
・第1の環境から遠隔地にある第2の環境と、を含む。
【0081】
好ましくは、データアイテムの少なくとも2つの表現、および少なくとも2つのデータアイテム引数のセキュアな格納のためのものであり、データアイテム引数が、少なくとも2つの関数のための引数を含み、少なくとも2つの関数が、データアイテムの表現を入力として受信し、データアイテムの表現の修正された形態を出力する。
【0082】
好ましくは、引数は、第1の修正されたデータアイテム文字列、第2の修正されたデータアイテム文字列、第1のデータアイテム引数、および第2のデータアイテム引数のうちの1つまたは複数を含む。
【0083】
好ましくは、特定の形態では、アルゴリズムは、アルゴリズム17に入力されるデータアイテム文字列16を、アルゴリズムの引数の相手のうちの一方または他方を単に保有するだけでは獲得することができないように、不可逆である。
【0084】
好ましくは、上に説明されるような方法を実施するための手段を組み込んだデジタル入力/出力デバイスが提供される。
【0085】
好ましくは、本デバイスは、スマートフォン上のソフトウェアアプリケーションとして組み込まれる。
【0086】
好ましくは、コードを格納した媒体であって、コードが、プロセッサによって実行されるとき、上に説明されるような方法を実行する、媒体が提供される。
【0087】
好ましくは、本媒体は、非一時な媒体である。
【0088】
好ましくは、上に説明されるような方法に従ってデータアイテムを転送するための準備として、生理的特徴を認識するための手段を組み込んだ、デジタル入力/出力デバイスが提供される。
【0089】
好ましくは、本デバイスは、スマートフォン上のソフトウェアアプリケーションとして組み込まれる。
【0090】
本発明の依然としてさらなる広範な形態において、少なくとも第1の格納場所および第2の格納場所を有するシステムにおけるセキュリティ侵害に応答する方法であって、システムが、データアイテムを暗号化および格納する方法を実施する、方法が提供され、前記方法は、
a.データアイテムが、暗号化されて、暗号化されたデータアイテムを形成する、データ暗号化ステップと、
b.暗号化されたデータアイテムが、少なくとも第1の構成部分および第2の構成部分を含む2つ以上の暗号化されたデータアイテム構成部分に数学的に分解される、数学的分解ステップと、
c.構成部分のうちの少なくとも一方を第1の格納場所に格納し、第2の構成部分を、構成部分の他方とは別に第2の格納場所に格納するステップと、を含み、前記方法は、
セキュリティ侵害が、第1の場所で検出され、それにより少なくとも第1の構成部分が不正アクセスされる場合、
少なくとも第1の構成部分を第1の場所から削除するステップ、
および、少なくとも第2の構成部分を第2の場所から削除するステップを含む。
【0091】
本発明の依然としてさらなる広範な形態において、分散型暗号化システムであって、暗号化されるべきデータは、
a.プライマリサーバ上に置かれ、次いで伸張および難読化されて、難読化された列を形成し、
b.難読化された列は、次いで、対称暗号鍵を使用して暗号化されて、暗号化された列を形成し、
c.パッキングデータの列が、次いで、結果として生じるデータ列が、このとき最初の素数として規定される最も近い素数に計算的に等価になるまで、暗号化された列に徐々に追加され、
d.同様の長さの追加の素数が生成され、最初の素数および追加の素数は、既定の公開鍵アルゴリズムを使用して公開鍵を生成するために使用される、分散型暗号化システムが提供される。
【0092】
好ましくは、最初の素数は、メモリから削除され、格納されない。
【0093】
好ましくは、結果として生じる要素は、次いで、異なる場所に格納される。
【0094】
好ましくは、対称暗号鍵およびパッキングデータの列は、プライマリサーバに格納され、公開鍵は、セカンダリサーバに格納され、追加の素数は、ターシャリサーバに格納される。
【0095】
好ましくは、データが復号されることになるとき、
a.公開鍵および追加の素数が、それらのそれぞれのサーバから取得され、
b.公開鍵が、既定の公開鍵アルゴリズムを使用して最初の素数を計算するために使用される追加の素数と組み合わせて使用され、
c.格納されたパッキングデータの列が、次いで、結果として生じる素数から差し引かれ、結果として生じる暗号化された列が、プライマリサーバに格納された対称暗号鍵を使用して復号され、
d.所望のターゲットデータは、データを当初難読化するために最初に使用された難読化ルールの逆を使用して、結果として生じる伸張され難読化されたデータ列から難読化解除される。
【0096】
好ましくは、本システムは、RSAまたはシャミアのアルゴリズムを含むがこれに限定されない、公開鍵暗号化の任意の形態を使用する。
【0097】
本発明の依然としてさらなる広範な形態において、データ保護の方法が提供され、本方法は、
a.暗号化されるべきデータが、対称鍵を用いて暗号化されるステップと、
b.対称鍵が、難読化および伸張されるステップと、
c.次いで、対称鍵が、このときプライマリサーバに格納される第2の対称鍵を使用して暗号化されるステップと、
d.パッキングデータの列が、次いで、暗号化された対称鍵に追加されて、素数を形成するステップと、
e.同様の長さの第2の素数が、生成され、および2つの素数、ステップと、を含む。
【0098】
好ましくは、対称暗号鍵およびパッキングデータの列は、プライマリサーバに格納され、公開鍵は、セカンダリサーバに格納され、追加の素数は、ターシャリサーバに格納される。
【0099】
好ましくは、データの復号化は、ステップを逆転することによって実施される。
【0100】
本発明の実施形態は、これより、添付の図面を参照して説明される。
【図面の簡単な説明】
【0101】
【
図1】
図1Aは、本発明のシステムの一般化された実施形態の適用の段階のブロック図である。
図1Bは、本発明のシステムの一般化された実施形態の適用の段階のブロック図である。
図1Cは、本発明のシステムの一般化された実施形態の適用の段階のブロック図である。
図1Dは、本発明のシステムの一般化された実施形態の適用の段階のブロック図である。
【
図2】
図2は、本発明のシステムの少なくとも第1の実施形態を実施するためのステップのフローチャートである。
【
図3】
図3は、本発明のシステムに従うデータアイテムの格納およびその後の取得について、
図2の第1の実施形態のステップを実施するために好適な主要構成要素のブロック図である。
【
図4】
図4は、本発明のシステムの少なくとも第2の実施形態を実施するためのステップのフローチャートである。
【
図5】
図5は、データアイテムが短いデータ列を含む、
図4の第2の実施形態の少なくとも1つの例の格納および取得のためのステップを概説するプロセス図である。
【
図6】
図6は、データアイテムが長いデータ列を含む、
図4の第2の実施形態の少なくとも1つの例の格納および取得のためのステップを概説するプロセス図である。
【
図7】
図7は、本システムの実施形態のいずれかに適用可能な使用シナリオのブロックシステム図である。
【発明を実施するための形態】
【0102】
広範には、1つの実施形態において、データアイテムを暗号化および格納する方法が提供され、本方法は、
データアイテムが、暗号化されて、暗号化されたデータアイテムを形成する、データ暗号化ステップと、
暗号化されたデータアイテムが、少なくとも第1の構成部分および第2の構成部分を含む2つ以上の暗号化されたデータアイテム構成部分に数学的に分解される、数学的分解ステップと、
構成部分のうちの少なくとも一方を、構成部分のうちの他方とは分離した場所に格納するステップと、を含む。
【0103】
好ましい形態では、場所の分離は、論理メモリの分離によるものであり、これにより、少なくとも第1の構成部分は、第1の論理メモリに格納され、少なくとも第2の構成部分は、第2の論理メモリに格納される。
【0104】
代替の好ましい形態では、場所の分離は、別個のサーバの使用によるものであり、これにより、少なくとも第1の構成部分は、第1のサーバに格納され、少なくとも第2の構成部分は、第2のサーバに格納される。
【0105】
特定の好ましい形態では、場所の分離は、地理的分離によるものであり、これにより、少なくとも第1の構成部分は、第1の地理的場所に格納され、少なくとも第2の構成部分は、第2の地理的場所に格納され、第1の地理的場所は、第2の地理的場所から地理的に分離されている。
【0106】
依然としてさらなる特定の形態では、場所の分離は、別個のサーバの地理的分離であり、各サーバが、暗号化されたデータアイテムを形成する構成部分のうちの異なる構成部分を保持する。
【0107】
広範には、さらなる実施形態において、データアイテムNをセキュアにする方法であって、前記データアイテムがデータアイテム文字列の形態にあり、データアイテムの表現のセキュアな格納のためのものである、方法が提供され、本方法は、
データアイテムを含む文字列を第1の環境にインポートするステップと、
少なくとも第1のデータアイテム引数を有する第1のアルゴリズムをデータアイテム文字列に適用し、それにより第1の修正されたデータアイテム文字列を形成するステップと、
少なくとも第2のデータアイテム引数を有する第2のアルゴリズムを第1の修正された文字列に適用し、それにより、第1の修正されたデータアイテム文字列が、第2の修正されたデータアイテム文字列に埋め込まれる、ステップであって、前記第2の修正されたデータアイテム文字列が第1のデータアイテム素数の形態にある、ステップと、
第1のデータアイテム素数とは異なる第2のデータアイテム素数を選択するステップと、
少なくとも第1のデータアイテム素数をデータアイテムについてのデータアイテム秘密鍵として規定し、第1のデータアイテム素数と第2のデータアイテム素数との積をデータアイテムについてのデータアイテム公開鍵として規定するステップと、
第1の環境からデータアイテム文字列を削除するステップと、
第1のデータアイテム素数、第1のアルゴリズム、および第2のアルゴリズムを関連付けるデータ記録を保存し、それにより、データアイテムが、第1のアルゴリズムおよび第2のアルゴリズムへの引数の供給によって計算され得る、ステップと、を含む。
【0108】
好ましい形態では、引数は、データアイテム公開鍵である。
【0109】
代替の好ましい形態では、引数は、データアイテム秘密鍵である。
【0110】
代替の好ましい形態では、引数は、第2のデータアイテム引数である。
【0111】
代替の好ましい形態では、引数は、第1のデータアイテム引数である。
【0112】
代替の好ましい形態では、第2のデータアイテム引数は、数値デルタである。
【0113】
代替の好ましい形態では、第1のデータアイテム引数は、ASCIIルックアップテーブルである。
【0114】
代替の好ましい形態では、第1のアルゴリズムは、文字列を数字列に変換する。
【0115】
代替の好ましい形態では、第2のアルゴリズムは、第2の修正された文字列を形成するために、数値デルタを第1の修正された文字列に追加する。
【0116】
特定の好ましい形態では、第2の環境21は、第2の環境が第1の環境の場所から遠隔地にある場所に位置するという理由で、第1の環境20から分離されている。
【0117】
さらなる特定の好ましい形態では、第2の環境21は、第1の環境20から論理的に分離されている。
【0118】
図1A、
図1B、
図1C、および
図1Dを参照すると、本発明のシステム10の好ましい実施形態は、データアイテム11に含まれる情報12のセキュアな格納のためにデータアイテム11をセキュアにすることを目指す。
【0119】
好ましい形態では、データアイテム11は、データアイテム文字列13の形態にある。好ましい形態では、少なくとも第1のアルゴリズム14は、データアイテム文字列13に適用され、それにより第1の修正されたデータアイテム文字列16を少なくとも第1のアルゴリズム14の出力としてもたらす。好ましくは、第1のアルゴリズム14は、少なくとも第1のデータアイテム1次引数13Aを有し、また少なくとも第1のデータアイテム2次引数15を有する数学関数の形態にある。好ましい形態では、第1のデータアイテム1次引数13Aは、データアイテム文字列13である。
【0120】
好ましい形態では、少なくとも第2のアルゴリズム17は、データアイテム文字列13に適用され、それにより第2の修正されたデータアイテム文字列19を少なくとも第2のアルゴリズム17の出力としてもたらす。好ましくは、第2のアルゴリズム17は、少なくとも第2のデータアイテム1次引数16Aを有し、また少なくとも第2のデータアイテム2次引数18を有する数学関数の形態にある。好ましい形態では、第2のデータアイテム1次引数16Aは、第1の修正されたデータアイテム文字列16(すなわち、少なくとも第2のアルゴリズム17の適用の前にアルゴリズムの適用により修正された後のデータアイテム文字列13)である。この場合、それは、データアイテム文字列13に適用される少なくとも第1のアルゴリズム14の適用により修正されている。
【0121】
好ましい形態では、引数は、アルゴリズムへのその適用の直前に動的に作成される。
【0122】
好ましい形態では、各2次引数は、アルゴリズムへのその適用の直前に動的に作成される。
【0123】
好ましい形態では、2次引数の少なくともいくつかは、アルゴリズムへの入力としてのそれらの適用の直前に動的に作成される。
【0124】
好ましい形態では、アルゴリズムは、第1の環境20内のデータアイテム文字列に適用される。好ましい形態では、アルゴリズムが一旦適用されると、引数のうちの1つまたは複数が、第2の環境21に格納される。
【0125】
好ましい形態では、1次引数のうちの少なくとも1つは、第2の環境に格納される。好ましい形態では、1次引数のうちの少なくとも1つは、第2の環境に格納され、次いで第1の環境から削除される。
【0126】
好ましい形態では、2次引数のうちの少なくとも1つは、第2の環境に格納される。好ましい形態では、2次引数のうちの少なくとも1つは、第2の環境に格納され、次いで第1の環境から削除される。
【0127】
好ましい形態では、少なくとも第1のアルゴリズム14および第2のアルゴリズム17は、データアイテム文字列13に連続的に適用される。好ましい形態では、少なくとも1つの1次引数および少なくとも1つの2次引数は、少なくとも第1のアルゴリズム14および少なくとも第2のアルゴリズム17のデータアイテム文字列13への適用後、第2の環境に格納される。
【0128】
直前に説明されたプロセスは、繰り返され得る。
【0129】
好ましい形態では、少なくとも1つの1次引数および少なくとも1つの2次引数は、第2の環境への格納後に第1の環境から削除される。
【0130】
好ましい形態では、第2の環境21は、第1の環境20から分離されている。好ましい形態では、第2の環境21は、第2の環境が第1の環境の場所から遠隔地にある場所に位置するという理由で、第1の環境20から分離されている。
【0131】
好ましい形態では、第2の環境21は、第1の環境20から論理的に分離されている。好ましくは、第2の環境に格納されるそれらの出力または引数は、その後、第1の環境から削除される。
【0132】
好ましくは、データアイテム文字列13を含むデータアイテム11は、アルゴリズムのうちの1つまたは複数が適用されると、第1の環境から削除される。
【0133】
好ましくは、データアイテム文字列13を含むデータアイテム11は、アルゴリズムのうちの1つまたは複数が適用されると、およびアルゴリズムの出力または引数のうちの1つまたは複数が第2の環境21に格納されると、第1の環境から削除される。
【0134】
データアイテム11に含まれていた情報12を復元することが望まれるとき、上記プロセスは逆転される。逆転における第1のステップは、第1の環境20および第2の環境21に格納されるアルゴリズムの出力または引数を1つの場所に持ってくることである。引数は、次いで、プロセスを逆転させるためにアルゴリズムに適用され、それによりデータアイテム11が使用のために復元される。
【0135】
いくつかの実施形態において、上記のプロセスは、データアイテム11が使用された後にデータアイテム11に再適用され、それにより、その中に含まれる情報12を、潜在的には不確定の時間期間にわたってもう一度セキュアにする。
【0136】
説明されることになる実施形態は、単に、‘鍵’が分散されている高レベルの暗号化だけでないということに留意されたい。データは、アルゴリズムが処理され得る前に一緒にまとめられるべき分離された情報のいくつかの格納された部分を必要とするアルゴリズムを使用して、分解および再作成される。
【0137】
図1Dを参照すると、任意の所与のアルゴリズム14、17は、2つ以上の出力、この場合は出力E、Fをもたらし得る。これは、利用されるアルゴリズムの性質に応じて生じ得る。以下に説明される第2の実施形態は、この出力の形態をもたらし得るシャミアのアルゴリズムの適用を含む。
【0138】
特定の形態では、アルゴリズムは、アルゴリズム17に入力されるデータアイテム文字列16が、EまたはFまたはDのうちの一方または他方を単に保有するだけでは獲得することができないようなものである。
【0139】
与えられた例では、第1および第2のアルゴリズムが適用される。追加のアルゴリズムは、
図1D内の追加のアルゴリズム22、23によって示されるようなより長いシーケンスを形成するために追加され得る。
【0140】
第1の好ましい実施形態
図2を参照すると、第1の好ましい実施形態に従ってデータアイテムをセキュアにする方法であって、前記データアイテムはデータアイテム文字列の形態にあり、データアイテムの表現のセキュアな格納のためのものである、方法のフローチャートが開示され、本方法は、
・データアイテムを含む文字列を第1の環境にインポートするステップと、
・少なくとも第1のデータアイテム引数を有する第1の関数/アルゴリズムをデータアイテム文字列に適用し、それにより第1の修正されたデータアイテム文字列を形成するステップと、
・少なくとも第2のデータアイテム引数を有する第2の関数/アルゴリズムを第1の修正された文字列に適用し、それにより、第1の修正されたデータアイテム文字列が、第2の修正されたデータアイテム文字列に埋め込まれる、ステップであって、前記第2の修正されたデータアイテム文字列が第1のデータアイテム素数の形態にある、ステップと、
・第1のデータアイテム素数とは異なる第2のデータアイテム素数を選択するステップと、
・少なくとも第1のデータアイテム素数をデータアイテムについてのデータアイテム秘密鍵として規定し、第1のデータアイテム素数と第2のデータアイテム素数との積をデータアイテムについてのデータアイテム公開鍵として規定するステップと、
・第1の環境からデータアイテム文字列を削除するステップと、
・第1のデータアイテム素数、第1の関数/アルゴリズム、および第2の関数/アルゴリズムを関連付けるデータ記録を保存し、それにより、データアイテムが、第1の関数/アルゴリズムおよび第2の関数/アルゴリズムへの引数の供給によって計算され得る、ステップと、を含む。
【0141】
好ましくは、引数は、データアイテム公開鍵である。
【0142】
好ましくは、引数は、データアイテム秘密鍵である。
【0143】
好ましくは、引数は、第2のデータアイテム引数である。
【0144】
好ましくは、引数は、第1のデータアイテム引数である。
【0145】
好ましくは、第2のデータアイテム引数は、数値デルタである。
【0146】
好ましくは、第1のデータアイテム引数は、ASCIIルックアップテーブルである。
【0147】
好ましくは、第1の関数は、文字列を数字列に変換する。
【0148】
好ましくは、第2の関数/アルゴリズムは、第2の修正された文字列を形成するために、数値デルタを第1の修正された文字列に追加する。
【0149】
図3を参照すると、第1の好ましい実施形態の実装形態が開示される。典型的には、セキュアにされるべきデータアイテム文字列120の形態にあるデータは、クライアントデバイス110などのソースに由来し、インターネット111などの公開ネットワークを用いて、この場合はメインプロセスサーバ112の形態にある、第1の環境20に到着する。次いで、好ましい形態にあるメインプロセスサーバ112が、データアイテム文字列120を暗号化して、暗号化されたデータアイテム文字列113を形成する。次いで、第1のアルゴリズム14が、暗号化されたデータアイテム文字列113に適用される。第1のアルゴリズム14は、暗号化されたデータアイテム文字列113の数値より数値的に次に上にある次の利用可能な素数114を見つけ出す。第1のアルゴリズム14は、この素数114を第1の修正されたデータアイテム文字列16として出力する。この場合、第1のアルゴリズム14は、暗号化されたデータアイテム文字列113を難読化するために使用されている。次に、無料の素数15が、当該技術分野において知られている公開鍵アルゴリズムを使用して生成される。
【0150】
2次素数15、および保護されるべきデータ13を暗号化するために使用された暗号鍵19は、メインプロセスサーバ12に格納される。最初の素数14および2次素数15は、当該技術分野において知られている公開鍵技術を使用して公開鍵をもたらすために組み合わされ、次いで、暗号化されたデータ13と最初の素数14との間の差18と一緒に、遠隔サーバ16に格納される17。
【0151】
セカンダリサーバ16への要素17、18の格納が確認された後、素数14に閉じ込められた元の暗号化されたデータ13は、メモリから削除される。
【0152】
保護データを復号する要求がなされるとき、セカンダリサーバ16は、難読化解除および復号されるように、プライマリサーバ12に公開鍵17を差18と一緒に送信するために使用される。プライマリサーバ12において、格納された素数15は、最初の素数14を取得するために公開鍵17に適用される。次いで、差18が、最初の素数14に適用され、暗号化された元のデータセット13を結果としてもたらす。次いで、ローカルに格納された暗号鍵19が、保護データをその暗号化されていない状態21へ復号するために使用される。
【0153】
例となる実施形態において、メインサーバは、保護されるべきデータの暗号鍵、ならびに難読化解除プロセスにおいて後で使用される2次素数を格納するために使用される。第2のサーバは、最初の素数および2次素数から生成される公開鍵、ならびに第1の素数とその暗号化状態にあるデータとの間の差を格納するために使用される。代替の実施形態は、要素が取得され得る限り任意の数の遠隔サーバ上の任意のアクセス可能な場所に格納される鍵要素のいずれかを見ることができる。
【0154】
第2の好ましい実施形態
図4を参照すると、本発明のシステムの少なくとも第2の実施形態を実施するためのステップのフローチャートが示されている。実装形態の詳細なステップは、
図5および
図6にさらに例証される。
【0155】
後者のソリューションは、単に、‘鍵’が分散されている高レベルの暗号化ではなく、データは、アルゴリズムが処理され得る前に、一緒にまとめられるべき分離された情報のいくつかの格納された部分を必要とするアルゴリズムを使用して、分解および再作成されるということに留意することが重要である。
【0156】
例となる実施形態は、公開鍵暗号化技術を使用して、難読化し、後の再コンパイルおよび復号のために鍵要素のセキュアな分散を可能にする。代替の実施形態は、当該技術分野において知られているシャミアの秘密共有アルゴリズムなどの非公開鍵暗号化システムを使用し得る。この代替の実施形態において、暗号化されたデータは依然として、素数がそこに適用されているが、しかしながら、公開鍵方法を使用して2次素数を生成するのではなく、素数は、暗号化されたデータにソルトとして適用されて、数学的な線上のランダム点をもたらす。このモデルでは、少なくとも2つの場所は、ランダム点を分散させることが必要とされる。そのため、場所は、別個のサーバに格納され、ソルトは、これらのサーバのうちの1つに格納される。依然として別の代替の実施形態において、不定数のランダム点が、不定数の場所に格納され得る。
【実施例】
【0157】
実施例1-小さいデータの暗号化
図5を参照すると、小さいデータの暗号化方法は、暗号化されるべきデータの長さが200文字未満のものであるときに使用される。この数字は、暗号化の前にデータの十分なランダムパディングを可能にするように、およびまた、生成された素数が作成時間に影響を及ぼすほど大きくないことを確実にするように選択された。
【0158】
暗号化された分散されたセキュアなデータを作成すること:
【0159】
ユーザは、ユーザ名(U1)、Vault名(VN1)、暗号化されていない認証情報(UC1)(例えば、クレジットカード番号)、取引形態(TT1)、および取引参照(TR1)を含むデータアイテム11を入力し、これらのデータアイテム11のうちの少なくとも1つが、セキュアにされることになる情報12を含む。この場合、情報12は、暗号化されていない認証情報13(UC1)内にある。
【0160】
システムは、この例では、ランダムVault ID(ID1)、素数(P1)、および対称鍵(K1)を含む、1つまたは複数の引数15、18を生成し、これらの少なくともいくつかは、情報12に対して連続的に動作する少なくとも第1および第2のアルゴリズムまたは関数14、17のための引数として使用される。
【0161】
システムは、この場合は、まず暗号化されていない認証情報13(UC1)をランダムデータ(引数として)でパディングすることを含む、既定の順に、アルゴリズムまたは関数14、17を実行して、パディングされた暗号化されていない認証情報(PUC1)を作成する。
【0162】
次いで、システムは、パディングされた暗号化されていない認証情報(PUC1)を、この場合は対称鍵(K1)の形態にある、少なくとも第2のデータアイテム引数18を用いて暗号化して、暗号化された列(ES1)を作成するために、少なくとも第2のアルゴリズム17、この場合、暗号化アルゴリズムを適用する。
【0163】
この場合、依然としてさらなる関数またはアルゴリズムが適用され、それにより、暗号化された列(ES1)は、ASCII翻訳テーブル(マッピング関数への引数として使用される)を通じて大きな整数(LI1)へ変換またはマッピングされる。
【0164】
この場合、依然としてさらなる関数またはアルゴリズムが適用され、それにより、システムは、引数としての素数(P1)およびアルゴリズムを使用して、大きい整数(LI1)を2つ以上の部分(SP1...n)に分割する。1つの形態では、関数は、シャミアのアルゴリズムに基づく。
【0165】
次いで、システムは、引数および関数またはアルゴリズムの出力のうちの1つまたは複数を別個の遠隔地へ分ける。この特定の場合では、システムは、Vault ID(ID1)、第1の部分(SP1)、および対称鍵(K1)、および素数(P1)をデータベースストア内に格納する。
【0166】
システムは、ID(ID1)、残りの部分(SP2...n)を異なる場所に返す。
【0167】
暗号化された分散されたシステムからデータを取得すること:
【0168】
ユーザは、ID(ID1)、取引形態(TT1)、部分(SP2...n)を提示する。
【0169】
システムは、ユーザ供給されたVault ID(ID1)を通じて、素数1(P1)、部分1(SP1)、および対称鍵(K1)を取得する。
【0170】
システムは、(P1)および部分(SP1...n)を使用して、大きい整数(LI1)を再構築する。
【0171】
大きい整数(LI1)は、ASCII翻訳テーブルを通じて、暗号化された列(ES1)に変換される。
【0172】
システムは、対称鍵(K1)を用いて、パディングされた暗号化されていない認証情報(PUC1)へ復号する。
【0173】
システムは、パディングを除去して、暗号化されていない認証情報(UC1)をもたらす。
【0174】
システムは、取引形態(TT1)を確認して、別のオフラインVaultが生成されるべきかどうかを決定する。
【0175】
暗号化されていない認証情報(UC1)は、該当する場合は別のオフラインVaultと一緒に、ユーザへ返される。
【0176】
実施例2-大きいデータの暗号化
図6を参照すると、大きいデータの暗号化方法は、暗号化されるべきデータの長さが200文字以上のものであるときに使用される。システムは、渡された暗号化されていない認証情報に基づいてどちらの方法を使用すべきかを自動的に決定する。
【0177】
暗号化された分散されたセキュアなデータを作成すること:
【0178】
ユーザは、ユーザ名(U1)、Vault名(VN1)、暗号化されていない認証情報(UC1)(例えば、写真)、取引形態(TT1)、および取引参照(TR1)を入力する。
【0179】
システムは、ランダムVault ID(ID1)、素数(P1)、2つの対称鍵(K1)(K2)を生成する。
【0180】
システムは、暗号化されていない認証情報(UC1)が大きいタイプのものであることを決定する。
【0181】
システムは、対称鍵(K1)を用いて暗号化されていない認証情報(UC1)を暗号化して、暗号化されたデータ(ED1)を形成する。
【0182】
システムは、暗号化されたデータ(ED1)を、最初の100バイト(FBD1)および残り(RBD1)からなる2つの部分に分割する。
【0183】
システムは、ランダムデータを用いて対称鍵(K1)をパディングして、パディングされた暗号化されていない鍵(PUK1)を作成する。
【0184】
システムは、対称鍵(K2)を用いて、パディングされた暗号化されていない(PUK1)を暗号化して、暗号化された列(ES1)を作成する。
【0185】
暗号化された列(ES1)は、ASCII翻訳テーブルを通じて、大きい整数(LI1)に変換される。
【0186】
システムは、素数(P1)およびアルゴリズムを使用して、大きい整数(LI1)を2つ以上の部分(SP1...n)に分割する。
【0187】
システムは、Vault ID(ID1)、第1の部分(SP1)、および対称鍵(K2)、素数(P1)、および残りのデータバイト(RBD1)をデータベースストア内に格納する。
【0188】
システムは、Vault ID(ID1)、残りの部分(SP2...n)、およびデータの第1のバイト(FBD1)を返す。
【0189】
暗号化された分散されたシステムからデータを取得すること:
【0190】
ユーザは、Vault ID(ID1)、取引形態(TT1)、部分(SP2...n)、およびデータの第1のバイト(FBD1)を提示する。
【0191】
システムは、ユーザ供給されたVault ID(ID1)を通じて、素数1(P1)、部分1(SP1)、対称鍵(K2)、および残りのデータバイト(RBD1)を取得する。
【0192】
システムは、(P1)および部分(SP1...n)を使用して、大きい整数(LI1)を再構築する。
【0193】
大きい整数(LI1)は、ASCII翻訳テーブルを通じて、暗号化された列(ES1)に変換される。
【0194】
システムは、対称鍵(K2)を用いて、パディングされた暗号化されていない鍵(PUK1)へ復号する。
【0195】
システムは、パディングを除去して、暗号化されていない鍵(K1)をもたらす。
【0196】
システムは、データの第1のバイト(FBD1)をデータの残りのバイト(RBD1)と結合して、暗号化されたデータ(ED1)を作成する。
【0197】
システムは、暗号化されたデータ(ED1)に対して暗号化されていない鍵(K1)を使用して、暗号化されていない認証情報(UC1)をもたらす。
【0198】
システムは、取引形態(TT1)を確認して、別のオフラインVaultが生成されるべきかどうかを決定する。
【0199】
暗号化されていない認証情報(UC1)は、該当する場合は別のオフラインVaultと一緒に、ユーザへ返される。
【0200】
使用
図7は、本システムの実施形態のいずれかに適用可能な使用シナリオのブロックシステム図である。
【0201】
この場合、ユーザ201は、商品またはサービスの享受の目的で、クレジットカード詳細202をエンティティ203に提供する。この場合、エンティティ203が、クレジットカード詳細202へのアクセスを、再度、または近い将来に、要求し得る場合、エンティティ203は、クレジットカード詳細202をセキュアにするために本出願のシステム10を求め得る。これを行うために、エンティティ203は、クレジットカード詳細202を、アルゴリズム14、17および上に説明された実施形態のうちの1つまたは複数のセキュアプロセスの対象とし、それにより、引数202Aおよび202Bがそれぞれ別個の場所206および207に格納されるようにする。クレジットカード詳細202は、セキュアプロセスが完了すると完全に削除され得る。
【0202】
エンティティ203が、例えば、ユーザ201によって権限を与えられたエンティティ203への定期的支払いをトリガするためにクレジットカード詳細202を利用するために、クレジットカード詳細202を復元することを望む場合、エンティティ203は、引数202Aおよび202Bがコンピューティング環境204へ持ち込まれるようにし、それにより、クレジットカード詳細202は、再作成され、およびこの場合、コンピューティング環境204においてオフラインまたは‘カード不在’取引をトリガするようにされ、それにより、資金205が、ユーザアカウント201Aからエンティティアカウント203Aへ転送されることになる。
【0203】
いくつかの場合において、コンピューティング環境204は、引数202Aまたは202Bが格納されている環境206、207であり得る。代替の形態では、コンピューティング環境204は、完全に別個の環境であり得る。1つの例では、完全に別個の環境は、EFTPOS端末であり得る。代替の形態では、コンピューティング環境204は、分散コンピューティング環境であり得る。
【0204】
環境の侵害があった場合の行為
環境が侵害されていることが決定される場合、例えば、環境206内の引数202Aまたは環境207内の引数202Bに対する不正アクセスがなされたことが決定される場合、好ましい手順は、侵害されたと決定されていない環境内の引数の削除を引き起こすことである。この方法では、侵害された環境からの引数のみからクレジットカード詳細202を再構築することは非常に困難になる。
【0205】
特定の形態では、アルゴリズム14、17は、アルゴリズムによって出力される引数を、いかなる場合においても、対応する2次引数なしでは逆転することができないように、選択され得る。
【0206】
代替の実施形態
例となる実施形態において、暗号化されるべきデータのソースは、クライアントデバイス、例えば、携帯電話である。代替の実施形態において、ソースデータは、いかなる場所にも由来し得る。
【0207】
これらの代替の実施形態のすべてにおいて、初期データの追加のパディングは、難読化オプションをさらに伸張するために使用され得る。
【0208】
すでに説明された代替の実施形態において、保護されるべきデータは、典型的には、300バイト未満である。このサイズの素数の生成は、比較的容易であるが、データのサイズがこれを超えて増えるにつれて難しくなる。代替の実施形態は、すでに説明されたプロセスを初期の暗号化されたデータのサブセットに適用し得る。理想的には、サブセットは、それを総当たり攻撃に匹敵するくらい面倒にする、サイズおよびデータ内の場所のものである。
【0209】
さらに別の代替の実施形態において、大きいデータの塊は、複数の部分に分けられて、同じ技術が適用され得る。