JP2008510185A - セキュリティ強化のための転置データ変換 - Google Patents

セキュリティ強化のための転置データ変換 Download PDF

Info

Publication number
JP2008510185A
JP2008510185A JP2007525746A JP2007525746A JP2008510185A JP 2008510185 A JP2008510185 A JP 2008510185A JP 2007525746 A JP2007525746 A JP 2007525746A JP 2007525746 A JP2007525746 A JP 2007525746A JP 2008510185 A JP2008510185 A JP 2008510185A
Authority
JP
Japan
Prior art keywords
segment
data
key
result
function
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.)
Granted
Application number
JP2007525746A
Other languages
English (en)
Other versions
JP2008510185A5 (ja
JP4820821B2 (ja
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.)
CMLA LLC
Original Assignee
CMLA 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
Priority claimed from US10/918,718 external-priority patent/US7577250B2/en
Priority claimed from US10/918,717 external-priority patent/US8077861B2/en
Priority claimed from US10/918,103 external-priority patent/US7564970B2/en
Application filed by CMLA LLC filed Critical CMLA LLC
Publication of JP2008510185A publication Critical patent/JP2008510185A/ja
Publication of JP2008510185A5 publication Critical patent/JP2008510185A5/ja
Application granted granted Critical
Publication of JP4820821B2 publication Critical patent/JP4820821B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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

Landscapes

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

Abstract

一つのデータ変換は、入力データの特定のビットを当該入力データの他のビットに基づいて並べ替える。もう一つのデータ変換は、入力データの一つのセグメントに、予め定義されたモジュラスの関数に対して素であるもう一つのセグメントの関数の指数を乗ずる。当該モジュラスはその結果に適用され、変換されたデータが構成される。一つの導出鍵を生成するアプリケーションにおいては、マスター鍵の一つのセグメントがハッシュされる。マスター鍵の他のセグメントから二つの数が導出される。汎用ハッシュ関数は、当該ハッシュの結果に適用され、導出鍵としてのビットが選択される。他の実施例では、符号化されたカウンタがマスター鍵のセグメントに結合される。その結果がハッシュされ、導出鍵としてのビットが選択される。これらのアルゴリズムは、互いに結合しさらに鍵包みアルゴリズムあるいは暗号化アルゴリズムと結合して、これらの他のアプリケーションのセキュリティを向上させることができる。
【選択図】 図5

Description

本発明は、データセキュリティに関し、より詳しくはセキュリティ強化のための転置データ変換(permutation data transform)に関する。
何千年にわたって、人類は秘密を守ることが必要であると認識してきた。しかし、歴史の大部分において秘密を守る技法はゆっくりと発達した。ジュリアス・シーザー自身によって使われたとされるシーザーシフト暗号(The Caesar shift cipher)は、アルファベットの文字を先にずらしてメッセージを隠すものであった。したがって、“A”は“D”、“B”は“E”などと置き換えられた。これは一般に非常に弱い暗号化と考えられるのだが、何世紀も後になるまでより優れた暗号化アルゴリズムはほとんど開発されてこなかった。
暗号化は二度の世界大戦の間熱心な研究の焦点となった。敵が解読できないコードの開発と、敵の暗号化メールの解読方法の習得に多くの取り組みがなされた。暗号化を助ける機械装置も設計された。ドイツのエニグママシンはこの時代の唯一の機械的な暗号機ではないが最も有名なものの一つである。
そしてコンピュータの到来により暗号化の使用の環境は大きく変わった。もはや複雑な機械や、何時間もの手作業を必要とせずに、コンピュータにより高速かつわずかな費用でメッセージの暗号化や複合化が可能となった。また、コンピュータの基礎をなす数学の理解によっても新しい暗号化アルゴリズムが導入された。ディフィー(Diffie)とヘルマン(Hellman)の研究は、「素数を法とする指数演算(exponential arithmetic modulo primes)」を使用して秘密鍵を交換する方法を導いた。これは、公開情報で生成された共有鍵を計算することは計算量的に実行不可能であるという事実に基づくものである。また、よく知られる(発明者のR.Rivest, A.Shamir及び L.Adlemanにちなんで名付けられた)RSAアルゴリズムは、暗号化されたデータを復号化するために大きな数を因数分解することもまた計算量的に実行不可能であるという事実に基づくものである。ディフィーとヘルマンにより研究されたアルゴリズムとRSAアルゴリズムは論理的には解読できるが、これらのアルゴリズムの解読のためには未解決の数学的問題を解決しなければならない。(余談として、RSAアルゴリズムはまた、復号化と暗号化に異なる鍵を使用する最初の公開鍵暗号方式の一つであった。これによって安全性を損なうことなく一つの鍵を公に配送することが可能となった。)
しかし、どのような暗号化アルゴリズムにも永久に解けないものはない。例えば、DES(データ暗号化標準)は元々1976年に発表された。政府は当初その耐用年数を10年と見積もっていた。DESは当初見積もられた耐用年数よりはるかに長く存続しているが、その比較的短い鍵ゆえにDESは、理想には劣るものと考えられている。DESは、政府基準としてはすでにAES(次世代暗号標準)に取って代わられているが、未だに広く使用され続けている。DESに対し様々な改良が行われているが、これらの改良によってもDESを永久に安全なものとすることはできない。結局、DESは一般に安全でないと考えられるであろう。よって既存の暗号化アルゴリズムの安全性を高める方法は依然として必要とされる。
一つの実施例において、本発明は転置データ変換の方法と装置である。当該データは二つのセグメントに分割される。第一のセグメントのビットは、第ニのセグメントのビット群への転置関数の適用を制御する。変換されたデータは、第一のセグメントと第二のセグメントの転置群(転置されたビット群)を含む。
第二の実施例において、本発明は指数データ変換の方法と装置である。当該データは二つのセグメントに分割される。第二のセグメントは、第一のセグメントの関数に累乗される。そしてモジュラスがその結果に適用される。変換されたデータは、第一のセグメントとモジュラスを法とした剰余を含む。
第三の実施例において、本発明はマスター鍵から鍵を導出する方法と装置である。一つの実施例において、マスター鍵の一部がハッシュされ、マスター鍵の別の部分から二つの数が導出される。この二つの数を使用した汎用ハッシュ関数がハッシュの結果に適用され、その結果から導出鍵としてのビットが選択される。
第四の実施例において、汎用ハッシュ関数が符号化されたカウンタを使用してマスター鍵の一部に適用され、その結果が結合さる。この結合された結果はハッシュされ、導出鍵としてのビットが選択される。
本発明に関する上述したまたはそれ以外の特徴、目的及び利点は、下記に記載される説明及び添付の図面により、より容易に理解されるであろう。
図1は、マスター鍵から導出鍵(derivative key)を生成するセキュアハッシュアルゴリズム(secure hash algorithm)の一般的な実行方式を示している。その一般概念は、マスター鍵105がハッシュアルゴリズム110へ入力されるということである。セキュアハッシュアルゴリズムの一つの例はSHA−1(Secure Hash Algorithm 1)である。その入力の結果が導出鍵115-1である。セキュアハッシュアルゴリズム110は複数回使用できる。セキュアハッシュアルゴリズム110の実行の仕方によっては、マスター鍵105を変更してまたは変更しないまま、セキュアハッシュアルゴリズム110に繰り返し入力することができる。例えば、セキュアハッシュアルゴリズム110がその出力を制御するクロックを用いれば、マスター鍵105を変更しないで使用して、導出鍵115-2及び115-3を生成することができる。そうでなければ、マスター鍵105を何らかの方法でカウンタと結合しマスター鍵105を変更して、導出鍵115-2及び115-3を導出鍵115-1と十分に異なるものとすることができる。セキュアハッシュアルゴリズム110が適切に実行されると、マスター鍵105のシングルビット程度の小さな変更だけで、導出鍵115-2と115-3を導出鍵115-1と完全に無関係なものとすることができる。
図2は図1のセキュアハッシュアルゴリズムの典型的な動作を示している。図示するように、ハッシュアルゴリズムは、入力を複数のハッシュ値へマッピングする。図2において、ハッシュ値は0と何らかの値を示すnとの間で変化する。ハッシュアルゴリズムの出力はバスケットと呼ぶことができる。図2はバスケット205、210、215等からバスケット220までを示している。
入力を複数のバスケットへマッピングするのに所望のマッピング方法を使用することができる汎用ハッシュアルゴリズム(general hash algorism)と異なり、セキュアハッシュアルゴリズムは予測不可能である(時には、「衝突なし」とも呼ばれる)。一つの入力が特定の出力を生じることを知っていても、同じ出力を生じる他の入力をどのように見つけるかは分からない。例えば、入力「5」がバスケット215にマッピングされることを知っていても、同じくバスケット215にマッピングされる他の入力値は分からない。実際、いくつかの特定のハッシュアルゴリズムでは、バスケット215にマッピングされる入力は他にないかもしれない。このことによりセキュアハッシュアルゴリズム110は、所望の出力にマッピングされる他の入力を見つける容易な方法がないという意味で「安全」となる。ある特定の出力にマッピングされる他の入力を見つける唯一の方法は、その所望の出力にマッピングされる他の値を発見することを期待して、異なるいくつもの入力を試してみることである。
セキュアハッシュアルゴリズムの弱点は、バスケットがすべて等しくマッピングされない可能性があるということである。つまり、バスケット215にマッピングされるのはただ一つの入力かもしれないが、バスケット205へマッピングされるのは100の入力があるかもしれない。また、上述したように、いくつかのバスケットは、そこにマッピングされる入力がないかもしれない。
汎用ハッシュアルゴリズムはセキュアハッシュアルゴリズムが欠いている分配の特徴を備えている。図3に示すように、汎用ハッシュアルゴリズム305もバスケット310、315、320、325まで入力をマッピングする。しかし、図2のセキュアハッシュアルゴリズムと異なり、汎用ハッシュアルゴリズム305はその入力を複数のバスケットに均等に分配する。したがって、バスケット310は、バスケット315、320、325などと同じ頻度でマッピングされる。
汎用ハッシュアルゴリズムの弱点は、同じバスケットにマッピングされる他の入力を見つけるのが一般に容易であることである。例えば、入力の最後の桁に対応するバスケットを選択して0〜9に付番された10のバスケットにマッピングする汎用ハッシュアルゴリズムがあるとする。このハッシュアルゴリズムがすべてのバスケットに均等にその出力を分配することは容易に分かる。しかし、所定の入力として同じバスケットにマッピングされる他の入力をどのようにして見つけるかということも容易である。例えば、1、11、21、31などすべてがバスケット315にマッピングされる。
したがって、セキュアハッシュアルゴリズムと汎用ハッシュアルゴリズムの双方にメリットとデメリットがあることを理解すべきである。安全性の観点から最適な解決策はセキュアハッシュアルゴリズムと汎用ハッシュアルゴリズムの双方のメリットを何らかの方法で組み合わせることである。図4は、本発明の実施例に従って、図1及び2のセキュアハッシュアルゴリズムと図3の汎用ハッシュアルゴリズムをいかに組み合わせてより安全な導出鍵を生成することができるかを示している。シーケンス405においては、マスター鍵105は、最初にセキュアハッシュアルゴリズム110に送られる。当該セキュアハッシュアルゴリズム110の結果は次に、汎用ハッシュアルゴリズム305への入力として使用され、その結果から導出鍵115-1が生成される。
シーケンス405は、セキュアハッシュアルゴリズム110が汎用ハッシュアルゴリズム305より先に使用される状況を示しているのに対し、シーケンス410はこの順番を逆にしている。したがって、マスター鍵105は汎用ハッシュアルゴリズム305への入力として使用される。汎用ハッシュアルゴリズム305の結果は次に、セキュアハッシュアルゴリズム110への入力として使用され、その結果から導出鍵115-1が生成され得る。
セキュアハッシュアルゴリズム110と汎用ハッシュアルゴリズム305は所望の構成(form)で実行することができる。例えば、セキュアハッシュアルゴリズム110と汎用ハッシュアルゴリズム305は、多様なRead Only Memory(ROM)やファームウェアにおいて実行ができ、あるいは記憶装置に格納されたソフトウェアとして実行可能であり、セキュアハッシュアルゴリズム110と汎用ハッシュアルゴリズム305が汎用プロセッサにより実行されるいくつかの例が提供される。これらの実行には専用機器における実行を含めることもできる。例えば、プロセッサにセキュアハッシュアルゴリズム110と汎用ハッシュアルゴリズム305を実行するような特別な設計をすることも可能である。したがって、他の例として、セキュアハッシュアルゴリズム110か汎用ハッシュアルゴリズム305のいずれかを実行するように計算機を設計することもできる。当業者であれば、セキュアハッシュアルゴリズム110と汎用ハッシュアルゴリズム305の両方を実行することができる他の方法を理解するであろう。
図5は、本発明の実施例に係るデータ変換、鍵生成、鍵包み(key wrapping)、及びデータ暗号化を実行できるサーバと装置を示す。図5にはサーバ505が示されている。サーバ505は、データ変換器510、鍵導出機能(以下、「鍵導出機能部」とする)515、鍵包み機能(以下、「鍵包み機能部」とする)520、及び暗号化機能(以下、「暗号化機能部」とする)525を含む。データ変換器510はデータ変換の実行をつかさどる。図8−9、10A−10C、及び11を参照して下記に説明するように、データ変換は本質的に安全でないが、符号化されたデータにスクランブルをかけることにより当該データの複雑さが増し、それにより暗号解読がより難しくなる。例えば、データ変換により、符号化されたデータ(変換はされてないデータ)のパターンにマスクをかけることができる。
鍵導出機能部515はデータの暗号化に使用する鍵を導出することをつかさどる。どのような鍵でもデータの暗号化に使用することができるのは確かであるが、特定の鍵を使用すればするほどその鍵が暗号解読で発見される可能性は高くなる。そのため、いくつかのシステムでは、マスター鍵を利用して複数の導出鍵を生成し、これらの導出鍵がデータを暗号化するのに使用される。新しい導出鍵は必要に応じて生成することができる。導出鍵だけを使用して暗号化されたデータは、そのような新しい導出鍵で暗号化されたメッセージを解読するのに役に立たない。いくつかの既存の鍵導出機能が存在しており、それらの中から三つの新しい鍵導出機能を図12−13及び15−16を参照して以下において説明する。
鍵包み機能部520は送信のために鍵を包むことをつかさどる。鍵包みは一般に送信のために鍵を暗号化することにより行われる。一つの例として、鍵を暗号化する(すなわち、包む)のにRSAを使用することができる。現時点で十分に安全性が確保された鍵は、安全ではない接続上であっても、他のマシンに送信することができ、そこで鍵の包みを解いて(復号化して)、データの暗号化/復号化に使用することができる。
通常は、包まれた鍵は、秘密鍵(private key)あるいは対称暗号方式(symmetric, cryptosystem)で使用される鍵であり、それは公開鍵(public key)あるいは非対称暗号方式(asymmetric, cryptosystem)を使って包まれる。秘密鍵暗号方式は、暗号化及び復号化に異なる鍵を使用する公開鍵暗号方式とは反対に、暗号化及び復号化に同じ鍵を使用するものである。例えば、DESとAESは秘密鍵暗号方式で、RSAは公開鍵暗号方式である。公開鍵暗号方式は安全に鍵を配布(配信)することができるが(第三者が秘密のメッセージを復号化するのに鍵を傍受して使用できるという心配が全くない)、公開鍵暗号方式は多くの場合、秘密鍵暗号方式と比べて処理に時間がかかり、その結果メッセージが長くなる。公開鍵暗号方式を使用して鍵を包むということは、サーバ505が包まれた鍵が送られる装置の公開鍵を知る必要があるのは明らかである。しかし、当業者であれば、鍵を包むのにいかなる暗号アルゴリズムも使用でき、包まれる鍵はいかなる種類の暗号方式にも対応できることを理解するであろう。
暗号化機能部525はデータを暗号化するために使用される。通常は、データは鍵包み機能部520で包まれる鍵を使用して暗号化されるが、当業者であればどんな鍵もデータを暗号化することに使用でき、そのデータは暗号化を希望するどんなデータでもよく、また所望のどんな暗号化機能を使用することができることを理解するであろう。
また、図5は、本発明の実施例に係るデータ変換、鍵包み、及びデータ暗号化を実行することが可能な装置530を示している。装置530が携帯情報端末(PDA)に似ているという事実にもかかわらず、当業者であれば、装置530がサーバ505と同様にセキュリティアルゴリズムを使用するどのような装置であってもよいことを理解するであろう。したがって、例えば、装置530は、ファイルをサーバ505とやりとりするコンピュータ(例えば、デスクトップまたはノートパソコン)であってもよい(ファイルをやりとりする相手は、サーバそのものではなく、普通のコンピュータであってもよい)。また、装置530は、例えばデジタルコンテンツをユーザに提供するデジタル媒体装置でもよく、その場合サーバ505がそのコンテンツを装置530に提供する。あるいはまた、装置530は、合法的な情報源からコンテンツを受信してもよく、その場合サーバ505はコンテンツに関し装置530に与えられた権利を特定する。また、装置530は、コンピュータのような汎用マシンとともに使用される何らかの媒体に格納された何らかの機能を実行するソフトウェアであってもよい。これらのバリエーションにおいて、装置530を図5に示したシステムの部分とならしめるのは、装置530のハードウェアよりむしろ、装置530により実行されるソフトウェアである。当業者であれば、そのソフトウェアが、所望の機能を実行することができ、フロッピーディスク、各種のコンパクトディスク(CD)やデジタルビデオディスク(時にはデジタル多用途ディスクと呼ばれるDVD)、テープ媒体、またはユニバーサルシリアルバス(USB)キーなどの適切な媒体に格納され、より一般受けする可能性のあるいくつかの命名を施すこともできることを理解するであろう。または、装置530が携帯電話でサーバ505が基地局であってもよく、その場合携帯電話と基地局は暗号化された方法で通信する。当業者であれば、装置530とサーバ505の他の態様を理解し、またサーバ505と装置530の通信態様はどのような通信態様であってもよいことを理解するであろう。例えば、有線、無線または他の通信態様であってもよい。
装置530は、データ変換器510、鍵包み機能部520、及び暗号化機能部525を有している点において、図5のサーバ505と類似している。図5のサーバ505と異なり、装置530は鍵導出機能部515を有していないことに留意する必要がある。これは鍵導出が一般にサーバ505だけで必要とされるからである。他の装置と通信する方法があるのならば、一つの装置だけが導出鍵を生成する必要がある。もちろん、安全に導出鍵を送信する方法がなくても双方の装置が正確に同じ導出鍵を生成することが可能であれば、装置530は(鍵包み機能部520を必要としないかもしれないが)鍵導出機能部515を備えることができる。
図6は、本発明の実施例に係るデータセキュリティ装置を示している。このデータセキュリティ装置は、鍵包み機能部や鍵導出機能部や暗号化機能部と組み合わせてデータ変換器を使用して、安全性(セキュリティ)を高めるよう動作可能になっている。データセキュリティ装置605は、必要に応じて構成要素を付加または除去する変更を施したうえで、図5のサーバ505か装置530のいずれかの部分として機能することができる。データセキュリティ装置605において、入力ポート610はデータの受信をつかさどる。そのデータは、マスター鍵のデータであってもよく、このマスター鍵から、いくつかある可能性のなかでも特に、導出鍵、包まれる鍵、または暗号化されるデータが生成される。分割器615はデータを複数のブロックに分割するのをつかさどる。図12−13及び14−16を参照して以下に説明するように、これらの機能部は、入力データの複数の部分に対してデータ変換を適用する。すなわち、分割器615は、入力データを所望のサイズの複数のブロックに分割し、データ変換器510が各ブロックに適用できるようにする。さらに、図12−13及び14−16を参照して下記に説明するように、データ変換器510はデータ変換の実行をつかさどる。結合器620(Combiner)は、各ブロックのデータ変換をした後で適切なセキュリティ機能を持たせるために、各ブロックを結合することをつかさどる。使用可能な様々なセキュリティ機能は、鍵導出機能部515の機能、鍵包み機能部520の機能、または暗号化機能部525の機能を含む。最後に、出力ポート625は、データ変換及び/またはセキュリティ機能が適用された後に、当該データを出力する。
一般に分割器615は、データをデータ変換アルゴリズムのサイズに適合するブロックに分割するが、これは必ずしも必要ではないことに留意する必要がある。したがって、分割器615は、データ変換器510への予想される入力よりも小さいか、あるいは大きいブロックにデータを分割するかもしれない。もし、分割器615がデータ変換器510により予想されるより小さいブロックにデータを分割するなら、それらのブロックを十分大きくするようデータをパッド(pad)することができる。また、もし、分割器615がデータ変換器510により予想されるより大きいブロックにデータを分割するなら、データ変換器510は必要とされるビット数のデータだけに対してデータ変換を行うことができる。例えば、データ変換器510が図10の実施例で説明されるように動作するのであれば、データ変換器510は8バイトの入力を処理する。もし、データ変換器510が8バイト以上の入力を受けとった場合には、データ変換器510は当該入力の8バイトにだけに対応することができる。この8バイトは、データ中のどのような8バイトであってもよい。例えば、最初の8バイト、最後の8バイト、その他所望の組み合わせの8バイトであってもよい。
また、どのようなデータも変換ができることにも留意する必要がある。したがって、変換されるデータは、マスター鍵のデータでもよく、その場合には、変換されたマスター鍵が複数の導出鍵を生成するために使用される。また、変換されるデータは、送信前に包まれる導出鍵のデータであってもよい。あるいは、暗号化アルゴリズムの実行により暗号化されるデータであってもよい。当業者であれば、変換され得る他のタイプのデータを理解するであろう。
図7A−7Bは、本発明の実施例に係る図6のデータセキュリティ装置を使用するためのフローチャートを示している。図7Aのブロック705において、データが複数のブロックに分割される。ブロック710において、各ブロックはデータ変換を使用して変換される。各ブロックは、必要に応じて、個別にデータ変換をしてもよく、またそのようにしなくてもよい。つまり、いくつかのブロックは変換されるかもしれないし、他のブロックは変換されないかもしれない。ブロック715において、これらのブロックは再構築される。破線720で示されているとおり、ブロック705-715は選択的であり、必要であれば省略することが可能である。
図7Bでは、データセキュリティ装置は異なる方法で使用される。ブロック725では、鍵包みアルゴリズムがデータに適用される。ブロック730では、鍵導出アルゴリズムがデータに適用される。そして、ブロック735で、データ暗号化アルゴリズムがデータに適用される。
図8は、本発明の実施例に係る図5及び6のデータ変換器の詳細を示している。図8に示されるデータ変換器510の実施例において、データ変換器510は、転置関数(permutation functions)を使用してビット群を転置する(並べ替える)ことにより動作する。データ変換器510は、変換するデータを受信する入力ポート805を有するとともに変換されたデータを出力する分割器810、パッダ(padder)815、パミュータ(permuter)820、及び出力ポート825を有する。分割器810は、転置関数の適用のために入力データをビット群に分割することをつかさどる。実際、分割器810はまず、データを二つのセグメントに分割する。第一のセグメントは、第二のセグメントから分けられたビット群に対する転置関数の適用を制御するために使用されるビットを含む。一つの実施例では、データは64ビットを有する。第一のセグメントは8ビットを有する。そして、第二のセグメントは八つの7ビット群を有する。しかし、当業者であれば、データがどのような長さのものでもよく、当該データは所望の長さの群に分割することができ、異なる群が異なる長さを有するように分割することも可能であることを理解するであろう。最後に、転置群の適用を制御するビットを含む第一のセグメントは、個々の群が常に並べ替えられるのであれば、省略することが可能である。
データ変換器510が(データがいつも固定サイズのものであるという前提ではなく)予測できないサイズのデータ受信をサポートしている場合、分割器810はデータを適切にビット群に分割できない可能性がある。パッダ815は、データが適切に分割されるべく適度な長さを有するように、データを追加ビットでパッドするために使用することができる。
一つの実施例において、転置関数の適用は第一のセグメントのビットにより制御される。第一のセグメントに対応するビットが設定されていると、ビット群は特定の転置関数を使用して転置される。例えば、対応するビットが1の値を有していれば、それに対応する群は適切な転置関数を使用して転置される。もし、対応するビットが0の値を有していれば、それに対応する群は転置されない。また、他のやり方として、対応するビットが0の値を有していれば、対応するビット群は、同一転置関数(the identity permutation function) を使用して並べ替えられていると判断することができる。また、転置関数にインデックス付けをすることもできる。もし、転置関数の数が第二のセグメントのビット群の数と一致すれば (したがって、第一のセグメントのビット数とも一致するのであれば)、一つのインデックスにより三つの対応する要素を特定することができる。すなわち、第一のセグメントのビット、第二のセグメントのビット群、及び当該ビット群に適用する転置関数を特定することができる。
パミュータ820は第二のセグメントのビット群の転置(並べ替え)を制御することをつかさどる。当業者であれば、どのような転置関数でも使用できることを理解するであろうが、一つの実施例において、パミュータ820は下記の表1に示される転置関数に従って転置を行う。
表1
Figure 2008510185
表1に示す転置には、いくつかの興味深い特徴がある。一つ目は、それぞれの転置関数は転置関数P1の累乗である。従って、P2 = P1оP1、P3 = P2оP1 (= P1оP1оP1)等となる。P6оP1は再びP1となるため、P7とP8は、P1の前の累乗を繰り返して決定される。これは、データ変換器510が、一つの転置関数の実行のみを知る必要があることを意味する。つまり、残りの転置関数は基本の転置関数から生じる(派生する)。二つ目は、表1の順列は、RSA、DES、AES、SHA−1等の暗号化関数でみられるデータ構造と同様のデータ構造は導入していないということである。
転置関数は可逆(反転可能)であるため、表1の転置関数の適用により生じるデータ変換は容易に反転することができる。表2は表1の転置関数の逆の転置関数(反転した転置関数)を示す。
表2
Figure 2008510185
従って、表1の転置関数を適用したデータ変換を反転する(逆にする)には、表2の転置関数を適用した第二のデータ変換を適用するだけで足りる。この逆の変換を可能とするために、出力ポート825は転置群とともに第一のセグメントのビットを直接出力する。そうしないと、変換されたデータの受信側がどのビット群が転置されているにかが(並べ替えられているのかが)分からなくなる。
表1の転置関数と同様に、一つの基本の関数(この場合P6 -1)から、表2の転置関数のすべてを得ることができる。従って、P5 -1 = P6 -1оP6 -1、P4 -1 = P5 -1оP6 -1(= P6 -1оP6 -1оP6 -1)等である。
図9は、本発明の別の実施例に係る図5及び6のデータ変換器の詳細を示す。図9では、入力ポート905及び出力ポート910は図8のデータ変換器510と同様の動作をする。しかし、図9のデータ変換器510は、転置関数を使用したデータの転置よりもむしろ、当該データの指数的転置(an exponential permutation)の演算により動作をする。この演算は計算機915により行われる。一つの実施例として、データ変換器510は3バイト長の入力データの変換を行う。その最初のセグメントは、最後の2バイトへの累乗の演算に使用される。そして、その演算結果をモジュラス(モジュラスとなる素数)で割った剰余(modulo a modulus)が得られる。例えば、一つの実施例では、データ変換をY = ((B+1)(2A+1) mod 65537) 1 と演算する。ここで、Aはその入力データの最初のバイト、Bは入力データの最後の2バイトである。そして変換されたデータはAとYを含んで3バイト長である。しかし、当業者であれば、その入力が異なる長さのものでもよく、また異なる指数的転置関数が適用できることを理解するであろう。
上に示される指数的転置関数にはいくつかの利点がある。まず、抽象代数学は、指数とそのモジュラスから1を引いた値が互いに素になるとき、その関数は1とモジュラスの間のすべての可能な値を循環することを示している。これは、その指数的転置関数は転置することを意味する。素数として65537を選択することにより、65537より1つ小さい素数は2の累乗の65536となる。したがって、Aの値にかかわらず(2A+1)は奇数となり、65536に互いに素である。次に、Aが0ならば出力データは変化しない。最後に、図9のデータ変換器510の構造は、図8の転置データ変換器と同様に、RSA、DES、AES、SHA−1などの暗号アルゴリズムに存在しない構造である。
もし、データ変換器510が(データがいつも固定サイズのものであると仮定する代わりに)予測できないサイズのデータ受信をサポートしている場合、分割器920はデータを適切なサイズのセグメントに分割できない可能性がある。図8のデータ変換器のパッダ815と同様に、パッダ925は、データが適切な長さに適切に分割されるように、追加ビットによってそのデータをパッドするために使用することができる。
図8の転置データ変換器と同様に、図9のデータ変換器510も反転可能である。変換されたデータの反転を可能とするために、出力ポート910はYとともに変更されていないAを出力する。そして、指数的転置を反転させるために、計算機915は、「2A+1 modulo 65536 (すなわち、65537-1)」の逆数(2A+1を65536で割った剰余の逆数)を演算する。この逆数をeとするならば、反転された指数的転置は((Y+l)e mod 65537 ) - 1である。この計算の結果、元のバイトBに戻る。よって、指数的転置は、データ変換の指数を変更して第二のデータ変換を適用することにより簡単に反転する(逆にする)ことができる。
以上において図8と9に示された装置について説明したので、次に、それらの使用方法を説明する。図10A−10Cは、本発明の実施例に係る図8のデータ変換器を使用するためのフローチャートを示している。図10Aのブロック1005では、データが受信される。ブロック1010では、データが二つのセグメントに分割される(ビット群の転置が第一のセグメントのビットによって制御されると仮定する)。ブロック1015では、データ変換器が第二のデータセグメントを均等に群に分割できるかどうかを調べる。もし均等に分割できなければ、ブロック1020において、第二のセグメントを均等なサイズの群に分割するのをサポートするためにデータがパッドされる。(これは、データ変換器が、入力データを均等なサイズの群へ分割しようとしていることを前提とする。もしデータ変換器が、入力データを均等なサイズの群へ分割する必要がないのであれば、ブロック1015と1020は省略できる。)
ブロック1025(図10B)では、第二のセグメントは複数のビット群に分割される。上述のとおり、ブロック1025では、第二のセグメントを等しいサイズの群に分割すると説明したが、データ変換器がサポートしていれば異なるサイズの群に分割することも可能である。ブロック1030では、各群が第一のセグメントのビットと関連付けられる。ブロック1035では、基本の転置関数が定義される。ブロック1040では、他の転置関数が基本の転置関数の累乗として定義される。(しかし、他の転置関数が基本の転置関数の累乗である必要はない。各転置関数は互いに無関係であってもよく、その場合ブロック1035と1040は変更または省略可能である。) ブロック1045では、これらの転置関数にインデックス付けがなされる。
ブロック1050(図10C)では、データ変換器は、(第二のセグメントのビット群に対する転置関数の適用を制御する)第一のセグメントに調べられていないビットがあるかどうかを調べる。もし調べられていないビットがあれば、ブロック1055において、データ変換器はビットが設定されているかどうかを調べる。もしビットが設定されていれば、ブロック1060で、ビットによりインデックス付けがされた転置関数が特定され、そしてブロック1065で、特定された転置関数が関連する転置群に適用される。制御はブロック1050に戻り、第一のセグメントでさらに調べられていないビットがあるかどうかを調べる。結局、第一のセグメントのすべてのビットが調べられ、そしてブロック1070で、データ変換器は第一のセグメント及び転置されたビット群からデータ変換(変換されたデータ)を構築する。
図11は、本発明の実施例に係る図9のデータ変換器を使用するためのフローチャートを示している。ブロック1105では、データ変換器はデータを受信する。ブロック1110では、データ変換器はデータを二つのセグメントに分割する。ブロック1115では、第一のセグメントが使用され、選択されたモジュラスに対して素である指数(乗数)を生成する。ブロック1120では、第二のセグメントが演算された指数に乗じられる。ブロック1125では、その指数を乗じた結果を前記モジュラスで割った剰余が演算される。最後にブロック1130では、第一のセグメントと当該剰余からデータ変換(変換されたデータ)が構築される。
図5を参照して上述したとおり、いくつかの既存の鍵導出機能が存在している。しかし、図4を参照して上述したとおり、これらの既存の存在する鍵導出機能はセキュアハッシュ関数と汎用ハッシュ関数の双方の利点を備えていない。図12はセキュアハッシュ関数と汎用ハッシュ関数の利点を組み合わせた一つの鍵導出機能部の詳細を示している。図12において、鍵導出機能部515は、鍵導出機能部への入力及び導出鍵の出力のそれぞれに使用される入力ポート1205と出力ポート1210を含む。また、鍵導出機能部515は、分割器1215、結合器1220、ハッシュ部(ハッシャ/hasher)1225、決定部(determiner)1230、計算機1235及びビットセレクタ1240を含む。
分割器1215はマスター鍵を二つの部分に分割する。結合器はマスター鍵の第一の部分をカウンタと結合し、入力データの一部とする。マスター鍵をカウンタに結合する一つの方法は、マスター鍵の第一の部分をどのようなサイズ(例えば、4バイト)にもなり得るカウンタと連結することである。この連結はどちらの順序でも行うことができる。つまり、マスター鍵の第一の部分及びカウンタのどちらが組み合わせの先になってもよい。そして、この組み合わせの結果がハッシュ関数1225を使用してハッシュされ、セキュアハッシュ関数となる。(この実施例において、このハッシュ関数1225は図4のシーケンス405のセキュアハッシュアルゴリズム110に取って代わる。)
決定部1230は、マスター鍵の第二の部分から二つの数を決定するために使用される。一つの実施例において、これらの二つの数aとbは、マスター鍵の第二の部分の最初と最後の32バイトを素数pで割った剰余として決定される。このようにaとbを選択するためには、マスター鍵の第二の部分が64バイト長となるのに十分な長さを有するマスター鍵が要求される。しかし、当業者であればマスター鍵が必ずしもこの長さである必要はないことを理解するであろう。例えば、aとbをpで割った剰余の計算でaとbのビット数が十分に変わるのであれば、aとbはそれらの数の元のビットがマスター鍵の第二の部分の中から重複するような態様で選択されてもよい。
当業者であれば、他の素数も代わりに選択され得ることを理解するであろうが、素数の特定の選択は、p192 = 2192-264-1とすることができる。計算機1235は次に、汎用ハッシュ関数のax+b mod p (ここでxはハッシュ部1225の結果)を実行することができる。(この汎用ハッシュ関数は図4のシーケンス405の汎用ハッシュアルゴリズム305に取って代わる。) 最終的にビットセレクタ1240は、後に出力され得る導出鍵の汎用ハッシュ関数の結果からビットを選択することができる。例えば、ビットセレクタ1240は、導出鍵として汎用ハッシュ関数の結果の最下位桁ビットを選ぶことができる。
図13は、本発明の他の実施例に係る図5と6の鍵導出機能部の詳細を示している。図4のシーケンス405に係る鍵導出機能部を実行する図12に示された本発明の実施例と対照的に、図13の鍵導出機能部515は、セキュアハッシュアルゴリズムの後で汎用ハッシュアルゴリズムを適用しない。代わりに、図13に示される本発明の実施例は、セキュアハッシュアルゴリズムへの入力に対して線形マッピング(a liner mapping)を適用する。
図12の鍵導出機能部515と同様に、図13の鍵導出機能部515は、入力ポート1305と出力ポート1310を有する。入力ポート1305は、入力としてマスター鍵を受信し、また出力ポート1310は、導出鍵を出力する。また、図13の鍵導出機能部515は、分割器1315、エンコーダ1320、結合器1325、ハッシュ部(ハッシャ/hasher)1330、及びビットセレクタ1335を有している。
分割器1315は、図12の分割器1215と同様に、マスター鍵を二つの部分に分割する。次に、エンコーダ1320はカウンタを符号化する。エンコーダ1320は所望の態様で動作できる。例えば、エンコーダ1320はカウンタを繰り返し、マスター鍵の第一の部分の長さまで拡張することにより動作できる。したがって、例えばマスター鍵の第一の部分が64バイト長でカウンタが4バイトを使用するのであれば、エンコーダ1320は、この4バイトを16回繰り返してカウンタを64バイト長まで拡張することができる。次に、結合器1325は、マスター鍵の各部分にそれぞれ符号化されたカウンタを結合することができる。例えば、結合器1325は、マスター鍵の部分と符号化されたカウンタをビットレベルで結合することができる。一つの実施例では、マスター鍵の部分と符号化されたカウンタを結合するためにXORバイナリ関数(XOR binary function)を使用する。しかし、当業者であれば、結合器1325は、マスター鍵の部分と符号化されたカウンタを結合するために、どのようなビット単位の関数、あるいは実際にどのような関数であっても使用できることを理解するであろう。結合器1325は、次に、(符号化されたカウンタとの結合後)マスター鍵の二つの部分を再び結合することができる。例えば、二つの部分は一緒に連結することができる(しかし、当業者であれば、他の方法でも結合器1325がマスター鍵の二つの部分を再結合することができることを理解するであろう)。また、結合器1325はマスター鍵の再結合された部分を符号化されたカウンタともう一度連結することもできる。
ハッシュ部1330は、結合器1325の出力を得てハッシュする。ハッシュ1330部は、セキュアハッシュ関数となり得る。そしてビットセレクタ1335は、図12のビットセレクタ1240と同様に、ハッシュ部1330の結果から導出鍵としてのビットを選択できる。
以上において図12と13に示された装置について説明したので、次に、それらの使用方法を説明する。図14は、本発明の実施例に係る図12の鍵導出機能部を使用するためのフローチャートを示している。ブロック1405では、マスター鍵は複数のセグメントに分割される。ブロック1410では、第一のセグメントが符号化されたカウンタに結合される。図12を参照して上述したとおり、この結合は第一のセグメントと符号化されたカウンタとの連結となり得る。ブロック1415では、結合された第一のセグメントがハッシュされる。
ブロック1420では、二つの数が第二のセグメントから決定される。図12を参照して上述したとおり、これらの二つの数がモジュラスに対して決定され得る。ブロック1425では、汎用ハッシュ関数が、二つの決定された数とモジュラスを使用して定義される。ブロック1430では、ハッシュの結果が汎用ハッシュ関数に適用される。ブロック1435では、当該汎用ハッシュの結果から導出鍵としてビットが選ばれる。
図15は、本発明の実施例に係る図13の鍵導出機能部を使用するためのフローチャートを示している。ブロック1505では、マスター鍵が複数のセグメントに分割される。ブロック1510では、各セグメントが符号化されたカウンタに結合される。図13を参照して上述したとおり、これは、符号化されたカウンタとともに、各セグメントに個別にXORビット関数を適用して行うことができる。ブロック1515では、結合されたブロックが再度結合されて、(図13を参照して上述したとおり)再び符号化されたカウンタと結合させることができる。ブロック1520では、この変更されたマスター鍵が次にハッシュされ、そしてブロック1525で、ハッシュの結果から導出鍵としてのビットが選択される。
図12−15に示される鍵導出機能部は二つの例にすぎない。セキュアハッシュアルゴリズムと汎用ハッシュアルゴリズムの利点を組み合わせた他の鍵導出機能部も使用することができる。図16は本発明の実施例に係る図5のデータセキュリティ装置における他の鍵導出機能部のフローチャートを示す。ブロック1605では、マスター鍵が複数のセグメントに分割される。ブロック1610では、セグメントがデータ変換を使用して変換される。セグメントは一般にデータ変換器が使用できるよりも大きくなるので、セグメントのサブセットだけが使用される。例えば、データ変換で必要とされる最初のバイトのみが使用される。ブロック1615では、これらの変換されたセグメントは結合され、符号化されたカウンタに結合される。例えば、これらのセグメント及び符号化されたカウンタは一緒に連結され得る。ブロック1620では、変換された結果がハッシュされ、そしてブロック1625で、ハッシュされた結果から導出鍵としてのビットが選択される。
図12−13の装置及び図14−16のフローチャートは、マスター鍵から単一の導出鍵が生成されるのを示しているが、本発明の実施例は、繰り返し複数の導出鍵を生成するために容易に適用することができることに留意する必要がある。これらの追加的な導出鍵は数多くの方法により生成することができる。例えば、図14−16のフローチャートはすべてカウンタを含む。それぞれの追加的な導出鍵のために、カウンタを増加させることができる。従って、第一の鍵を導出するためにカウンタは値1を使用し、第二の鍵を導出するためにカウンタは値2を使用することなどが可能である。
他の実施例において、導出鍵のビットを選択するために図12のビットセレクタ1240または図13のビットセレクタ1335を使用するよりむしろ、すべての導出鍵に対して結合された結果からビットを選択すると一度で十分な結果を生成することができる。例えば、それぞれkビット長のu鍵を希望すると仮定し、さらに、図12−13の装置及び/または図14−16のフローチャートの結果が、ビット選択の前にlビットを作ると仮定する。もし、鍵導出機能部がm回適用されて、m*l ≧ u*kとすれば、u導出鍵はすべてm*lの結果のビットと同時に選ばれる。例えば、m*lの結果のビットはすべて一緒に連結されるかもしれない。あるいは、すべてのu鍵が選択されるまで、第一の鍵は、第一のkビットとして選択されるかもしれず、第二の鍵は第二のkビットとして選択されるかもしれない。
以下に、本発明の一定の態様を実施する適切なマシンの簡単な一般的な説明をする。通常、マシンは、例えばプロセッサ、メモリ(例えば、ランダムアクセスメモリー(RAM)やリードオンリーメモリ(ROM)や他の状態保存媒体)、記憶装置、映像インターフェース及び出力/入力インターフェースポートなどが取付けられるシステムバスを含む。マシンは少なくとも一部分において、キーボード、マウスなどの従来の入力デバイスからの入力及び別のマシンから受けた指示、バーチャルリアリティ(VR)環境、生体フィードバックまたは他の入力信号との情報交換によって制御することが可能である。
本件明細書で使用されているマシン(machine)という語は、単一のマシンまたは、一緒に作動するマシンやデバイスと結合するコミュニケーションシステムを広く包含することを意図する。典型的なマシンは、自動車、列車、タクシーなどの個人的または公共の交通機関といった移動手段に加えて、パーソナルコンピュータ、ワークステーション、サーバ、ポータブルコンピュータ、携帯端末、電話、タブレットなどのコンピュータデバイスを含む。
また、マシンは、プログラマブルまたは非プログラマブル論理デバイスやアレイのような内蔵コントローラやASIC(Application Specific Integrated Circuits)や内蔵コンピュータやスマートカードなどを含んでもよい。また、マシンは、ネットワーク・インターフェース、モデムまたは他のコミュニケーションの接続を経由して、一つまたは複数のリモートマシンへの一つまたは複数の接続を利用してもよい。さらに、マシンは、イントラネット、インターネット、ローカル・エリア・ネットワーク、広域ネットワークなどのような物理的、及び/または、論理的なネットワークを通して相互接続され得る。当業者であれば、ネットワークコミュニケーションが、無線周波数(RF)、衛星、電子レンジ、電気電子技術学会(IEEE)、802.11、ブルートゥース、光学の、赤外線のケーブル、レーザなどを含む様々な有線及び/または無線の短距離または長距離キャリアとプロトコルを利用できることを理解するであろう。
本発明は、機能、手順、データ構造、アプリケーションプログラムなどを含む関連データを参照するか、あるいはそれらとの関連で説明することができる。これらの関連データは、マシンによりアクセスされたとき、当該マシンにタスクを実行させるか、あるいは抽象データ型か低レベルのハードウェアコンテキストを定義することになる。関連データは、例えば、RAM、ROMなどの揮発性及び/または非揮発性メモリ、またはハードドライブ、フロッピーディスク、光記憶装置、テープ、フラッシュメモリ、メモリースティック、デジタルビデオディスク、生物学的記憶装置などを含む他の記憶装置とそれらの関連記憶媒体に格納することができる。また、関連データは、物理的及び/または論理的なネットワークを含む通信環境で、パケット、シリアルデータ、並列データ、伝播された信号などの形で送信され、圧縮または暗号化された形式で使用できる。また、関連データは、分散環境で使用され、マシンのアクセスのために、局所的及び/または遠隔的に格納され得る。
図示された実施例に基づいて本発明の原理を記載しかつ説明したが、図示された実施例が係る原理から逸脱することなくその構成と詳細において変更することができることを理解されたい。そして、以上の説明は特定の実施例に焦点を合わせたが、他の構成も考えることができる。特に、「一つの実施例において」という表現、または同様の表現がここで使用されるが、これらの語句は一般に参考実施例となり得ることを意味し、本発明を特定の実施例の構成に制限することは意図していない。ここに使用されるように、これらの語句は、他の実施例と結合可能な同一または異なる実施例を表してもよい。
結論として、ここに説明された実施例へ多種多様に置き換えることができることを鑑みると、この詳細な説明及び添付図面は例示のみを意図しており、発明の範囲を制限するものとして捕らえるべきではない。したがって、本発明として要求されていることは、クレームとその同等物の範囲及び精神を逸脱しないようなすべての変更を含むものである。
図1は、マスター鍵から複数の導出鍵を生成するセキュアハッシュアルゴリズムの一般的な実行を示す。 図2は、図1のセキュアハッシュアルゴリズムの典型的な動作を示す。 図3は、汎用ハッシュアルゴリズムの典型的な動作を示す。 図4は、本発明の実施例に係るより安全な導出鍵を生成するために図2のセキュアハッシュアルゴリズムと図3の汎用ハッシュアルゴリズムを組み合わす異なる方法を示す。 図5は、本発明の実施例に係る、データ変換、鍵生成、鍵包み、及びデータ暗号化を実行可能とするサーバと装置を示す。 図6は、本発明の実施例に係る、鍵包み、鍵導出、または暗号化機能と組み合わせてデータ変換器を使用することにより安全性を高めるよう動作可能なデータセキュリティ装置を示す。 図7Aは、本発明の実施例に係る図6のデータセキュリティ装置を使用するためのフローチャートを示す。 図7Bは、本発明の実施例に係る図6のデータセキュリティ装置を使用するためのフローチャートを示す(図7Aの続き)。 図8は、本発明の実施例に係る図5及び6のデータ変換器の詳細を示す。 図9は、本発明の他の実施例に係る図5及び6のデータ変換器の詳細を示す。 図10Aは、本発明の実施例に係る図8のデータ変換器を使用するためのフローチャートを示す。 図10Bは、本発明の実施例に係る図8のデータ変換器を使用するためのフローチャートを示す(図10Aの続き)。 図10Cは、本発明の実施例に係る図8のデータ変換器を使用するためのフローチャートを示す(図10Bの続き)。 図11は、本発明の実施例に係る図9のデータ変換器を使用するためのフローチャートを示す。 図12は、本発明の実施例に係る図5及び6の鍵導出機能部の詳細を示す。 図13は、本発明の他の実施例に係る図5及び6の鍵導出機能部の詳細を示す。 図14は、本発明の実施例に係る図12の鍵導出機能部を使用するためのフローチャートを示す。 図15は、本発明の実施例に係る図13の鍵導出機能部を使用するためのフローチャートを示す。 図16は、本発明の実施例に係る図5のデータセキュリティ装置で鍵導出機能部を使用するためのフローチャートを示す。

Claims (144)

  1. データを受信する入力ポートと、
    前記データを第一のセグメントと第二のセグメントに分割するとともに、当該第二のセグメントを少なくとも一つの群に分割する分割器と、
    前記第一のセグメントの対応するビットに従って前記群の少なくとも一つを転置群に転置する転置関数の実行を含むパミュータと、
    前記第一のセグメントと前記転置群を、変換されたデータとして出力する出力ポートと、を含むデータ変換器。
  2. 前記分割器が、前記第二のセグメントの前記群の数と前記第一のセグメントのビット数が等しくなるように、当該第二のセグメントを複数の群に分割するよう動作する請求項1に記載のデータ変換器。
  3. 前記複数の群はそれぞれ予め定義されたサイズを有しており、前記分割器は前記第二のセグメントをそのような複数の群に分割するよう動作する請求項1に記載のデータ変換器。
  4. 前記分割器が、前記複数の群のそれぞれが前記予め定義されたサイズを有するように、前記第二のセグメントをパッドするパッダを含む請求項3に記載のデータ変換器。
  5. 前記パミュータが、少なくとも二つの転置関数の実行を含む請求項1に記載のデータ変換器。
  6. 前記転置関数の数が、前記第二のセグメントの前記群の数と等しい請求項5に記載のデータ変換器。
  7. 前記パミュータが、前記第一のセグメントの対応する前記ビットに従って、前記転置関数の内一つを使用して前記群のそれぞれを転置するよう動作する請求項6に記載のデータ変換器。
  8. 前記転置関数の前記実行が、
    基本の転置関数の実行と、
    前記基本の転置関数の累乗の実行と、を含む請求項5に記載のデータ変換器。
  9. データを受信する入力ポートと、
    前記データを第一のセグメントと第二のセグメントに分割するとともに、当該第二のセグメントをそれぞれが予め定義されたサイズを有する少なくとも二つの群に分割するようになっており、前記第二のセグメントの分割は、前記第二のセグメントの群の数と前記第一のセグメントのビット数が等しくなるように分割する分割器と、
    前記第一のセグメントの対応するビットに従って、前記群の少なくとも一つを転置群に転置する転置関数の実行を含むパミュータと、
    前記第一のセグメントと前記一つの転置群を変換されたデータとして出力する出力ポートと、を含むデータ変換器と、
    前記変換されたデータを安全にするセキュリティアルゴリズムの実行と、を含むことを特徴とするデータセキュリティ装置。
  10. 前記入力データがマスター鍵を含み、
    前記セキュリティアルゴリズムの実行が、前記変換されたデータを使用して前記マスター鍵の導出鍵を生成する鍵導出機能の実行を含む請求項9に記載のデータセキュリティ装置。
  11. 前記入力データが包まれる鍵を含み、
    前記セキュリティアルゴリズムの実行が、前記変換されたデータを包む鍵包み機能の実行を含む請求項9に記載のデータセキュリティ装置。
  12. 前記鍵包み機能の前記実行が、前記変換されたデータを包むRSAの実行を含む請求項11に記載のデータセキュリティ装置。
  13. 前記セキュリティアルゴリズムの前記実行が、前記変換されたデータを使用して前記入力データを暗号化する暗号化アルゴリズムの実行を含む請求項9に記載のデータセキュリティ装置。
  14. 前記セキュリティアルゴリズムの前記実行が、前記変換されたデータを使用して前記入力データを暗号化するAESの実行を含む請求項13に記載のデータセキュリティ装置。
  15. さらに、入力を少なくとも二つのブロックに分割する第二の分割器を備え、前記データ変換器が各ブロックに個別に動作するようになっている請求項9に記載のデータセキュリティ装置。
  16. さらに、前記各ブロックに対するデータ変換の結果を、前記セキュリティアルゴリズムの前記実行により安全にされる一つの変換されたデータに結合する結合器を含む請求項15に記載のデータセキュリティ装置。
  17. 前記パミュータが、少なくとも二つの転置関数の実行を含み、当該転置関数の数が前記第二のセグメントの前記群の数と等しい請求項9に記載のデータセキュリティ装置。
  18. 前記パミュータが、前記第一のセグメントの対応する前記ビットに従って、前記転置関数の内の一つを使用して、前記群のそれぞれを転置するよう動作する請求項17に記載のデータセキュリティ装置。
  19. 前記転置関数の前記実行が、
    基本の転置関数の実行と、
    前記基本の転置関数の累乗の実行と、を含む請求項17に記載のデータセキュリティ装置。
  20. 入力データを受信するステップと、
    前記入力データをそれぞれが少なくとも1ビットを有する第一のセグメントと第二のセグメントに分割するステップと、
    前記第二のセグメントの前記ビットを少なくとも一つの群にまとめるステップと、
    前記群のそれぞれを前記第一のセグメントのビットと関連付けるステップと、
    前記第一のセグメントの前記関連付けられたビットに従って、前記群の少なくとも一つに転置関数を適用するステップと、
    前記第一のセグメントと前記転置関数が適用された群から変換されたデータを構築するステップと、を含むことを特徴とするデータ変換を生成する方法。
  21. 前記第二のセグメントの前記ビットをまとめるステップが、当該第二のセグメントの前記ビットを複数の群にまとめるステップを含み、当該複数の群の数が前記第一のセグメントのビット数と等しい請求項20に記載の方法。
  22. 前記ビットをまとめるステップが、前記第二のセグメントの前記ビットをそれぞれが同じビット数を有する少なくとも二つの群にまとめるステップを含む請求項20に記載の方法。
  23. 前記ビットをまとめるステップが、前記第二のセグメントがそれぞれが同じビット数を有する群にまとめられるように前記データをパッドするステップを含む請求項22に記載の方法。
  24. さらに、前記転置関数を定義するステップを含む請求項20に記載の方法。
  25. 前記転置関数を定義するステップが、複数の転置関数の数を定義するステップを含み、定義された転置関数の数が前記群の数と等しい請求項24に記載の方法。
  26. 前記転置関数を適用するステップが、前記第一のセグメントの前記対応するビットに従って、前記群のそれぞれに異なる転置関数を適用するステップを含む請求項25に記載の方法。
  27. 前記転置関数の数を定義するステップが、当該転置関数のそれぞれにインデックス付けをするステップを含み、
    前記異なる転置関数を適用するステップが、前記群と関連付けられた前記第一のセグメントの前記ビット数に対応するインデックスを有する前記転置関数を選択するステップを含む請求項26に記載の方法。
  28. 前記複数の転置関数の数を定義するステップが、
    基本の転置関数を定義するステップと、
    残りの前記転置関数のそれぞれを前記基本の転置関数の累乗として定義するステップと、を含む請求項25に記載の方法。
  29. 入力データを受信するステップと、
    前記データを、それぞれが少なくとも1ビットを含む第一のセグメントと第二のセグメントに分割するステップと、
    前記第二のセグメントの前記ビットを複数の群にまとめるステップであって、前記群の数が前記第一のセグメントのビット数と等しいステップと、
    前記複数の群のそれぞれを前記第一のセグメントのビットと関連付けるステップと、
    前記第一のセグメントの前記関連付けられたビットに従って、前記群の少なくとも一つに転置関数を適用するステップと、
    前記第一のセグメントと前記転置関数が適用された転置群から変換されたデータを構築するステップと、を含むデータ変換ステップと、
    前記変換されたデータを安全にするために、当該変換されたデータにセキュリティアルゴリズムの実行を適用するステップと、を含むデータセキュリティを強化する方法。
  30. 前記入力データを受信するステップが、導出鍵を生成するマスター鍵を受信するステップを含み、
    前記セキュリティアルゴリズムの実行を適用するステップが、鍵導出機能の実行を前記変換されたデータに適用し、前記マスター鍵の導出鍵を生成するステップを含む請求項29に記載の方法。
  31. 鍵導出機能の実行を適用するステップが、
    前記変換されたデータを符号化されたカウンタと結合して、結合された結果を生成するステップと、
    前記結合された結果を安全にハッシュしてハッシュを生成するステップと、
    前記ハッシュにおけるビットのサブセットを前記導出鍵として選択するステップと、を含む請求項30に記載の方法。
  32. 前記入力データを変換するステップが、さらに、前記マスター鍵をカウンタと結合して当該データを生成するステップを含み、
    鍵導出機能の実行を適用するステップが、
    前記変換されたデータを安全にハッシュしてハッシュを生成するステップと、
    前記ハッシュにおけるビットのサブセットを前記導出鍵として選択するステップと、を含む請求項30に記載の方法。
  33. 前記入力データを受信するステップが、包まれる鍵を当該入力データとして受信するステップを含み、
    前記セキュリティアルゴリズムの実行を適用するステップが、鍵包み機能の実行を前記変換されたデータに適用して前記鍵を包むステップを含む請求項29に記載の方法。
  34. 前記鍵包み機能の実行を適用するステップが、RSAの実行を前記変換されたデータに適用して前記鍵を包むステップを含む請求項33に記載の方法。
  35. 前記セキュリティアルゴリズムの実行を適用するステップが、前記入力データを暗号化する鍵として前記変換されたデータを使用して、暗号化アルゴリズムの実行を適用するステップを含む請求項29に記載の方法。
  36. 前記暗号化アルゴリズムの実行を適用するステップが、前記入力データを暗号化する前記鍵として前記変換されたデータを使用するAESの実行を適用するステップを含む請求項35に記載の方法。
  37. 前記ビットをまとめるステップが、前記第二のセグメントの前記ビットを複数の群にまとめるステップを含み、当該複数の群の数が前記第一のセグメントの前記ビット数と等しく、それぞれの群が同じビット数を有する請求項29に記載の方法。
  38. さらに、前記転置関数を定義するステップを含む請求項29に記載の方法。
  39. 前記転置関数を定義するステップが、複数の転置関数を定義するステップを含み、定義された転置関数の数が前記複数の群の数と等しい請求項38に記載の方法。
  40. 前記転置関数の数を定義するステップが、
    一つの基本の転置関数を定義するステップと、
    残りの前記転置関数のそれぞれを前記基本の転置関数の累乗と定義するステップと、を含む請求項39に記載の方法。
  41. さらに、入力を少なくとも二つのブロックに分割し、各ブロックを個別にデータ変換するステップと、
    前記各ブロックに対する前記データ変換の結果を、前記セキュリティアルゴリズムの実行により安全にされる一つの変換されたデータに結合するステップと、を含む請求項29に記載の方法。
  42. 複数のビットを含むデータを受信する入力ポートと、
    前記データを第一のセグメントと第二のセグメントに分割する分割器と、
    前記第一のセグメント、前記第二のセグメント及び予め定義されたモジュラスを使用して前記データの指数的転置を演算する計算機と、
    前記第一のセグメントと前記指数的転置を変換されたデータとして出力する出力ポートと、を含むことを特徴とするデータ変換器。
  43. 前記計算機が、前記第一のセグメントの関数として、前記予め定義されたモジュラスの関数に対して素である指数を乗ずる演算をする第一の式の実行を含む請求項42に記載のデータ変換器。
  44. 前記計算器がさらに、前記第二のセグメントの関数を前記指数に乗じた結果を演算する第二の式の実行を含む請求項43に記載のデータ変換器。
  45. 前記計算機が、さらに前記結果を前記予め定義されたモジュラスで割った剰余として前記指数的転置を演算する第三の式の実行を含む請求項44に記載のデータ変換器。
  46. 複数のビットを含むデータを受信する入力ポートと、
    前記データを第一のセグメントと第二のセグメントに分割する分割器と、
    前記データの指数的転置を、前記第一のセグメント、前記第二のセグメント及び予め定義されたモジュラスを使用して演算する計算機と、を含み
    前記計算機が、
    前記第一のセグメントの関数として、前記予め定義されたモジュラスの関数に対して素である指数を乗ずる演算をする第一の式の実行と、
    前記第二のセグメントの関数に前記指数を乗じた結果を演算する第二の式の実行と、
    前記結果を前記予め定義されたモジュラスで割った剰余として、前記指数的転置を演算する第三の式の実行と、を含み、
    さらに、前記第一のセグメントと前記指数的転置を変換されたデータとして出力する出力ポートと、を含むデータ変換器と、
    前記変換されたデータを安全にするセキュリティアルゴリズムの実行と、を含むデータセキュリティ装置。
  47. 前記入力データが、マスター鍵を含み、
    前記セキュリティアルゴリズムの実行が、前記変換されたデータを使用して前記マスター鍵の導出鍵を生成する鍵導出機能の実行を含む請求項46に記載のデータセキュリティ装置。
  48. 前記入力データが包まれる鍵を含み、
    前記セキュリティアルゴリズムの実行が、前記変換されたデータを包む鍵包み機能の実行を含む請求項46に記載のデータセキュリティ装置。
  49. 前記鍵包み機能の実行が前記変換されたデータを包むRSAの実行を含む請求項48に記載のデータセキュリティ装置。
  50. 前記セキュリティアルゴリズムの実行が、前記変換されたデータを前記入力データを暗号化する鍵として使用する暗号化アルゴリズムの実行を含む請求項46に記載のデータセキュリティ装置。
  51. 前記セキュリティアルゴリズムの実行が、前記入力データを暗号化する前記鍵を使用するAESの実行を含む請求項50に記載のデータセキュリティ装置。
  52. さらに、入力を少なくとも二つのブロックに分割する第二の分割器を備え、前記データ変換器が各ブロックに個別に動作するようになっている請求項46に記載のデータセキュリティ装置。
  53. さらに、前記各ブロックに対するデータ変換の結果を、前記セキュリティアルゴリズムの実行により安全にされる一つの変換されたデータに結合する結合器を含む請求項52に記載のデータセキュリティ装置。
  54. 複数のビットを含むデータを受信するステップと、
    前記データを、それぞれが少なくとも1ビットを含む第一のセグメントと第二のセグメントに分割するステップと、
    前記第一のセグメント、前記第二のセグメント、及び予め定義されたモジュラスを使用する指数的転置を演算するステップと、
    前記第一のセグメントと前記指数的転置から変換されたデータを構築するステップと、を含むことを特徴とするデータ変換の生成の方法。
  55. 前記指数的転置を演算するステップが、前記第一のセグメントの関数として、前記予め定義されたモジュラスの関数に対して素である指数を乗ずる演算をするステップを含む請求項54に記載の方法。
  56. 前記指数的転置を演算するステップが、さらに前記第二のセグメントの関数を前記指数に乗じた結果を演算するステップを含む請求項55に記載の方法。
  57. 前記指数的転置を演算するステップが、前記結果を前記予め定義されたモジュラスで割った剰余として前記指数的転置を演算するステップを含む請求項56に記載の方法。
  58. 複数のビットを含むデータを受信するステップと、
    前記データを、それぞれが少なくとも1ビットを含む第一のセグメントと第二のセグメントに分割するステップと、
    前記第一のセグメントの関数として、前記予め定義されたモジュラスの関数に対して素である指数を乗ずる演算をするステップと、
    前記第二のセグメントの関数を前記指数に乗じた結果を演算するステップと、
    前記結果を前記予め定義されたモジュラスで割った剰余として指数的転置を演算するステップと、
    前記第一のセグメントと前記演算された指数的転置から変換されたデータを構築するステップと、を含むデータ変換ステップと、
    前記変換されたデータを安全にするために当該変換されたデータにセキュリティアルゴリズムの実行を適用するステップと、を含むデータセキュリティを強化する方法。
  59. 前記データを受信するステップが、導出鍵を生成するマスター鍵を受信するステップを含み、
    前記セキュリティアルゴリズムの実行を適用するステップが、鍵導出機能の実行を前記変換されたデータに適用し前記マスター鍵の導出鍵を生成するステップを含む請求項58に記載の方法。
  60. 前記鍵導出機能の実行を適用するステップが、
    前記変換されたデータを符号化されたカウンタと結合して結合された結果を生成するステップと、
    前記結合された結果を安全にハッシュしてハッシュを生成するステップと、
    前記ハッシュにおけるビットのサブセットを前記導出鍵として選択するステップと、を含む請求項59に記載の方法。
  61. 前記データを受信するステップが、当該データとして包まれる鍵を受信するステップを含み、
    前記セキュリティアルゴリズムの実行を適用するステップが、前記変換されたデータを包む鍵包み機能の実行を適用するステップを含む請求項58に記載の方法。
  62. 前記鍵包み機能の実行を適用するステップが、前記変換されたデータを包むRSAの実行を適用するステップを含む請求項61に記載の方法。
  63. 前記セキュリティアルゴリズムの実行を適用するステップが、前記データを暗号化する鍵として前記変換されたデータを使用する暗号化アルゴリズムの実行を適用するステップを含む請求項58に記載の方法。
  64. 前記暗号化アルゴリズムの実行を適用するステップが、前記データを暗号化する前記鍵として前記変換されたデータを使用するRSAの実行を適用するステップを含む請求項63に記載の方法。
  65. さらに、入力を少なくとも二つのブロックに分割し、各ブロックを個別に変換するステップと、
    各ブロックの前記変換されたデータの結果を、前記セキュリティアルゴリズムの実行により安全にされる一つの変換されたデータに結合するステップと、を含む請求項63に記載の方法。
  66. マスター鍵を受信する入力ポートと、
    汎用ハッシュアルゴリズムの実行と、
    ハッシュアルゴリズムの実行と、
    前記汎用ハッシュアルゴリズムと前記ハッシュアルゴリズムの前記実行を使用して前記マスター鍵から導出鍵を生成する手段と、
    前記導出鍵を出力する出力ポートと、を含むことを特徴とする装置。
  67. 前記汎用ハッシュアルゴリズムの実行が、
    前記マスター鍵を第一のセグメントと第二のセグメントに分割する分割器と、
    カウンタを繰り返し、より長いビットパターンとして符号化されたカウンタを生成するリピータと、
    前記第一のセグメントと前記符号化されたカウンタに対して動作して第一の結果を生成する第一のビット単位のバイナリ関数の実行と、
    前記第二のセグメントと前記符号化されたカウンタに対して動作して第二の結果を生成する第二のビット単位のバイナリ関数の実行と、
    前記第一の結果、前記第二の結果、及び前記符号化されたカウンタを結合して前記結果を生成する結合器と、を含む請求項66に記載の装置。
  68. 前記装置は、さらに、前記マスター鍵を第一のセグメントと第二のセグメントに分割する分割器を含み、
    前記ハッシュアルゴリズムの実行が、
    前記第一のセグメントを前記カウンタと結合し、変更された第一のセグメントを生成する結合器と、
    前記ハッシュアルゴリズムの実行を使用して前記変更された第一のセグメントをハッシュ値にハッシュする手段と、を含み、
    さらに、前記汎用ハッシュアルゴリズムの実行が、
    前記第二のセグメントから第一の数と第二の数を決定する決定部と、
    前記ハッシュ値、前記第一の数、及び前記第二の数を使用した結果を演算する計算式の実行を含む計算機と、
    前記結果から、導出鍵としてビットのセットを選択するビットセレクタと、を含むことを特徴とする請求項66に記載の装置。
  69. 前記生成する手段が、
    前記マスター鍵と一緒に前記汎用ハッシュアルゴリズムの実行を使用して結果を生成する手段と、
    前記結果とカウンタと一緒に前記ハッシュアルゴリズムの実行を使用して前記導出鍵を生成する手段と、を含む請求項66に記載の装置。
  70. 前記汎用ハッシュアルゴリズムの実行が、
    前記マスター鍵を第一のセグメントと第二のセグメントに分割する分割器と、
    カウンタを繰り返し、より長いビットパターンとして符号化されたカウンタを生成するリピータと、
    前記第一のセグメントと前記符号化されたカウンタに対して動作して第一の結果を生成する第一のビット単位のバイナリ関数の実行と、
    前記第二のセグメントと前記符号化されたカウンタに対して動作して第二の結果を生成する第二のビット単位のバイナリ関数の実行と、
    前記第一の結果、前記第二の結果、及び前記符号化されたカウンタを結合して前記結果を生成する結合器と、を含む請求項69に記載の装置。
  71. 前記生成する手段が、
    前記マスター鍵とカウンタと一緒に前記ハッシュアルゴリズムの実行を使用して結果を生成する手段と、
    前記結果と一緒に前記汎用ハッシュアルゴリズムの実行を使用して前記導出鍵を生成する手段と、を含む請求項66に記載の装置。
  72. 前記生成する手段が、さらに、前記マスター鍵を第一のセグメントと第二のセグメントに分割する分割器を含み、
    前記ハッシュアルゴリズムの実行を使用する前記手段が、
    前記第一のセグメントを前記カウンタと結合し、変更された第一のセグメントを生成する結合器と、
    前記変更された第一のセグメントをハッシュ値にハッシュする前記ハッシュアルゴリズムの実行を使用する手段と、を含み、
    前記汎用ハッシュアルゴリズムの実行を使用する前記手段が、
    前記第二のセグメントから第一の数と第二の数を決定する決定部と、
    前記ハッシュ値、前記第一の数、及び前記第二の数を使用した結果を演算する計算式の実行を含む計算機と、
    前記結果から、導出鍵としてビットのセットを選択するビットセレクタと、を含む請求項71に記載の装置。
  73. マスター鍵を受信する入力ポートと、
    汎用ハッシュアルゴリズムを実行する第一の計算機と、
    ハッシュアルゴリズムを実行する第二の計算機と、
    前記第一の計算機と前記第二の数計算機を使用して前記マスター鍵から導出鍵を生成する鍵導出機能部と、
    前記生成された導出鍵を出力する出力ポートと、を含むことを特徴とする装置。
  74. 前記鍵導出機能部が、
    前記マスター鍵を第一のセグメントと第二のセグメントに分割する分割器と、
    カウンタを繰り返し、より長いビットパターンとして符号化されたカウンタを生成するリピータと、
    前記第一のセグメントと前記符号化されたカウンタに対して動作して第一の結果を生成する第一のビット単位のバイナリ関数の実行を行う第三の計算機と、
    前記第二のセグメントと前記符号化されたカウンタに対して動作して第二の結果を生成する第二のビット単位のバイナリ関数の実行を行う第四の計算機と、
    前記第一の結果、前記第二の結果、及び前記符号化されたカウンタを結合して前記結果を生成する結合器と、を含む請求項73に記載の装置。
  75. 前記装置は、さらに、前記マスター鍵を第一のセグメントと第二のセグメントに分割する分割器を含み、
    前記第二の計算機が、
    前記第一のセグメントを前記カウンタと結合して、変更された第一のセグメントを生成する結合器と、
    前記ハッシュアルゴリズムを実行し、前記変更された第一のセグメントをハッシュ値にハッシュする第五の計算機と、を含み、
    前記第一の計算機が、
    前記第二のセグメントから第一の数と第二の数を決定する決定部と、
    前記ハッシュ値、前記第一の数、及び前記第二の数を使用した結果を演算する計算式を実行する第六の計算機と、
    前記結果から、導出鍵としてビットのセットを選択するビットセレクタと、を含む請求項73に記載の装置。
  76. 前記鍵導出が、
    前記マスター鍵と一緒に前記汎用ハッシュアルゴリズムを実行して結果を生成する第三の計算機と、
    前記結果とカウンタと一緒に前記ハッシュアルゴリズムを実行して前記導出鍵を生成する第四の計算機と、を含む請求項73に記載の装置。
  77. 前記第一の計算機が、
    前記マスター鍵を第一のセグメントと第二のセグメントに分割する分割器と、
    カウンタを繰り返し、より長いビットパターンとして符号化されたカウンタを生成するリピータと、
    前記第一のセグメントと前記符号化されたカウンタに対して動作して第一の結果を生成する第一のビット単位のバイナリ関数の実行を行う第五の計算機と、
    前記第二のセグメントと前記符号化されたカウンタに対して動作して第二の結果を生成する第二のビット単位のバイナリ関数の実行を行う第六の計算機と、
    前記第一の結果、前記第二の結果、及び前記符号化されたカウンタを結合して前記結果を生成する結合器と、を含む請求項76に記載の装置。
  78. 前記鍵導出が、
    前記マスター鍵とカウンタと一緒に前記汎用ハッシュアルゴリズムを実行して結果を生成する第三の計算機と、
    前記結果と一緒に前記ハッシュアルゴリズムを実行して前記導出鍵を生成する第四の計算機と、を含む請求項73に記載の装置。
  79. 前記装置は、さらに、前記マスター鍵を第一のセグメントと第二のセグメントに分割する分割器を含み、
    前記第三の計算機が、
    前記第一のセグメントを前記カウンタと結合して、変更された第一のセグメントを生成する結合器と、
    前記ハッシュアルゴリズムを実行し、前記変更された第一のセグメントをハッシュ値にハッシュする第三の計算機と、を含み、
    前記第四の計算機が、
    前記第二のセグメントから第一の数と第二の数を決定する決定部と、
    前記ハッシュ値、前記第一の数、及び前記第二の数を使用した結果を演算する計算式を含む第五の計算機と、
    前記結果から、導出鍵としてビットのセットを選択するビットセレクタと、を含む請求項78に記載の装置。
  80. マスター鍵を受信する入力ポートと、
    前記マスター鍵を第一のセグメントと第二のセグメントに分割する分割器と、
    前記第一のセグメントとカウンタを連結し、変更された第一のセグメントを生成する連結器と、
    前記変更された第一のセグメントをハッシュ値へハッシュするハッシャと、
    前記第二のセグメントから第一の数と第二の数を決定する決定部と、
    前記ハッシュ値、前記第一の数、及び前記第二の数を使用した結果を演算する計算式の実行を含む計算機と、
    前記結果から得られたビットのセットを導出鍵として選択するビットセレクタと、を含むことを特徴とする装置。
  81. さらに、前記導出鍵を出力する出力ポートを含む請求項80に記載の装置。
  82. 前記計算機が、
    前記ハッシュ値と前記第一の数の積を演算する第一の関数の実行と、
    前記積と前記第二の数の和を演算する第二の関数の実行と、
    前記和をモジュラスで割った剰余の前記結果を演算する第三の関数の実行と、を含む請求項80に記載の装置。
  83. 前記決定部が、前記第一の数と前記第二の数を、前記モジュラスで割った剰余を決定するように動作する請求項82に記載の装置。
  84. 前記第三の関数の前記実行が、前記和を素数のモジュラスで割った剰余の前記結果を演算する前記第三の関数の実行を含む請求項82に記載の装置。
  85. 前記ビットセレクタが前記導出鍵として、前記結果から最下位ビットのセットを選択するよう動作する請求項80に記載の装置。
  86. マスター鍵を受信する入力ポートと、
    前記マスター鍵を第一のセグメントと第二のセグメントに分割する分割器と、
    前記第一のセグメントをカウンタと連結、変更された第一のセグメントを生成する連結器と、
    前記変更された第一のセグメントをハッシュ値にハッシュするハッシャと、
    前記第二のセグメントをモジュラスで割った剰余から第一の数と第二の数を決定する決定部と、
    前記ハッシュ値、前記第一の数、及び前記第二の数を使用した結果を演算する計算式の実行を含む計算機と、
    前記結果から得られたビットのセットを導出鍵として選択するビットセレクタと、を含む鍵導出装置と、
    前記導出鍵を使用してデータを暗号化するエンクリプタと、を含むことを特徴とするデータセキュリティ装置。
  87. さらに、データ変換器を含む請求項86に記載のデータセキュリティ装置。
  88. 前記データ変換器が元のマスター鍵を前記マスター鍵に変換するよう動作する請求項87に記載のデータセキュリティ装置。
  89. 前記データ変換器が、前記導出鍵を変換された導出鍵に変換するよう動作する請求項87に記載のデータセキュリティ装置。
  90. 前記計算機が、
    前記ハッシュ値と前記第一の数の積を演算する第一の関数の実行と、
    前記積と前記第二の数の和を演算する第二の関数の実行と、
    前記和を前記モジュラスで割った剰余から前記結果を演算する第三の関数の実行と、を含む請求項86に記載のデータセキュリティ装置。
  91. 前記第三の関数の前記実行が、前記和を素数のモジュラスで割った剰余から前記結果を演算する前記第三の関数の実行を含む請求項86に記載のデータセキュリティ装置。
  92. マスター鍵をハッシュしてハッシュ値を生成するステップと、
    前記マスター鍵から第一の数と第二の数を決定するステップと、
    前記ハッシュ値の汎用ハッシュ関数、前記第一の数、及び前記第二の数を演算して結果を生成するステップと、
    前記結果のビットから導出鍵を選択するステップと、を含むことを特徴とする鍵導出の実行の方法。
  93. 前記方法は、さらに、前記マスター鍵を第一のセグメントと第二のセグメントに分割するステップを含み、
    前記マスター鍵をハッシュするステップが、前記第一のセグメントをハッシュして前記ハッシュ値を生成するステップを含み、
    前記第一の数と第二の数を決定するステップが、前記第二のセグメントから前記第一の数と前記第二の数を決定するステップを含む請求項92に記載の方法。
  94. 前記方法は、さらに、カウンタを決定するステップを含み、
    前記第一のセグメントをハッシュするステップが、前記第一のセグメントと前記カウンタを結合させるステップを含む請求項93に記載の方法。
  95. 前記第一の数と第二の数を決定するステップが、
    前記マスター鍵から第三の数と第四の数を導出するステップと、
    前記第一の数を、前記第三の数をモジュラスで割った剰余として演算するステップと、
    前記第二の数を、前記第四の数をモジュラスで割った剰余として演算するステップと、を含む請求項92に記載の方法。
  96. 前記汎用ハッシュ関数を演算するステップが、
    前記第一の数と前記ハッシュ値の積を演算するステップと、
    前記積と前記第二の数の和を演算するステップと、
    前記和をモジュラスで割った剰余として前記結果を演算するステップと、を含む請求項92に記載の方法。
  97. 前記結果を演算するステップが、前記和を素数の除数で割った剰余として前記結果を演算するステップを含む請求項96に記載の方法。
  98. 前記導出鍵を選択するステップが、前記結果の前記最下位ビットのセットから当該導出鍵を選択するステップを含む請求項96に記載の方法。
  99. マスター鍵を第一のセグメントと第二のセグメントに分割するステップと、
    前記第一のセグメントをハッシュしてハッシュ値を生成するステップと、
    第一の数と第二の数を前記第二のセグメントから決定するステップと、
    前記第一の数と前記ハッシュ値の積を演算するステップと、
    前記積と前記第二の数の和を演算するステップと、
    前記和をモジュラスで割った剰余として結果を演算するステップと、
    前記結果のビットから導出鍵を選択するステップと、を含む導出鍵生成ステップと、
    前記導出鍵を使用してデータを暗号化するステップと、とを含むことを特徴とする導出鍵の暗号化の方法。
  100. さらに、前記導出鍵を生成する前に、データ変換を前記マスター鍵に適用するステップを含む請求項99に記載の方法。
  101. 前記マスター鍵にデータ変換を適用するステップが、
    前記マスター鍵を、それぞれのセグメントが少なくとも1ビットを含む第三のセグメントと第四のセグメントに分割するステップと、
    前記第四のセグメントの前記ビットを複数の群にまとめるステップであって、当該複数の群の数が前記第三のセグメントのビット数と等しく、それぞれの群が同じビット数を有するステップと、
    前記複数の群のそれぞれを前記第三のセグメントのビットと関連付けるステップと、
    転置関数を、前記第三のセグメントの前記関連付けられたビットに従って、前記群の少なくとも一つに適用するステップと、
    前記データ変換が適用されたマスター鍵を、前記第三のセグメントと前記転置群から構築するステップと、を含む請求項100に記載の方法。
  102. 前記マスター鍵にデータ変換を適用するステップが、
    前記マスター鍵を、それぞれのセグメントが少なくとも1ビットを含む第三のセグメントと第四のセグメントに分割するステップと、
    前記第三のセグメントの関数として、第二のモジュラスの関数に対して素である指数を乗ずる演算をするステップと、
    前記第四のセグメントの関数を前記指数に乗じた結果を演算するステップと、
    前記結果を前記第二のモジュラスで割った剰余として指数的転置を演算するステップと、
    前記データ変換が適用されたマスター鍵を前記第三のセグメントと前記演算された指数的転置から構築するステップと、を含む請求項100に記載の方法。
  103. さらに、データ変換を前記導出鍵に適用するステップを含む請求項99に記載の方法。
  104. 前記マスター鍵にデータ変換を適用するステップが、
    前記マスター鍵を、それぞれが少なくとも1ビットを含む第三のセグメントと第四のセグメントに分割するステップと、
    前記第四のセグメントの前記ビットを複数の群にまとめるステップであって、前記複数の群の数が前記第三のセグメントのビット数と等しく、それぞれの群が同じビット数を有するステップと、
    前記複数の群のそれぞれを前記第三のセグメントのビットと関連付けるステップと、
    転置関数を、前記第三のセグメントの前記関連付けられたビットに従って、前記複数の群の少なくとも一つに適用するステップと、
    前記データ変換が適用されたマスター鍵を、前記第三のセグメントと前記転置群から構築するステップと、を含む請求項99に記載の方法。
  105. 前記マスター鍵にデータ変換を適用するステップが、
    前記マスター鍵を、それぞれが少なくとも1ビットを含む第三のセグメントと第四のセグメントに分割するステップと、
    前記第三のセグメントの関数として、第二のモジュラスの関数に対して素である指数を乗ずる演算をするステップと、
    前記第四のセグメントの関数を前記指数に乗じた結果を演算するステップと、
    前記結果を前記第二のモジュラスで割った剰余として指数的転置を演算するステップと、
    前記変換されたマスター鍵を前記第三のセグメントと前記演算された指数的転置から構築するステップと、を含む請求項103に記載の方法。
  106. さらに、前記導出鍵の暗号化を行うステップを含む請求項99に記載の方法。
  107. さらに、前記暗号化された導出鍵を送信するステップを含む請求項106に記載の方法。
  108. さらに、前記暗号化されたデータを送信するステップを含む請求項99に記載の方法。
  109. さらに、カウンタを決定するステップを含み、
    前記第一のセグメントをハッシュするステップが、前記第一のセグメントと前記カウンタを結合するステップを含む請求項99に記載の方法。
  110. 前記第一の数と第二の数を決定するステップが、
    第三の数と第四の数を、前記第二のセグメントから導出するステップと、
    前記第一の数を、前記第三の数をモジュラスで割った剰余として演算するステップと、
    前記第二の数を、前記第四の数を前記モジュラスで割った剰余として演算するステップと、を含む請求項99に記載の方法。
  111. 導出鍵を選択するステップが、前記結果の最下位ビットのセットから当該導出鍵を選択するステップを含む請求項99に記載の方法。
  112. マスター鍵を受信する入力ポートと、
    前記マスター鍵と一つの値を結合し変更されたマスター鍵を生成する結合器と、
    前記変更されたマスター鍵をハッシュしてハッシュ値とするハッシャと、
    前記ハッシュ値からビットのセットを選択して導出鍵とするビットセレクタと、を含むことを特徴とする装置。
  113. 前記装置は、さらに、前記値を繰り返し、符号化された値をより長いビットパターンとして構成するリピータを含み、
    前記結合器が前記マスター鍵と前記符号化された値を結合し、変更されたマスター鍵を生成するよう動作する請求項112に記載の装置。
  114. 前記カウンタが、前記マスター鍵を第一のセグメントと第二のセグメントに分割する分割器を含み、
    前記結合器が、前記符号化された値、前記第一のセグメント、及び前記第二のセグメントを結合し、前記変更されたマスター鍵を生成する請求項112に記載の装置。
  115. 前記結合器が、さらに、
    前記第一のセグメントと前記符号化された値に対して動作して第一の結果を生成する第一のビット単位のバイナリ関数の実行と、
    前記第二のセグメントと前記符号化された値に対して動作して第二の結果を生成する第二のビット単位のバイナリ関数の実行と、
    前記第一の結果と前記第二の結果を結合し、前記変更されたマスター鍵を生成する結合器と、を含む請求項114に記載の装置。
  116. 前記結合器が、前記第一の結果と前記第二の結果を連結し、前記変更されたマスター鍵を生成する連結器を含む請求項115に記載の装置。
  117. 前記ビットセレクタが、前記導出鍵として前記ハッシュ値から最下位ビット部分を選択するよう動作する請求項112に記載の装置。
  118. 前記結合器が、前記マスター鍵とカウンタを結合し、前記変更されたマスター鍵を生成するよう動作する請求項112に記載の装置。
  119. マスター鍵を受信する入力ポートと、
    前記マスター鍵を第一のセグメントと第二のセグメントに分割する分割器と、
    一つの値を繰り返し、符号化された値をより長いビットパターンとして構成するリピータと、
    前記第一のセグメントと前記符号化された値を演算して第一の結果を生成する第一のビット単位のバイナリ関数の実行と、
    前記第二のセグメントと前記符号化された値を演算して第二の結果を生成する第二のビット単位のバイナリ関数の実行と、
    前記第一の結果、前記第二の結果、及び前記符号化された値を結合し、前記変更されたマスター鍵を生成する結合器と、
    前記変更されたマスター鍵をハッシュしてハッシュ値とするハッシャと、
    前記結果から得られるビットのセットを導出鍵として選択するビットセレクタと、を含む導出鍵と、
    前記導出鍵を使用してデータを暗号化するエンクリプタと、を含むことを特徴とするデータセキュリティ装置。
  120. さらに、データ変換器を含む請求項119に記載のデータセキュリティ装置。
  121. 前記データ変換器が元のマスター鍵を前記マスター鍵に変換するよう動作する請求項120に記載のデータセキュリティ装置。
  122. 前記データ変換器が、前記導出鍵を変換された導出鍵に変換するよう動作する請求項120に記載のデータセキュリティ装置。
  123. 前記リピータが、カウンタを繰り返し、前記符号化された値をより長いビットパターンに構成するよう動作する請求項119に記載のデータセキュリティ装置。
  124. マスター鍵を、一つの値と結合し変更されたマスター鍵を生成するステップと、
    前記変更されたマスター鍵をハッシュしてハッシュ値を生成するステップと、
    前記ハッシュ値のビットから導出鍵を選択するステップと、を含むことを特徴とする鍵導出実行の方法。
  125. さらに、前記値のビットパターンを繰り返し、より長いビットパターンを構成するステップを含む請求項124に記載の方法。
  126. 前記マスター鍵を一つの値と結合させるステップが、当該マスター鍵と当該値を使用してビット単位のバイナリ関数を演算するステップを含む請求項124に記載の方法。
  127. 前記マスター鍵を前記値と結合するステップが、
    前記マスター鍵を第一のセグメントと第二のセグメントに分割するステップと、
    前記第一のセグメントを前記値と結合して第一の結果を生成するステップと、
    前記第二のセグメントを前記値と結合して第二の結果を生成するステップと、
    前記第一の結果と前記第二の結果を結合して前記変更されたマスター鍵を生成するステップと、を含む請求項124に記載の方法。
  128. 前記第一の結果と前記第二の結果を結合するステップが、当該第一の結果と当該第二の結果を連結して前記変更されたマスター鍵を生成するステップを含む請求項127に記載の方法。
  129. 前記導出鍵を選択するステップが、前記ハッシュ値の最下位ビット部分から当該導出鍵を選択するステップを含む請求項124に記載の方法。
  130. 前記マスター鍵を一つの値と結合し変更されたマスター鍵を生成するステップが、当該マスター鍵とカウンタを結合し前記変更されたマスター鍵を生成するステップを含む請求項124に記載の方法。
  131. マスター鍵を一つの値と結合し変更されたマスター鍵を生成するステップと、
    前記変更されたマスター鍵をハッシュしてハッシュ値を生成するステップと、
    前記ハッシュ値のビットから導出鍵を選択するステップと、
    前記導出鍵を使用してデータを暗号化するステップと、を含むことを特徴とする鍵導出を暗号化する方法。
  132. さらに、前記導出鍵の生成の前に、データ変換を前記マスター鍵に適用するステップを含む請求項131に記載の方法。
  133. 前記マスター鍵にデータ変換を適用するステップが、
    前記マスター鍵を、それぞれが少なくとも1ビットを含む第三のセグメントと第四のセグメントに分割するステップと、
    前記第四のセグメントの前記ビットを複数の群の数にまとめるステップであって、前記複数の群の数が前記第三のセグメントのビット数と等しく、それぞれの群が同じビット数を有するステップと、
    前記複数の群のそれぞれを前記第三のセグメントのビットと関連付けるステップと、
    前記第三のセグメントの関連付けられたビットに従って、転置関数を少なくとも一つの前記群に適用するステップと、
    前記変換されたマスター鍵を前記第三のセグメントと前記転置群から構築するステップと、を含む請求項132に記載の方法。
  134. 前記マスター鍵にデータ変換を適用するステップが、
    前記マスター鍵を、それぞれが少なくとも1ビットを含む第三のセグメントと第四のセグメントに分割するステップと、
    前記第三のセグメントの関数として、予め定義されたモジュラスの関数に対して素である指数を乗ずる演算をするステップと、
    前記第四のセグメントの関数に、前記指数を乗じた結果を演算するステップと、
    指数的転置を、前記結果を前記予め定義されたモジュラスで割った剰余として演算するステップと、
    前記変換されたマスター鍵を前記第三のセグメントと前記演算された指数的転置から構築するステップと、を含む請求項132に記載の方法。
  135. さらに、データ変換を前記導出鍵に適用するステップを含む請求項131に記載の方法。
  136. 前記マスター鍵にデータ変換を適用するステップが、
    前記マスター鍵を、それぞれが少なくとも1ビットを含む第三のセグメントと第四のセグメントに分割するステップと、
    前記第四のセグメントの前記ビットを複数の群の数にまとめるステップであって、前記複数の群の数が前記第三のセグメントのビット数と等しく、それぞれの群が同じビット数を有するステップと、
    前記複数の群のそれぞれを前記第三のセグメントのビットと関連付けるステップと、
    前記第三のセグメントの関連付けられたビットに従って、転置関数を少なくとも一つの前記群に適用するステップと、
    前記変換されたマスター鍵を前記第三のセグメントと前記転置群から構築するステップと、を含む請求項135に記載の方法。
  137. 前記データ変換を適用するステップが、
    前記マスター鍵を、それぞれが少なくとも1ビットを含む第三のセグメントと第四のセグメントに分割するステップと、
    前記第三のセグメントの関数として、予め定義されたモジュラスの関数に対して素である指数を乗ずる演算をするステップと、
    前記第四のセグメントの関数に、前記指数を乗じた結果を演算するステップと、
    指数的転置を、前記結果を前記予め定義されたモジュラスで割った剰余として演算するステップと、
    前記変換されたマスター鍵を前記第三のセグメントと前記演算された指数的転置から構築するステップと、を含む請求項135に記載の方法。
  138. さらに、前記導出鍵を暗号化するステップを含む請求項131に記載の方法。
  139. さらに、前記暗号化された導出鍵を送信するステップを含む請求項138に記載の方法。
  140. さらに、前記暗号化されたデータを送信するステップを含む請求項131に記載の方法。
  141. 前記マスター鍵を一つの値と結合するステップが、
    前記マスター鍵を第一のセグメントと第二のセグメントに分割するステップと、
    前記第一のセグメントを前記値と結合して第一の結果を生成するステップと、
    前記第二のセグメントを前記値と結合して第二の結果を生成するステップと、
    前記第一の結果と前記第二の結果を結合して前記変更されたマスター鍵を生成するステップと、を含む請求項131に記載の方法。
  142. 前記第一の結果と前記第二の結果を結合するステップが、当該第一の結果と当該第二の結果を連結して前記変更されたマスター鍵を生成するステップを含む請求項141に記載の方法。
  143. 前記マスター鍵を一つの値と結合するステップが、
    前記マスター鍵を第一のセグメントと第二のセグメントに分割するステップと、
    前記第一のセグメントを前記値と結合して第一の結果を生成するステップと、
    前記第一の結果を前記第二のセグメントと結合して前記変更されたマスター鍵を生成するステップと、を含む請求項131に記載の方法。
  144. 前記マスター鍵を一つの値と結合して変更されたマスター鍵を生成するステップが、当該マスター鍵をカウンタと結合して変更されたマスター鍵を生成するステップを含む請求項131に記載の方法。
JP2007525746A 2004-08-12 2005-08-09 セキュリティ強化のための転置データ変換 Expired - Fee Related JP4820821B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US10/918,717 2004-08-12
US10/918,718 US7577250B2 (en) 2004-08-12 2004-08-12 Key derivation functions to enhance security
US10/918,717 US8077861B2 (en) 2004-08-12 2004-08-12 Permutation data transform to enhance security
US10/918,103 2004-08-12
US10/918,718 2004-08-12
US10/918,103 US7564970B2 (en) 2004-08-12 2004-08-12 Exponential data transform to enhance security
PCT/US2005/028316 WO2006023334A2 (en) 2004-08-12 2005-08-09 Permutation data transform to enhance security

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2008282838A Division JP4879951B2 (ja) 2004-08-12 2008-11-04 セキュリティ強化のための転置データ変換
JP2008282834A Division JP5011264B2 (ja) 2004-08-12 2008-11-04 セキュリティ強化のための転置データ変換

Publications (3)

Publication Number Publication Date
JP2008510185A true JP2008510185A (ja) 2008-04-03
JP2008510185A5 JP2008510185A5 (ja) 2008-09-25
JP4820821B2 JP4820821B2 (ja) 2011-11-24

Family

ID=35968064

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2007525746A Expired - Fee Related JP4820821B2 (ja) 2004-08-12 2005-08-09 セキュリティ強化のための転置データ変換
JP2008282838A Expired - Fee Related JP4879951B2 (ja) 2004-08-12 2008-11-04 セキュリティ強化のための転置データ変換
JP2008282834A Expired - Fee Related JP5011264B2 (ja) 2004-08-12 2008-11-04 セキュリティ強化のための転置データ変換
JP2011205927A Expired - Fee Related JP5572610B2 (ja) 2004-08-12 2011-09-21 セキュリティ強化のための転置データ変換
JP2011205926A Expired - Fee Related JP5323908B2 (ja) 2004-08-12 2011-09-21 セキュリティ強化のための転置データ変換

Family Applications After (4)

Application Number Title Priority Date Filing Date
JP2008282838A Expired - Fee Related JP4879951B2 (ja) 2004-08-12 2008-11-04 セキュリティ強化のための転置データ変換
JP2008282834A Expired - Fee Related JP5011264B2 (ja) 2004-08-12 2008-11-04 セキュリティ強化のための転置データ変換
JP2011205927A Expired - Fee Related JP5572610B2 (ja) 2004-08-12 2011-09-21 セキュリティ強化のための転置データ変換
JP2011205926A Expired - Fee Related JP5323908B2 (ja) 2004-08-12 2011-09-21 セキュリティ強化のための転置データ変換

Country Status (12)

Country Link
EP (6) EP2629450A2 (ja)
JP (5) JP4820821B2 (ja)
KR (7) KR101328618B1 (ja)
CN (2) CN102868518A (ja)
AU (3) AU2005277664B2 (ja)
BR (1) BRPI0514256A (ja)
CA (3) CA2780980C (ja)
IL (5) IL181206A (ja)
MA (1) MA28854B1 (ja)
MX (1) MX2007001672A (ja)
NZ (8) NZ574824A (ja)
WO (1) WO2006023334A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014192612A (ja) * 2013-03-26 2014-10-06 Toshiba Corp 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム
JP2015507862A (ja) * 2011-12-12 2015-03-12 ソニー株式会社 ネットワークにおいてデータ信号を送信するためのシステム、方法、モバイル送信デバイスおよびネットワークデバイス
JP2016118874A (ja) * 2014-12-19 2016-06-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ビットを選択する所定位置を変更することでハッシュ関数を1つ以上生成することが可能なハッシュ値を計算する方法、並びに、その為のコンピュータ及びコンピュータ・プログラム
JP2017099015A (ja) * 2017-01-26 2017-06-01 株式会社東芝 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム
WO2023067952A1 (ja) * 2021-10-22 2023-04-27 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理方法、記録媒体

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011013125A1 (en) * 2009-07-27 2011-02-03 Storwize Ltd. Method and system for transformation of logical data objects for storage
US8295481B2 (en) 2009-08-31 2012-10-23 International Business Machines Corporation Virtualization of cryptographic keys
EP2487904A1 (en) * 2011-02-10 2012-08-15 Thomson Licensing Method and device for excerpt licensing
EP2847973B1 (en) * 2012-05-03 2016-11-16 Telefonaktiebolaget LM Ericsson (publ) Centralized key management in embms
EP2932644B1 (en) * 2013-01-07 2019-04-24 Acano (UK) Limited Secrets renewability
KR101282653B1 (ko) * 2013-03-04 2013-07-12 소프트포럼 주식회사 데이터 치환 암호화 장치 및 방법
US10474652B2 (en) * 2013-03-14 2019-11-12 Inpixon Optimizing wide data-type storage and analysis of data in a column store database
WO2017065322A1 (ko) * 2015-10-12 2017-04-20 (주) 이스트몹 보안성이 강화된 p2p파일 전송방법 및 프로그램
CN106571925B (zh) * 2016-10-24 2020-07-10 北京云图科瑞科技有限公司 对区块链系统中的区块进行工作量证明的方法及装置
CN109962776B (zh) * 2017-12-25 2022-02-08 亚旭电脑股份有限公司 加密方法与解密方法
CN109412791B (zh) * 2018-11-29 2019-11-22 北京三快在线科技有限公司 密钥信息处理方法、装置、电子设备及计算机可读介质
DE102019212958B3 (de) 2019-08-28 2021-03-04 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zur Erzeugung von kryptographischen Schlüsseln nach einem Schlüsselableitungsmodell sowie Fahrzeug
US20240037249A1 (en) * 2020-07-23 2024-02-01 Usencryption Inc. Boolean function control gates for securely executing on a public computer code that operates on encrypted data

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4316055A (en) * 1976-12-30 1982-02-16 International Business Machines Corporation Stream/block cipher crytographic system
JPS6410750A (en) * 1987-07-02 1989-01-13 Mitsubishi Electric Corp Block encipherment device
JPH0227389A (ja) * 1988-07-15 1990-01-30 Sony Corp 暗号化方法及び該暗号方法を用いた暗号化装置/復号化装置
US4964164A (en) * 1989-08-07 1990-10-16 Algorithmic Research, Ltd. RSA computation method for efficient batch processing
JP2862141B2 (ja) * 1989-12-29 1999-02-24 富士通株式会社 慣用暗号を用いた識別番号ベース鍵管理装置
JPH06259012A (ja) * 1993-03-05 1994-09-16 Hitachi Ltd 階層型鍵管理による暗号方法及び情報通信システム
NZ277128A (en) * 1993-12-01 1998-04-27 William Michael Raike Public key encryption system and mixture generator
JP3627765B2 (ja) * 1995-06-15 2005-03-09 日本電信電話株式会社 スクランブルにより情報秘匿を行なう通信システムにおける送信装置
EP0768774A3 (en) * 1995-10-16 1999-08-04 Sony Corporation Method and apparatus for data encryption using a key generation hierarchy
JPH09149025A (ja) * 1995-11-24 1997-06-06 Sezon Joho Syst:Kk 暗号通信方法及び暗号通信システム
JPH10171350A (ja) * 1996-12-10 1998-06-26 Hitachi Ltd ハッシュ値生成方法および装置
JP2001514834A (ja) * 1997-03-10 2001-09-11 ガイ・エル・フィールダー 安全決定性暗号鍵発生システムおよび方法
CA2294170A1 (en) * 1997-03-10 1998-10-22 Paul N. Alito Bilateral authentication and encryption system
JPH10271104A (ja) * 1997-03-24 1998-10-09 Hitachi Inf Syst Ltd 暗号化方法及び復号化方法
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
JPH11122240A (ja) * 1997-10-17 1999-04-30 Fuji Xerox Co Ltd 復号装置および方法ならびにアクセス資格認証装置および方法
RU2141729C1 (ru) * 1998-01-19 1999-11-20 Государственное унитарное предприятие Специализированный центр программных систем "Спектр" Способ криптографического преобразования блоков двоичных данных
CA2282051A1 (en) * 1998-10-20 2000-04-20 Lucent Technologies, Inc. Efficient block cipher method
US7743412B1 (en) * 1999-02-26 2010-06-22 Intel Corporation Computer system identification
US6735313B1 (en) * 1999-05-07 2004-05-11 Lucent Technologies Inc. Cryptographic method and apparatus for restricting access to transmitted programming content using hash functions and program identifiers
DE69939254D1 (de) * 1999-06-22 2008-09-18 Hitachi Ltd Kryptografisches Gerät und Verfahren
KR100748867B1 (ko) * 1999-09-03 2007-08-13 코닌클리케 필립스 일렉트로닉스 엔.브이. 기록된 공개 자료로부터 마스터 키의 복구
WO2001050325A2 (en) 2000-01-03 2001-07-12 Efeckta Technologies Corporation Lossless data compression
US20010031050A1 (en) * 2000-02-14 2001-10-18 Lateca Computer Inc. N.V. Key generator
JP2002185443A (ja) * 2000-12-11 2002-06-28 Hitachi Ltd 秘密鍵管理方法
US20030037237A1 (en) * 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
AU2002332671A1 (en) 2001-08-13 2003-03-03 Board Of Trustees Of The Leland Stanford Junior University Systems and methods for identity-based encryption and related cryptographic techniques
JP2003143120A (ja) * 2001-11-07 2003-05-16 Matsushita Electric Ind Co Ltd データ攪拌回路とデータ攪拌方法
US7464265B2 (en) 2002-05-03 2008-12-09 Microsoft Corporation Methods for iteratively deriving security keys for communications sessions
US6834412B2 (en) * 2002-05-07 2004-12-28 D.P.L. Enterprises, Inc. Mobile air duct vacuum
JP2004072184A (ja) 2002-08-01 2004-03-04 Nippon Hoso Kyokai <Nhk> データ改竄防止装置およびそのプログラム
JP2005309148A (ja) 2004-04-22 2005-11-04 Hitachi Ltd データ変換装置およびデータ変換方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015507862A (ja) * 2011-12-12 2015-03-12 ソニー株式会社 ネットワークにおいてデータ信号を送信するためのシステム、方法、モバイル送信デバイスおよびネットワークデバイス
US9681293B2 (en) 2011-12-12 2017-06-13 Sony Corporation System for transmitting a data signal in a network, method, mobile transmitting device and network device
JP2014192612A (ja) * 2013-03-26 2014-10-06 Toshiba Corp 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム
JP2016118874A (ja) * 2014-12-19 2016-06-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ビットを選択する所定位置を変更することでハッシュ関数を1つ以上生成することが可能なハッシュ値を計算する方法、並びに、その為のコンピュータ及びコンピュータ・プログラム
JP2017099015A (ja) * 2017-01-26 2017-06-01 株式会社東芝 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム
WO2023067952A1 (ja) * 2021-10-22 2023-04-27 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理方法、記録媒体

Also Published As

Publication number Publication date
EP2629450A2 (en) 2013-08-21
NZ574824A (en) 2010-06-25
AU2005277664B2 (en) 2010-03-04
CN102857337A (zh) 2013-01-02
BRPI0514256A (pt) 2008-06-03
CA2576881C (en) 2012-11-20
MX2007001672A (es) 2007-08-02
EP1776794A2 (en) 2007-04-25
EP2439872B1 (en) 2016-04-27
KR20120098926A (ko) 2012-09-05
EP2439873A1 (en) 2012-04-11
KR20130014623A (ko) 2013-02-07
KR101328618B1 (ko) 2013-11-13
AU2010200320A1 (en) 2010-02-18
JP5323908B2 (ja) 2013-10-23
NZ574825A (en) 2010-06-25
NZ603822A (en) 2013-07-26
WO2006023334A3 (en) 2006-06-01
EP2439872A1 (en) 2012-04-11
NZ592242A (en) 2012-03-30
KR101248558B1 (ko) 2013-04-03
JP2012023764A (ja) 2012-02-02
JP2012023763A (ja) 2012-02-02
IL211474A (en) 2013-09-30
NZ597909A (en) 2012-07-27
IL181206A0 (en) 2007-07-04
IL211473A (en) 2013-09-30
KR20130018979A (ko) 2013-02-25
JP2009071854A (ja) 2009-04-02
CA2781070A1 (en) 2006-03-02
JP5011264B2 (ja) 2012-08-29
KR20130089287A (ko) 2013-08-09
NZ585225A (en) 2011-09-30
KR101187854B1 (ko) 2012-10-08
EP2629449A2 (en) 2013-08-21
CA2781070C (en) 2015-06-23
EP1776794A4 (en) 2010-09-22
EP2487827A2 (en) 2012-08-15
AU2005277664A1 (en) 2006-03-02
KR20110137840A (ko) 2011-12-23
CN102868518A (zh) 2013-01-09
JP4820821B2 (ja) 2011-11-24
CA2780980A1 (en) 2006-03-02
NZ553424A (en) 2009-03-31
JP2009069844A (ja) 2009-04-02
NZ601025A (en) 2013-04-26
KR20070057797A (ko) 2007-06-07
WO2006023334A2 (en) 2006-03-02
MA28854B1 (fr) 2007-09-03
AU2010200323B2 (en) 2012-12-20
AU2010200320B2 (en) 2012-12-20
KR20110089379A (ko) 2011-08-05
CA2780980C (en) 2014-12-02
JP5572610B2 (ja) 2014-08-13
JP4879951B2 (ja) 2012-02-22
IL211476A (en) 2012-10-31
IL211473A0 (en) 2011-05-31
AU2010200323A1 (en) 2010-02-18
IL211476A0 (en) 2011-05-31
IL211475A (en) 2013-09-30
EP2487827A3 (en) 2013-03-27
IL211475A0 (en) 2011-05-31
KR101366185B1 (ko) 2014-02-24
KR101313869B1 (ko) 2013-10-01
IL181206A (en) 2011-11-30
CA2576881A1 (en) 2006-03-02
KR101119933B1 (ko) 2012-03-15

Similar Documents

Publication Publication Date Title
JP4820821B2 (ja) セキュリティ強化のための転置データ変換
US7564970B2 (en) Exponential data transform to enhance security
US8155310B2 (en) Key derivation functions to enhance security
US8077861B2 (en) Permutation data transform to enhance security

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080808

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110722

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: 20110823

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110905

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

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

LAPS Cancellation because of no payment of annual fees