デジタル情報の保護方法、装置およびコンピュータによるアクセス可能な記録媒体
【課題】保護されたディジタル情報が容易に再構築されたり回復されたりすることのないディジタル情報の保護方法を提供する。
【解決手段】デジタル情報の保護方法は、保護されたアドレス領域をプリセット変換構成単位に基づいて複数のアドレス・ブロックに変換し、パラメータとして、このアドレス・ブロックを使用してアドレス・ブロック再配列規則を生成し、保護されたアドレス領域のアドレス・バッチにデータをロードする場合には、アドレス・バッチを前記変換構成単位に基づいて複数のアドレス・ブロックに変換し、アドレス・ブロック再配列規則に従って保護されたアドレス領域中のアドレス・ブロックの再配列されたアドレスを検索し、この再配列されたアドレスにデータをロードする。
【解決手段】デジタル情報の保護方法は、保護されたアドレス領域をプリセット変換構成単位に基づいて複数のアドレス・ブロックに変換し、パラメータとして、このアドレス・ブロックを使用してアドレス・ブロック再配列規則を生成し、保護されたアドレス領域のアドレス・バッチにデータをロードする場合には、アドレス・バッチを前記変換構成単位に基づいて複数のアドレス・ブロックに変換し、アドレス・ブロック再配列規則に従って保護されたアドレス領域中のアドレス・ブロックの再配列されたアドレスを検索し、この再配列されたアドレスにデータをロードする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ保護の方法および装置に関し、さらに詳しくは、デジタル情報を保護し、デジタル情報への権限の無いアクセスを防止できるようにするための方法および装置に関する。
【背景技術】
【0002】
コンピュータ技術の発展に伴い、ほとんど全ての政府機関、研究所、学術団体および会社は、書類やファイルの作成にコンピュータを使用する。さらに、コンピュータ周辺記憶装置の急速な発展とともに、重要書類、ファイルデータ、技術データ、機密データおよびこれらのバックアップデータの保存にこれらの記憶装置が使用される。書類やファイルの保存に記憶装置を使用すれば、データを作成したり、検索するための時間が短縮されるばかりでなく、紙の使用を減らし、さらに保存されたデータの寿命を延ばすことができる。加えて携帯型記憶装置は保存が容易な上、搬送に便利で小型のため、ユーザはデータおよびバックアップデータの保存に携帯型記憶装置を頻繁に使用している。しかしながら、携帯型記憶装置の利便性は、コンピュータに保存されたデータの漏出の危険性を増大させる。このような欠点を克服するため、暗号化を用いた様々なデータ保護方法が提案されている。それにも関わらず、暗号化されたデータは、多くのコンピュータを使用し膨大な計算を行えば解読することができるため、保護されたデータが盗難後に回復できないよう、いかにデータのセキュリティーを向上させるかが最大の関心事となっている。
【発明の開示】
【発明が解決しようとする課題】
【0003】
したがって、本発明の目的は、保護されたデジタル情報が容易に再構築されたり回復されたりすることのないデジタル情報の保護方法を提供することである。
【課題を解決するための手段】
【0004】
本発明の1つの観点におけるデジタル情報の保護方法は、
(A)プリセット変換構成単位に基づいて、保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとしてこのアドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
(B)データを前記保護されたアドレス領域のアドレス・バッチにロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
(C)アドレス・ブロック再配列規則に従って、保護されたアドレス領域中のアドレス・ブロックの再配列されたアドレスを検索するステップ、およびこの再配列されたアドレスに前記データをロードするステップと、
を含む。
【0005】
本発明の別の観点におけるデジタル情報の保護方法は、
(A)保護されたアドレス領域を複数の第1変換バッチに分割するステップ、第1変換構成単位に基づいて、各々の第1変換バッチのアドレス領域を複数の第1アドレス・ブロックに変換するステップ、およびパラメータとしてこの第1アドレス・ブロックを使用して、第1アドレス・ブロックを再配列するために第1アドレス・ブロック再配列規則を生成するステップと、
(B)保護されたアドレス領域を複数の第2変換バッチに分割するステップ、プリセット第2変換構成単位に基づいて、各々の第2変換バッチのアドレス領域を複数の第2アドレス・ブロックに変換するステップ、およびパラメータとしてこの第2アドレス・ブロックを使用して、第2アドレス・ブロックを再配列するために第2アドレス・ブロック再配列規則を生成するステップと、
(C)保護されたアドレス領域を少なくとも1つの第3変換バッチに分割するステップ、プリセット第3変換構成単位に基づいて、前記少なくとも1つの第3変換バッチのアドレス領域を複数の第3アドレス・ブロックに変換するステップ、およびパラメータとしてこの第3アドレス・ブロックを使用して、第3アドレス・ブロックを再配列するために第3アドレス・ブロック再配列規則を生成するステップと、
(D)データを前記保護されたアドレス領域のアドレス・バッチにロードする場合には、前記アドレス・バッチが属する第1変換バッチを決定するステップ、前記第1変換構成単位に基づいて、前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第1、第2、第3アドレス・ブロック再配列規則に従って、保護されたアドレス領域内のアドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された再配列されたアドレスにロードすること、
を含む。
【0006】
本発明のさらなる特徴および利点は、図面を参照しつつ下記する好適な実施形態の詳細な記述によって明らかになるであろう。
図1は、本発明の一つ実施形態における主機能ブロックを示す図である。
図2は、本発明の別の好適な実施形態における主機能ブロックを示す図である。
図3は、本発明のさらに別の好適な実施形態における主機能ブロックを示す図である。
図4は、本発明の好適な実施形態における、所定のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
図5は、本発明の好適な実施形態における、別のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
図6は、ソースデータを暗号化アルゴリズムを使用して暗号化し、暗号化データを復号化アルゴリズムを使用してソースデータに復号する例を模式的に示す。
図7は、本発明の好適な実施形態において、システム指定アクセス領域初期アドレス・シーケンスが、どの様にアクセス領域カスタムアドレス・シーケンスに変換されるかを模式的に示す。
図8は、本発明によるデジタル情報保護方法の別の実施形態における準備操作フロー図である。
図9は、好適な実施形態における実際のアクセス操作のフロー図である。
図10は、好適な実施形態における第1アドレス変換を説明する模式図である。
図11は、好適な実施形態における第2アドレス変換を説明する模式図である。
図12は、好適な実施形態における第3アドレス変換を説明する模式図である。
図13は、本発明によるデジタル情報保護方法のさらに別の実施形態におけるフロー図である。
図14は、本好適実施形態におけるアドレス変換を説明する模式図である。
【発明を実施するための最良の形態】
【0007】
本発明を詳述する前に、本開示を通じて同様な要素は同一の符合によって表されることに留意するべきである。
【0008】
図1は、本発明の好適な第1実施形態の主要機能を示すブロック図で、図中のハードウェア・システム10は、データ暗号化/復号化モジュール20と記憶空間アドレス変換モジュール25とを含むコンピュータ11、ならびに、記憶装置30を含む周辺記憶装置12を備える。図2は、本発明の好適な第2実施形態の主要機能を示すブロック図で、図中のハードウェア・システム10は、データ暗号化/復号化モジュール20を含むコンピュータ11、ならびに、記憶空間アドレス変換モジュール25と記憶装置30とを含む周辺記憶装置12を備える。図3は、本発明の好適な第3実施形態の主要機能を示すブロック図で、図中のハードウェア・システム10は、コンピュータ11、ならびに、データ暗号化/復号化モジュール20と記憶空間アドレス変換モジュールと記憶装置30とを含む周辺記憶装置12を備える。
【0009】
記憶空間アドレス変換モジュール25の機能は以下の通りである。(1)アドレス変換キー95と保護域初期アドレス・シーケンス70とに従いアドレス変換規則60を設定し、このアドレス変換規則60を使用して保護域アドレスマッピング表65を構成し、これにより保護域初期アドレス・シーケンス70を保護域カスタムアドレス・シーケンス75に変換する。(2)保護域アドレスマッピング表65を使用してアクセス領域初期アドレス・シーケンス80に対応するアクセス領域カスタムアドレス・シーケンス85を取得するか、またはアドレス変換規則60に従い計算を行ってアクセス領域初期アドレス・シーケンス80に対応するアクセス領域カスタムアドレス・シーケンス85を取得する。
【0010】
データ暗号化/復号化モジュール20の機能は以下の通りである。
(1)暗号化コード90と暗号化アルゴリズム40とに従い、暗号化ソースデータ50を暗号化データ55に暗号化する。(2)復号化コード92と復号化アルゴリズム45とに従い、暗号化データ55をソースデータ50に復号する。
【0011】
データを記憶装置30の保護域に保存しようとする場合には、データ暗号化/復号化モジュール20は、ソースデータ50を暗号化データ55に暗号化するために使用され、それから、記憶空間アドレス変換モジュール25は、システム指定のアクセス領域初期アドレス・シーケンス80に対応するアクセス領域カスタムアドレス・シーケンス85を取得するために使用される。その後、暗号化データ55は、アクセス領域カスタムアドレス・シーケンス85に対応する記憶位置に保存される。一方、データを読み取る際には、記憶空間アドレス変換モジュール25は、システム指定アクセス領域初期アドレス・シーケンス80に対応するアクセス領域カスタムアドレス・シーケンス85を取得するために使用され、それからアクセス領域カスタムアドレス・シーケンス85に対応する記憶位置から暗号化データ55が読み取られる。その後、暗号化/復号化モジュール20は、暗号化データ55をソースデータ50に復号するために使用される。
【0012】
以上が本発明の主要機能の概要である。本発明のデジタル情報保護装置を用いた初期化プロセスについて以下に述べる。
【0013】
記憶空間アドレス変換モジュール25は、アドレス変換キー95および記憶装置30の保護しようとする領域の保護域初期アドレス・シーケンス70(Pi,i=0,1,…,n)に従い、アドレス変換規則60を決定するために使用される。アドレス変換規則60は、保護域アドレスマッピング表65を構成するために使用され、保護域初期アドレス・シーケンス70(Pi,i=0,1,…,n)は、保護域カスタムアドレス・シーケンス(Si,i=0,1,…,n)に変換するために使用される。アドレス変換規則60は、アドレス変換キー95と保護域初期アドレス・シーケンス70(Pi,i=0,1,…,n)をパラメータとする関数を用いて実行することができ、この関数は、定義域(Pi,i=0,1,…,n)と値域(Si,i=0,1,…,n)の1対1の対応を満足しなければならない。以下、説明を目的に、前記関数の生成方法をいくつか説明する。
【0014】
(A)保護域アドレス領域のみをパラメータとして使用する。図4に示すように、保護域初期アドレス・シーケンス70は(0,1,…,1000)であり、したがって、その中のアドレス領域は0〜1000である。アドレス変換規則60は、次のように設定することができる。
f(x)=1000−x
【0015】
したがって、このアドレス変換規則60によれば、保護域初期アドレス・シーケンス70(0,1,…,1000)は、保護域カスタムアドレス・シーケンス75(1000,999,…,0)に変換される。
【0016】
(B)アドレス変換キー95と保護域アドレス領域とをパラメータとして使用する。図5に示すように、保護域初期アドレス・シーケンス70は(0,1,…,499)で、アドレス変換キー95は“a1K9”となるため、そのアドレス変換ASCIIキャラクタコードは、97‐49‐75‐57となる。このキャラクタコードは、未使用の128を使用して延長され、その結果キャラクタコードは、97‐49‐75‐57‐128‐128‐128‐128…となる。その結果アドレス変換規則60は、
f(x)=96−x (0≦x<97の場合)
f(x)=145−x+97 (97≦x<146の場合)
f(x)=220−x+146(146≦x<221の場合)
f(x)=277−x+221 (221≦x<278の場合)
f(x)=405−x+278 (278≦x<406の場合)
f(x)=499−x+406 (406≦x<500の場合)
となる。
【0017】
したがって、このアドレス変換規則60は、保護域初期アドレス・シーケンス70(0,1,…,96…,145…,220…,227,…,499)を保護域カスタムアドレス・シーケンス75(96,95,…,0…,97…,146,…,221,…,406)に変換するために使用される。
【0018】
下記は、記憶装置30の保護域にデータを保存する際に本情報保護装置が取る手順と方法である。
【0019】
1.データ暗号化/復号化モジュール20は、ソースデータ50(Di,i=0,1,…,m)を暗号化データ55(Ri,i=0,1,…,k)に暗号化するために使用される。ソースデータ50の全長は、暗号化データ55の全長に等しいかそれよりも長い。保存されるデータには、明確な連続性がないため、明確な連続性を有さない記憶データの正確で完全な読み取りを防ぐことができ、これにより、保存されたデータの保護を強化することができる。この点について以下の暗号化アルゴリズムを使用し、説明する。
【0020】
暗号化コード90は“SSun”に設定され、その暗号化ASCIIキャラクタコードは、0x53−0x53−0x75−0x6Eとなる。対称アルゴリズムを用いると、暗号化アルゴリズム40は下記となる。
Xi=Xi〜Xi-1(i≠0の場合)
Xi〜0x5353756E(i=0の場合)
ここで、iは8から0で、「〜」は「排他的論理和」操作を示し、Xiの長さ単位は、32ビットである。
【0021】
図6では、暗号化アルゴリズム40は、ソースデータ50(0x645BCF98,0x6839274D,0x4B652188,…,0x7890123E)が、暗号化データ55(0x3708BAF6,0x0C62E8D5,0x235C06C5,…,0x5EA5B9CC)に暗号化するために使用される。
【0022】
2.記憶空間アドレス変換モジュール25を使用して、保護域アドレスマッピング表65に従うか、アドレス変換規則60を直接使用するかして、システム指定アクセス領域初期アドレス・シーケンス80(Ui,i=0,1…,x)が、アクセス領域カスタムアドレス・シーケンス85(Vi,i=0,1,…,x)に変換され、これを順に保存する。図7におけるアドレス変換規則60と保護域アドレスマッピング表65は、図4に示したこれらのものと同じである。システム指定アクセス領域初期アドレス・シーケンス80(1,2,4,6,7,996)は、アクセス領域カスタムアドレス・シーケンス85(999,998,996,994,993,4)に変換される。したがって、暗号化データ55(Ri,i=0,1,2,…,k)は、アクセス領域カスタムアドレス・シーケンス85(999,998,996,994,993,4)に対応する記憶位置に保存される。
【0023】
記憶装置30の保護域にあるデータを読み取る際に必要な手順と方法は以下のとおりである。
【0024】
1.記憶空間アドレス変換モジュール25を使用して、保護域アドレスマッピング表65に従うか、アドレス変換規則60を直接使用するかして、システム指定アクセス領域初期アドレス・シーケンス80(Ui,i=0,1,…,x)をアクセス領域カスタムアドレス・シーケンス85(Vi,i=0,1,…,x)に変換する。図7におけるアドレス変換規則60と保護域アドレスマッピング表65は、図4に示したこれらのものと同じであり、システムによって指定されるアクセス領域初期アドレス・シーケンス80(1,2,4,6,7,996)が、アクセス領域カスタムアドレス・シーケンス(999,998,996,994,993,4)に変換される。したがって、暗号化データ55(Ri,i=0,1,2,…,k)は、アクセス領域カスタムアドレス・シーケンス85(999,998,996,994,993,4)に対応する記憶位置から読み取られる。
【0025】
2.アクセス領域カスタムアドレス・シーケンス85(Vi,i=0,1,…,x)にしたがって、暗号化データ(Ri,i=0,1,2,…,k)を読み取った後、データ暗号化/復号化モジュール20を使用して、復号化コード92と復号化アルゴリズム45とに従って、暗号化データ55(Ri,i=0,1,2,…,k)をソースデータ(Di,i=0,1,…,m)に復号化する。この点について以下の復号化アルゴリズムを使用した説明する。
【0026】
復号化コード92は“SSun”に設定され、その復号化ASCIIキャラクタコードは、0x53−0x53−0x75−0x6Eとなる。対称アルゴリズムを用いると、復号化アルゴリズム45は下記となる。
Xi=Xi〜0x5353756E (i=0の場合)
Xi〜Xi-1(i≠0の場合)
ここで、iは8から0で、「〜」は「排他的論理和」操作を示し、Xiの長さ単位は、32ビットである。
【0027】
図6では、暗号化データ55(0x3708baf6,0x0c62e8d5,0x235c06c5,…,0x5ea5b9cc)が、復号化アルゴリズム45を使用してソースデータ50(0x645bcf98,0x6839274d,0x4b652188,…,0x7890123e)に復号化される。
【0028】
図8および図9は、本発明によるデジタル情報保護方法の別の好適実施形態を示す。本実施形態は、コンピュータシステムなどのデジタル情報保護装置にあるコンピュータ・アクセス可能な記憶媒体に記憶されたコンピュータソフトウェアで、ハードディスクなどの記憶装置に保存されたデジタル情報を保護するためのものである。本実施例のコンピュータソフトウェアプログラムを用いてデジタル情報の保護を実行するための手順と方法を、図8と図9とを参照しながら以下に記述する。
【0029】
まず各記憶アドレスの大きさを1バイトとし、記憶装置の基本記憶構成単位を512バイト(すなわち1セクター)とする。記憶装置の保護されたアドレス領域は、2048バイト目から20973568バイト目までの合計20971520バイトである。
【0030】
本実施例において、プログラムは、図8に示す準備操作と、図9に示す実際のアクセス操作に分けられる。図8に示す準備操作では、3つの異なる変換構成単位に従って、3つのアドレス変換規則がまず生成される。このようにして生成された3つのアドレス変換規則に従い、その後の(図9に示すような)実際のアクセス操作によってアクセスされるアドレスに対しアドレス変換を実行する。
準備操作(図8参照)
1.第1アドレス変換
【0031】
図8の工程11において、プログラムが1024バイトの変換バッチ(以下、「第1変換バッチ」と呼ぶ)を用いて、保護されたアドレスの20971520バイトを20480(20971520バイト/1024バイト)個の第1変換バッチ、すなわち、0〜1023,1024〜2047,2048〜3071,…に分割する。次いで、図3に示すように、4ビットを1つの変換構成単位(以下、「第1変換構成単位」と呼ぶ)として、各第1変換バッチのアドレス領域が、2048(1024バイト/4ビット)個のアドレス・ブロック(以下、「第1アドレス・ブロック」)に変換される。例として、第1番目の第1変換バッチ0〜1023を挙げると、第1アドレス・ブロックは、アドレス・シーケンス[0,1,2,3,…,2047]として表わすことができる。その後、工程12を実行し、パラメータとしてアドレス領域[0,1,2,3,…,2047]を使用して、アドレス・ブロック再配列規則(以下、第1アドレス・ブロック再配列規則)が生成される。例えば、再生不可能な乱数シーケンス配列スキームを用いる。一定時間内のコンピュータ稼働率、ハードディスクアクセス速度、ネットワークアクセスデータ量などの情報に基づいて乱数シーケンスを生成し、この乱数シーケンスの範囲は、0〜2047、例えば、[231,1038,3,49,26,322,…]に調節される。そして、この乱数シーケンスのi番目の位置のアドレスと、アドレス・シーケンスのi番目のアドレスとを交換する。例えば、アドレス・シーケンスの0番目のアドレス、すなわち、「0」と、乱数シーケンス0番目の位置のアドレス、すなわち、「231」とを交換する。また、アドレス・シーケンスの1番目のアドレス、すなわち、「1」は、乱数シーケンス1番目の位置のアドレス、すなわち、「1038」と交換される。このようにして、図10に示すようなアドレス・ブロック変換表(以下、第1アドレス・ブロック変換表)[231,1038,73,27,…]が生成される。
【0032】
2番目の第1変換バッチの第1アドレス・ブロック変換表は、1番目の第1アドレス・ブロック変換表の数値を2048で変換(加算)したもの、等等である。このようにして、第1変換バッチの全て(20480バッチ)について、第1アドレス・ブロック変換表が得られる。
【0033】
前述した乱数シーケンスは再生できないので、プログラムは、この乱数シーケンスまたは第1アドレス・ブロック変換表を保存して、これらを今後のデータアクセスの際のアドレス変換に容易に使用できるようにする必要がある。
【0034】
2.第2アドレス変換
工程13では、図11に示すように81920バイトを1つの変換バッチ(以下、第2変換バッチ)として、プログラムが、保護された20971520バイトのアドレスを256個(20971520バイト/81920バイト)の第2変換バッチ、すなわち、0〜81919,81920〜163839,163840〜245759,…、に分割する。次いで、図11に示すように、640バイトを1つの変換構成単位(以下、「第2変換構成単位」と呼ぶ)として使用して、各第2変換バッチのアドレス領域は、128(81920バイト/640バイト)個のアドレス・ブロック(以下、「第2アドレス・ブロック」)に変換される。例えば、第1番目の第2変換バッチである0〜81919の場合、変換された第2アドレス・ブロックはアドレス・シーケンス[0,1,2,3,…127]と表すことができる。その後、工程14を実行し、パラメータとしてアドレス領域 [0,1,2,3,…,127]を使用して、アドレス・ブロック再配列規則(以下、第2アドレス・ブロック再配列規則)が生成される。例えば、アドレス・シーケンス[0,1,2,3,…127]の再配列にデータ暗号化標準(以下、DES、data encryption standard)を用いた暗号化シーケンス配列スキームが使用される。まず、アドレス・シーケンス[0,1,2,3,…]をバイナリー形式のバイナリー番号シーケンス[0000000,0000001,0000010,0000011,…]で表す。次いで、DES計算プロセスを使用して、このバイナリ番号シーケンス[0000000,0000001,0000010,0000011,…]を、例えば、「1h%j9〜&f」などのコードを使用して、[0101000,1000100,1100000,0011000,…]、(これは10進法では[40,68,96,24,…]となる)に暗号化する。そして、この番号シーケンスのi番目の位置のアドレスと、アドレス・シーケンスのi番目のアドレスとを交換する。例えば、アドレス・シーケンスの0番目のアドレス、すなわち、「0」と、番号シーケンスの0番目のアドレス、すなわち、「40」とを交換する。また、アドレス・シーケンスの1番目のアドレス、すなわち、「1」は、番号シーケンス1番目の位置のアドレス、すなわち、「68」とを交換する。このようにして、図11に示すアドレス・ブロック変換表(以下、第2アドレス・ブロック変換表)[40,68,101,8,…]を得ることができる。2番目の第2変換バッチの第2アドレス・ブロック変換表は、1番目の第2アドレス・ブロック変換表の数値を128で変換(加算)したもの、等等である。このようにして、第2変換バッチの全て(256バッチ)について、第2アドレス・ブロック変換表が得られる。
【0035】
さらに、前述した番号シーケンスは、暗号化プロセスを使用して生成されるため、プログラムは、暗号化コードを保存して、これらを今後のデータアクセスのために同じアドレス変換に使用できるようにする必要がある。
【0036】
3.第3アドレス変換
工程15において、プログラムは、第3の変換のための変換バッチ(以下、第3変換バッチ)を20971520バイト(すなわち、保護されたアドレス領域の大きさに相当)に設定し、81920バイトを1つの変換構成単位(以下、第3変換構成単位)とし、この20971520バイトの第3変換バッチは、256個(20971620バイト/81920バイト)のアドレス・ブロック(以下、第3アドレス・ブロック)に変換される。したがって、変換された第3アドレス・ブロックは、アドレス・シーケンス[0,1,2,3,…,255]として表される。その後、工程16が、アドレス領域 [0,1,2,3,…,255]をパラメータとして、アドレス・ブロック再配列規則(以下、第3アドレス・ブロック再配列規則)を生成するために、実行される。例えば、シードを27498としたコンピュータのRand関数を使用した再生可能な乱数シーケンス配列スキームを用い乱数シーケンスを0から255の範囲、例えば、[12,187,3,49,26,244,…]を調整することができる。その後、アドレス・シーケンス内のi番目のアドレスが、乱数シーケンス内のi番目のアドレスと交換される。例えば、アドレス・シーケンスの0番目のアドレス、すなわち、「0」と、乱数シーケンスの0番目のアドレス、すなわち、「12」とを交換する。また、アドレス・シーケンスの1番目のアドレスは、乱数シーケンス1番目の位置のアドレス、すなわち、「187」と交換される。このようにして、図12に示すアドレス変換表(以下、第3アドレス変換表)[12,187,36,28,…]を得ることができる。
【0037】
さらに、前述した乱数シーケンスは、再生可能な乱数シーケンス配列スキームを使用して生成されるため、プログラムは、コンピュータのRand関数のシード値を記憶し、将来、データアクセスのために同じアドレス変換表を容易に使用できるようにする必要がある。
【0038】
従って、図9の工程21で、記憶装置上にデータを書き込ませるためのコンピュータの要求をコンピュータのオペレーティングシステムからプログラムが受信した場合について考える。例えば、記憶装置30の2043番目〜2057番目のバイトアドレスにデータを書き込もうとする場合、データが書き込まれるアドレスのいくつかは保護されていない領域、すなわち、2043番目〜2047番目のバイトを含むので、プログラムは、まず、(データ書込み操作を直接実行して)保護されていない領域へのデータ書込みをできるようにし、その後、保護領域、すなわち、2048番目〜2057番目のバイトへのデータ書込みができるようにする。
【0039】
さらに、本実施形態におけるデータは保存前に暗号化され、復号化/暗号化の各プロセスで処理されるデータの量は8バイトであることから、プログラムは、書込みレンジを2048番目〜2063番目のバイト(すなわち8バイトの整数倍)に調節する必要があり、このデータの暗号化および書き込みを2つの操作で実行する。また、データが初めて書きこまれる領域、すなわち、2048番目〜2055番目のバイトまでは、その全域のアップデートが必要なデータ領域であるため、プログラムは、データ読取りを最初に実行しなくてもよい。書込み操作は、データの暗号化の後、直接実行してもよい。
例えば、書き込もうとするデータが、
0x75,0x52,0x21,0x67,0x45,0x9A,0xB5,0xC3,
であるとする。この場合、暗号化コード[9dY2aB]を使用した、デジタルデータの暗号化(DES)の結果生み出される暗号化データは、
0x9D,0xC5,0xF7,0x11,0x0A,0x83,0x17,0x44
である。
【0040】
従って、データを記憶装置30に書き込む前に暗号化データを保護するため、本発明のプログラムは、このアドレス領域に3つの変換を行えるようにしている。すなわち、最初にデータが書き込まれる2048番目〜2055番目のバイトのアドレス領域には、上で生成した第1、第2および第3アドレス・ブロック再配列規則に従った3つのアドレス変換が行われ、暗号化データの書き込みアドレスが見出される。
【0041】
実際のアクセス操作(図9参照)
1.第1アドレス変換
まず工程22において、プログラムは、アドレス・バッチ2048〜2055が属する第1変換バッチを決定し、アドレス・バッチ2048〜2055が、前述した第1変換バッチの1つ、すなわち、0〜1023に属することを認識する。従って、書込みアドレス領域、すなわち、2048番目〜2055番目のバイト、(全長8バイト)は、第1変換構成単位(すなわち4ビット)に基づき16のアドレス・ブロックに変換され、これがアドレス・シーケンス[0,1,2,…,15]として表される。この後、工程23が、このアドレス・シーケンス[0,1,2,…,15]に対応する再配列アドレス・シーケンス[231,1038,73,23,…](以下、第1アドレス・シーケンス)を検索するために、実行される。この対応は、アドレス・ブロック再配列規則に従って生成された第1アドレス・ブロック変換表に基づく。
【0042】
2.第2アドレス変換
まず工程24において、ブログラムは、第1アドレス・シーケンスの値が属する第2変換バッチを決定する。変換後の第1アドレス・シーケンス[231,1038,73,23,…]の全ての値が、0〜1280(1280=640バイト/4ビット)になるものと仮定して、0〜1280アドレス・バッチは、第2アドレス変換の第2変換バッチの最初のバッチに属し、第2アドレス・ブロックの最初のアドレス領域、すなわち、第2ブロックアドレス・シーケンス[0,1,2,…,128]の[0]内に位置づけられる。工程24において、プログラムは、第2アドレス・ブロック再配列規則に基づいて生成された第2アドレス・ブロック変換表から、第2アドレス・ブロック変換表[40,68,101,8,…]の値の中で、第2アドレス・ブロックの最初の値[0]に対応する値が、[40]であることを見出す。したがって、第1アドレス・シーケンス内のアドレスは、40番目の第2アドレス・ブロックのアドレス領域に変換される。すなわち、第1アドレス・シーケンス[231,1038,73,23,…]の各値に51200(40×1280バイト)が加算され、各第2ブロックのアドレス領域は1280バイトとなる。このようにして、第2アドレス・シーケンス[51431,52238,51203,51202,…]を得ることができる。
【0043】
3.第3アドレス変換
同様にして工程25において、プログラムは、第2アドレス・シーケンス[51431,52238,51203,51202,…]が属する第3変換バッチをまず決定し、第2アドレス・シーケンス[51431,52238,51203,51202,…]内の全ての数値が、0〜163840(163840=81920バイト/4ビット)の範囲内、すなわち、第3アドレス・ブロックの最初の領域、つまり、第3変換バッチの第3アドレス・ブロック・シーケンス[0,1,2,3,…,256]内の最初の値[0]にあることを確認する。さらに、第3アドレス・ブロック再配列規則に基づいて生成された第3アドレス・ブロック変換表[12,187,36,28,…]から、第3アドレス・ブロック変換表[12,187,36,28,…]の値の中で、第3アドレス・ブロックの最初の値、すなわち、[0]が対応する値は、[12]であることが分かる。したがって、第2アドレス・シーケンスのアドレスは、第3変換バッチの第3アドレス・ブロックにおける12番目のアドレス領域に変換される。すなわち、第2アドレス・シーケンス[231,1038,73,23,…]の各値に1966080(12×163840バイト)が加算され、各第3アドレス・ブロックのアドレス領域は163840バイトとなる。このようにして、第3アドレス・シーケンス[2017511,2018318,2017283,2017282,…]を得ることができる。
【0044】
最後に工程26において、プログラムは、第3アドレス・シーケンスのアドレスを、データが、記憶装置の記憶構成単位に基づいて記憶装置30に実際に書き込まれるアドレスに変換する。例えば、記憶装置30の記憶単位が、512バイト(1セクター)であるとして、この記憶装置の書込みアドレスに対応する第3アドレス・シーケンス中のアドレスは、それぞれ[1970.xx,1971.xx,1970.xx,1970.xx,…]であり、ここで、1970.xxは、2017511/1024(512バイト/4ビット)=1970…231(残部)、すなわち、1970セクターの231番目のアドレスを意味する。
【0045】
その後、暗号化された8バイトデータが、4ビットの書込み構成単位で表される16のデータブロックに分けられてから、このデータが、記憶装置30の書込みアドレス[1970.xx,1971.xx,1970.xx,1970.xx,…]に書き込まれる。すなわち、各データブロックは、各書き込みアドレスの最初の4ビットか、または最後の4ビットに記録される。
【0046】
第1データ書込みを完了した後、プログラムは、第2データ書込み処理を行う。第2データ書込み領域2056番目〜2063番目のバイトの内、2058番目〜2063番目のバイトのデータは更新されないので、プログラムは、まず、2056〜2063バイト目のデータを読み込み、このデータを復号化し、2056番目〜2057番目のバイトのデータを更新してから、再度すべてのデータを暗号化する必要がある。その後、アドレス変換後の2056番目〜2063番目のバイトのアドレスの再配列されたアドレス(すなわち第3アドレス)を上述した方法で見出し、これを記憶装置30上の実際の書込みアドレスに変換する。続いて、暗号化データが記憶装置30に書き込まれる。
【0047】
以上の記述から明らかなように、本実施形態のデジタル情報保護装置における記憶装置の保護されたアドレス領域は、異なるアドレスに再マップされる異なる変換規則を用いた複数の変換(本実施形態では3つの変換を用いるが、2つの変換または1つの基本変換でもよい)が施され、保護されたアドレス領域に書き込まれたデータが、保護されたアドレス領域の不連続なアドレスに分散および分配できるようにする。このようにして、記憶装置に保存されたデータが盗まれた場合でも、分散したデータは最初の暗号化データに再構築されず、これにより、この記憶装置に保存されたデータを十分かつ強力に保護することができる。
【0048】
図13は、本発明によるデジタル情報保護方法の別の実施形態を示すもので、有線または無線ネットワークを通じてデータを送信するサーバー端またはクライアント端に適用され、送信端(サーバー端またはクライアント端)から送信されるデータのセグメントを保護するためのものである。したがって、本実施形態のデジタル情報保護方法は、サーバー端、および/またはクライアント端に配置された(コンピュータシステムなどの)デジタル情報保護装置のコンピュータによるアクセスが可能な記録媒体にあるコンピュータソフトウェアプログラムの形態で実施され、クライアント端からサーバー端に向けて送信されるデジタル情報、および/またはサーバー端からクライアント端に向けて送信されるデジタル情報の保護を目的とする。
【0049】
プリセットデータ構成単位が1バイトで、送信される単位データ量が8バイトの場合を例に使用すると、サーバー端とクライアント端とが互いにデータを送信する場合、通信接続がまず確立される。通信接続が確立された後、識別認証、保護域開始・終了通信、記憶空間アドレス変換規則およびコード通信、データ暗号化/復号化およびコード通信が行われる。以下、識別認証手順について、従来の認証方法を使用して簡単に説明する。
【0050】
識別認証の際、サーバー端およびクライアント端のそれぞれは、それ自身のパブリックキーインフラストラクチャ(PKI)を保有する。まずクライアント端が、識別認証値としてランダム・シーケンス信号を生成する。例えば、シード値として現在のCPUの稼働率を、[32,145,204,9,158,3,222,68]などの8連続バイトをRand関数によって取得し、さらに2種類の16連続バイトを、1つは保護域開始信号、例えば、[129,33,56,188,7,8,251,2,139,193,6,88,27,18,201,12]、もう1つは保護域終了信号、例えば、[42,111,2,38,107,248,51,72,10,31,176,238,9,45,35,142]などとして、Rand関数を使用して取得する。さらに、プリセット変換スキーム(詳細下記)を使用してアドレス変換規則を設定し、アドレス変換コードは、Rand関数を使用して取得される4連続バイトの値、例えば[13,213,6,88]などに設定される。暗号化/復号化には、プリセットDES(デジタル暗号化標準)が用いられる。暗号化コードは、Rand関数を使用して得られる8連続バイト、例えば、[6,23,145,231,255,9,83,121]などの値である。
【0051】
従って、クライアント端が通信開始および終了信号、アドレス変換規則および変換コードを確立し設定すると、このようなデータは、認証機関から入手、またはクライアント端に事前に保存され、サーバー端に送信されるパブリックキーを基に暗号化される。
【0052】
サーバー端が上述のデータを受信した後、このサーバー端は、そのプライベートキーを使用して受信データを復号化する。また、サーバー端は、認証機関から入手またはサーバー端に事前に保存されたクライアント端のパブリックキーを使用した復号化から得られる識別認証値(ランダムシーケンス信号)を暗号化し、これをクライアント端に送信する。
【0053】
クライアント端がサーバー端から確認データを受信した後、クライアント端は、そのプライベートキーを用いて受信データを復号化し、復号化から得られる識別認証(ランダムシーケンス信号)を、以前に生成した識別認証値と比較して、サーバー端の識別を確認する。
【0054】
同じ確認手続きがサーバー端において、反対の方向、すなわち、サーバー端からクライアント端に向けて開始され、確認される。その後、クライアント端およびサーバー端は、それぞれの保護域開始信号を送ることができるようになり、送信前に暗号化とアドレス変換規則によるデータ暗号化とを使用してデータを保護する。サーバー端またはクライアント端が保護域開始信号を相手方から受信する際、通信手順に規定されるスキームを使用して受信データを変換し、また正しいデータを得るためにこのデータを復号しなければならない。
【0055】
さらに、保護されたデータ文字列を送信する場合、送信される有効データのバイト数を文字列開始のフィールドに記録し、送信されるデータの量を8バイトの単位データ量の整数倍とする必要があるが、欠陥は乱数または他の任意の数によって補償される。例えば、59バイトのデータを送信する場合、このデータ文字列の最初の2バイトは数値59を記録するために用いられ、3バイトの空白データをデータ文字列の後に加え(すなわち、59+2+3=64)、8組の8バイトデータを構成する必要がある。
【0056】
暗号化の手順は上述したものと同じであり、簡便性のためここでの再記述は省略する。これら8組のデータが、〔0x23,0x43,0xF6,0xA8,0x07,0x8D,0x51,0x92〕〔…〕〔…〕〔…〕〔…〕〔…〕〔…〕〔…〕に暗号化されるものとする。
【0057】
本実施形態のデジタル情報保護法を図13の工程61に示す。まず、図14に示すように、プログラムが、保護されるべき保護されたアドレス領域の変換を許可する。すなわち、本実施形態の各データセットの8バイトアドレス領域を、例えば、2ビットのプリセット変換構成単位によって32(8バイト/2ビット)のアドレス・ブロックに分ける。続いて、工程62において、プログラムは、パラメータとしてアドレス・ブロック再配列規則を生成するために、アドレス・ブロックを使用し、本実施形態においては、修正合同法(D.E.Knuth,The Art of Computer Programming,Vol.2:Seminumerial Algorithms,Chapter 3,Addison−Wesley,1969、参照)をランダム・シーケンス生成法として採用する。この生成法では、プリセットアドレス変換コード[13,213,6,88]に従い、素数Prm1が373から選定される13番目の素数、すなわち、443である(ここで、373は無作為に選ばれた数字で、大きくなりすぎないようにするべきである。これは、素数[443,1871,401,947]を順次選定した後に決定される素数計算式{Rm[i+1]=MOD(Mult….)}の計算値が、プロセッサの数値範囲を越えないようにするためである。)。素数Prm2は、373からの213番目の素数1871である。Plsは、373からの6番目の素数401である。乱数シーケンスの初期値Rm[0]は、373からの88番目の素数947である。
【0058】
乱数シーケンス値は下記によって計算される:
Mult=Prm1×Prm2+1=165240
Div=Prm1×Prm2×Prm2=61634147
Rm[i+1]=MOD(Mult×Rm[i]+Pls,Div)=Mod(165240×Rm[i]+401,61634147)
Rm=[947,33214387,9420372,51887196,37346565,27432626,22145379,21484824,25450961,34043790,47263311,3475377,25948282,…]。合計32の値が得られる。
【0059】
Rmの値を合計32の剰余値Rma:[19,19,20,28,5,18,3,24,17,14,15,17,26,…]を得るために、それぞれ32で割る。
【0060】
次いで、Rma[i]番目のアドレスの数値が順次[i]番目のアドレスに保存される。もし、Rma[i]の値がすでに使用されている場合には、Rma[i]の増分値(32で除した際の剰余で、これまでに使用されていない値まで増加させた値)が、[i]番目のアドレスに保存される。このようにして、図14に示すアドレス・ブロック変換表RM、[19,20,21,28,5,18,3,24,17,14,15,22,26…]を得ることができる。
【0061】
従って、前述したアドレス変換規則とアドレス・ブロック変換表RMとが構成された後、アドレス・バッチ(すなわち8バイトの保護されたアドレス領域)に第1セットの暗号化データをロードしたい場合には、工程63で、1変換構成単位として、2ビットを使用して、8バイトのアドレス空間が、まず、32のアドレス・ブロックに変換される。その後、アドレス・ブロック変換表RMに基づいて、アドレス・バッチ中のアドレス・ブロックのアドレスを再配列する。次いで、暗号化データの第1セットを、1保存構成単位として2ビットを使用して、32のデータブロックに分ける。これは10進法で、[0,2,0,3,1,0,0,3,3,3,1,2,2,2,2,0,0,0,3,3,2,0,3,1,2,2,0,1,2,1,0,2]として表される。工程65では、この32のデータブロックは、再配列された32のアドレス・ブロックに順次保存される。従って、図14に示すように、再配列された32のアドレス・ブロックに順次保存された後の暗号化データの第1セットは、[3,2,0,2,0,3,3,2,0,2,0,3,0…]となる。同様に、暗号化データの第2から第8セットは、前述の変換スキームを使用して再配列され、その後、これらのデータが上述の方法で送信される。
【0062】
以上から明らかなように、本実施形態では、データの送信前に、変換構成単位に基づき複数のアドレス・ブロックに送信される単位データ量によって占められたアドレス・バッチ(すなわち、前述の保護されたアドレス領域)を変換するためのデジタル情報保護装置を送信端に設け、このアドレス・ブロックに基づいて、アドレス変換規則を生成し、この規則からアドレス変換表を生成することにより、前記データによって占められたアドレス・バッチが、前記変換構成単位に基づいて複数のアドレス・ブロックに変換され、さらに、アドレス・ブロックのアドレスが、前に生成されたアドレス変換規則またはアドレス変換表に従って再配列される。その後、データは、再配列されたアドレス・ブロックに順次ロードされ、データシーケンスを形成して、その後、送信される。このように、データは、送信前に十分に分散されるので、送信プロセスの途中で万一の中断があったとしても暗号化データを元の暗号化データに再構成することができず、これにより送信プロセスの間に完全かつ強固な保護が提供される。
【0063】
さらに、デジタル情報保護方法は、コンピュータシステムに保存されるように構成されたコンピュータプログラムソフトウェアとして実施されているが、本発明の方法は、集積回路、電子回路、1回プログラムで制御できる電子回路(またはプログラマブル論理回路)で中央演算回路含む、または含まないもの、および論理計算能力を有するものでも実施することができる。
【0064】
さらに、暗号化データのクラッキングに通じるアドレス変換スキームへの権限のないアクセスを防止するため、第1の好適な実施形態で実行された複数(3つ)の変換手順を異なる装置で実行し制御することもできる。例えば、ユーザによって入力されたコードを第1アドレス変換の変換コードとして使用し、ユーザによってコンピュータシステムに挿入されたチップカードから読み取られた変換表を第2アドレス変換の実行に使用し、さらにネットワークサーバーが、第3アドレス変換を制御し実行することができる。このような制御スキームは、前述した準備操作および実際のアクセス操作に適用することができる。
【0065】
さらに、アドレス変換規則、アドレス変換表、または上記実施形態で生成される変換コードは、磁気カード、CD、DVD、スマートカード、RAMディスク、チップカード、RF装置、赤外線発光ダイオード装置など、磁気的性質、光学、集積回路、電子回路または電磁波を利用した読み取り用(または書込み用)記憶媒体に保存することができる。また、前述の変換コードを、キーボードを介してユーザが入力する、またはユーザの生物学的特質から得ることにより、アドレス変換スキームへの安易なアクセスをさらに防ぐことができる。
【0066】
以上、本発明を最も実用的で好適と考えられる実施形態に関連付けて記述したが、本発明は開示した実施形態に限定されるものでは無く、最も広い解釈の精神と範囲内に含まれる様々な構成を含むことを意図するもので、このような改良と等価な構成のすべてを包含するものであるものと理解される。
【図面の簡単な説明】
【0067】
【図1】本発明の一つ実施形態における主機能ブロックを示す図である。
【図2】本発明の別の好適な実施形態における主機能ブロックを示す図である。
【図3】本発明のさらに別の好適な実施形態における主機能ブロックを示す図である。
【図4】本発明の好適な実施形態における、所定のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
【図5】本発明の好適な実施形態における、別のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
【図6】ソースデータを暗号化アルゴリズムを使用して暗号化し、暗号化データを復号化アルゴリズムを使用してソースデータに復号する例を模式的に示す。
【図7】本発明の好適な実施形態において、システム指定アクセス領域初期アドレス・シーケンスが、どの様にアクセス領域カスタムアドレス・シーケンスに変換されるかを模式的に示す。
【図8】本発明によるデジタル情報保護方法の別の実施形態における準備操作フロー図である。
【図9】好適な実施形態における実際のアクセス操作のフロー図である。
【図10】好適な実施形態における第1アドレス変換を説明する模式図である。
【図11】好適な実施形態における第2アドレス変換を説明する模式図である。
【図12】好適な実施形態における第3アドレス変換を説明する模式図である。
【図13】本発明によるデジタル情報保護方法のさらに別の実施形態におけるフロー図である。
【図14】本好適実施形態におけるアドレス変換を説明する模式図である。
【技術分野】
【0001】
本発明は、データ保護の方法および装置に関し、さらに詳しくは、デジタル情報を保護し、デジタル情報への権限の無いアクセスを防止できるようにするための方法および装置に関する。
【背景技術】
【0002】
コンピュータ技術の発展に伴い、ほとんど全ての政府機関、研究所、学術団体および会社は、書類やファイルの作成にコンピュータを使用する。さらに、コンピュータ周辺記憶装置の急速な発展とともに、重要書類、ファイルデータ、技術データ、機密データおよびこれらのバックアップデータの保存にこれらの記憶装置が使用される。書類やファイルの保存に記憶装置を使用すれば、データを作成したり、検索するための時間が短縮されるばかりでなく、紙の使用を減らし、さらに保存されたデータの寿命を延ばすことができる。加えて携帯型記憶装置は保存が容易な上、搬送に便利で小型のため、ユーザはデータおよびバックアップデータの保存に携帯型記憶装置を頻繁に使用している。しかしながら、携帯型記憶装置の利便性は、コンピュータに保存されたデータの漏出の危険性を増大させる。このような欠点を克服するため、暗号化を用いた様々なデータ保護方法が提案されている。それにも関わらず、暗号化されたデータは、多くのコンピュータを使用し膨大な計算を行えば解読することができるため、保護されたデータが盗難後に回復できないよう、いかにデータのセキュリティーを向上させるかが最大の関心事となっている。
【発明の開示】
【発明が解決しようとする課題】
【0003】
したがって、本発明の目的は、保護されたデジタル情報が容易に再構築されたり回復されたりすることのないデジタル情報の保護方法を提供することである。
【課題を解決するための手段】
【0004】
本発明の1つの観点におけるデジタル情報の保護方法は、
(A)プリセット変換構成単位に基づいて、保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとしてこのアドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
(B)データを前記保護されたアドレス領域のアドレス・バッチにロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
(C)アドレス・ブロック再配列規則に従って、保護されたアドレス領域中のアドレス・ブロックの再配列されたアドレスを検索するステップ、およびこの再配列されたアドレスに前記データをロードするステップと、
を含む。
【0005】
本発明の別の観点におけるデジタル情報の保護方法は、
(A)保護されたアドレス領域を複数の第1変換バッチに分割するステップ、第1変換構成単位に基づいて、各々の第1変換バッチのアドレス領域を複数の第1アドレス・ブロックに変換するステップ、およびパラメータとしてこの第1アドレス・ブロックを使用して、第1アドレス・ブロックを再配列するために第1アドレス・ブロック再配列規則を生成するステップと、
(B)保護されたアドレス領域を複数の第2変換バッチに分割するステップ、プリセット第2変換構成単位に基づいて、各々の第2変換バッチのアドレス領域を複数の第2アドレス・ブロックに変換するステップ、およびパラメータとしてこの第2アドレス・ブロックを使用して、第2アドレス・ブロックを再配列するために第2アドレス・ブロック再配列規則を生成するステップと、
(C)保護されたアドレス領域を少なくとも1つの第3変換バッチに分割するステップ、プリセット第3変換構成単位に基づいて、前記少なくとも1つの第3変換バッチのアドレス領域を複数の第3アドレス・ブロックに変換するステップ、およびパラメータとしてこの第3アドレス・ブロックを使用して、第3アドレス・ブロックを再配列するために第3アドレス・ブロック再配列規則を生成するステップと、
(D)データを前記保護されたアドレス領域のアドレス・バッチにロードする場合には、前記アドレス・バッチが属する第1変換バッチを決定するステップ、前記第1変換構成単位に基づいて、前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第1、第2、第3アドレス・ブロック再配列規則に従って、保護されたアドレス領域内のアドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された再配列されたアドレスにロードすること、
を含む。
【0006】
本発明のさらなる特徴および利点は、図面を参照しつつ下記する好適な実施形態の詳細な記述によって明らかになるであろう。
図1は、本発明の一つ実施形態における主機能ブロックを示す図である。
図2は、本発明の別の好適な実施形態における主機能ブロックを示す図である。
図3は、本発明のさらに別の好適な実施形態における主機能ブロックを示す図である。
図4は、本発明の好適な実施形態における、所定のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
図5は、本発明の好適な実施形態における、別のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
図6は、ソースデータを暗号化アルゴリズムを使用して暗号化し、暗号化データを復号化アルゴリズムを使用してソースデータに復号する例を模式的に示す。
図7は、本発明の好適な実施形態において、システム指定アクセス領域初期アドレス・シーケンスが、どの様にアクセス領域カスタムアドレス・シーケンスに変換されるかを模式的に示す。
図8は、本発明によるデジタル情報保護方法の別の実施形態における準備操作フロー図である。
図9は、好適な実施形態における実際のアクセス操作のフロー図である。
図10は、好適な実施形態における第1アドレス変換を説明する模式図である。
図11は、好適な実施形態における第2アドレス変換を説明する模式図である。
図12は、好適な実施形態における第3アドレス変換を説明する模式図である。
図13は、本発明によるデジタル情報保護方法のさらに別の実施形態におけるフロー図である。
図14は、本好適実施形態におけるアドレス変換を説明する模式図である。
【発明を実施するための最良の形態】
【0007】
本発明を詳述する前に、本開示を通じて同様な要素は同一の符合によって表されることに留意するべきである。
【0008】
図1は、本発明の好適な第1実施形態の主要機能を示すブロック図で、図中のハードウェア・システム10は、データ暗号化/復号化モジュール20と記憶空間アドレス変換モジュール25とを含むコンピュータ11、ならびに、記憶装置30を含む周辺記憶装置12を備える。図2は、本発明の好適な第2実施形態の主要機能を示すブロック図で、図中のハードウェア・システム10は、データ暗号化/復号化モジュール20を含むコンピュータ11、ならびに、記憶空間アドレス変換モジュール25と記憶装置30とを含む周辺記憶装置12を備える。図3は、本発明の好適な第3実施形態の主要機能を示すブロック図で、図中のハードウェア・システム10は、コンピュータ11、ならびに、データ暗号化/復号化モジュール20と記憶空間アドレス変換モジュールと記憶装置30とを含む周辺記憶装置12を備える。
【0009】
記憶空間アドレス変換モジュール25の機能は以下の通りである。(1)アドレス変換キー95と保護域初期アドレス・シーケンス70とに従いアドレス変換規則60を設定し、このアドレス変換規則60を使用して保護域アドレスマッピング表65を構成し、これにより保護域初期アドレス・シーケンス70を保護域カスタムアドレス・シーケンス75に変換する。(2)保護域アドレスマッピング表65を使用してアクセス領域初期アドレス・シーケンス80に対応するアクセス領域カスタムアドレス・シーケンス85を取得するか、またはアドレス変換規則60に従い計算を行ってアクセス領域初期アドレス・シーケンス80に対応するアクセス領域カスタムアドレス・シーケンス85を取得する。
【0010】
データ暗号化/復号化モジュール20の機能は以下の通りである。
(1)暗号化コード90と暗号化アルゴリズム40とに従い、暗号化ソースデータ50を暗号化データ55に暗号化する。(2)復号化コード92と復号化アルゴリズム45とに従い、暗号化データ55をソースデータ50に復号する。
【0011】
データを記憶装置30の保護域に保存しようとする場合には、データ暗号化/復号化モジュール20は、ソースデータ50を暗号化データ55に暗号化するために使用され、それから、記憶空間アドレス変換モジュール25は、システム指定のアクセス領域初期アドレス・シーケンス80に対応するアクセス領域カスタムアドレス・シーケンス85を取得するために使用される。その後、暗号化データ55は、アクセス領域カスタムアドレス・シーケンス85に対応する記憶位置に保存される。一方、データを読み取る際には、記憶空間アドレス変換モジュール25は、システム指定アクセス領域初期アドレス・シーケンス80に対応するアクセス領域カスタムアドレス・シーケンス85を取得するために使用され、それからアクセス領域カスタムアドレス・シーケンス85に対応する記憶位置から暗号化データ55が読み取られる。その後、暗号化/復号化モジュール20は、暗号化データ55をソースデータ50に復号するために使用される。
【0012】
以上が本発明の主要機能の概要である。本発明のデジタル情報保護装置を用いた初期化プロセスについて以下に述べる。
【0013】
記憶空間アドレス変換モジュール25は、アドレス変換キー95および記憶装置30の保護しようとする領域の保護域初期アドレス・シーケンス70(Pi,i=0,1,…,n)に従い、アドレス変換規則60を決定するために使用される。アドレス変換規則60は、保護域アドレスマッピング表65を構成するために使用され、保護域初期アドレス・シーケンス70(Pi,i=0,1,…,n)は、保護域カスタムアドレス・シーケンス(Si,i=0,1,…,n)に変換するために使用される。アドレス変換規則60は、アドレス変換キー95と保護域初期アドレス・シーケンス70(Pi,i=0,1,…,n)をパラメータとする関数を用いて実行することができ、この関数は、定義域(Pi,i=0,1,…,n)と値域(Si,i=0,1,…,n)の1対1の対応を満足しなければならない。以下、説明を目的に、前記関数の生成方法をいくつか説明する。
【0014】
(A)保護域アドレス領域のみをパラメータとして使用する。図4に示すように、保護域初期アドレス・シーケンス70は(0,1,…,1000)であり、したがって、その中のアドレス領域は0〜1000である。アドレス変換規則60は、次のように設定することができる。
f(x)=1000−x
【0015】
したがって、このアドレス変換規則60によれば、保護域初期アドレス・シーケンス70(0,1,…,1000)は、保護域カスタムアドレス・シーケンス75(1000,999,…,0)に変換される。
【0016】
(B)アドレス変換キー95と保護域アドレス領域とをパラメータとして使用する。図5に示すように、保護域初期アドレス・シーケンス70は(0,1,…,499)で、アドレス変換キー95は“a1K9”となるため、そのアドレス変換ASCIIキャラクタコードは、97‐49‐75‐57となる。このキャラクタコードは、未使用の128を使用して延長され、その結果キャラクタコードは、97‐49‐75‐57‐128‐128‐128‐128…となる。その結果アドレス変換規則60は、
f(x)=96−x (0≦x<97の場合)
f(x)=145−x+97 (97≦x<146の場合)
f(x)=220−x+146(146≦x<221の場合)
f(x)=277−x+221 (221≦x<278の場合)
f(x)=405−x+278 (278≦x<406の場合)
f(x)=499−x+406 (406≦x<500の場合)
となる。
【0017】
したがって、このアドレス変換規則60は、保護域初期アドレス・シーケンス70(0,1,…,96…,145…,220…,227,…,499)を保護域カスタムアドレス・シーケンス75(96,95,…,0…,97…,146,…,221,…,406)に変換するために使用される。
【0018】
下記は、記憶装置30の保護域にデータを保存する際に本情報保護装置が取る手順と方法である。
【0019】
1.データ暗号化/復号化モジュール20は、ソースデータ50(Di,i=0,1,…,m)を暗号化データ55(Ri,i=0,1,…,k)に暗号化するために使用される。ソースデータ50の全長は、暗号化データ55の全長に等しいかそれよりも長い。保存されるデータには、明確な連続性がないため、明確な連続性を有さない記憶データの正確で完全な読み取りを防ぐことができ、これにより、保存されたデータの保護を強化することができる。この点について以下の暗号化アルゴリズムを使用し、説明する。
【0020】
暗号化コード90は“SSun”に設定され、その暗号化ASCIIキャラクタコードは、0x53−0x53−0x75−0x6Eとなる。対称アルゴリズムを用いると、暗号化アルゴリズム40は下記となる。
Xi=Xi〜Xi-1(i≠0の場合)
Xi〜0x5353756E(i=0の場合)
ここで、iは8から0で、「〜」は「排他的論理和」操作を示し、Xiの長さ単位は、32ビットである。
【0021】
図6では、暗号化アルゴリズム40は、ソースデータ50(0x645BCF98,0x6839274D,0x4B652188,…,0x7890123E)が、暗号化データ55(0x3708BAF6,0x0C62E8D5,0x235C06C5,…,0x5EA5B9CC)に暗号化するために使用される。
【0022】
2.記憶空間アドレス変換モジュール25を使用して、保護域アドレスマッピング表65に従うか、アドレス変換規則60を直接使用するかして、システム指定アクセス領域初期アドレス・シーケンス80(Ui,i=0,1…,x)が、アクセス領域カスタムアドレス・シーケンス85(Vi,i=0,1,…,x)に変換され、これを順に保存する。図7におけるアドレス変換規則60と保護域アドレスマッピング表65は、図4に示したこれらのものと同じである。システム指定アクセス領域初期アドレス・シーケンス80(1,2,4,6,7,996)は、アクセス領域カスタムアドレス・シーケンス85(999,998,996,994,993,4)に変換される。したがって、暗号化データ55(Ri,i=0,1,2,…,k)は、アクセス領域カスタムアドレス・シーケンス85(999,998,996,994,993,4)に対応する記憶位置に保存される。
【0023】
記憶装置30の保護域にあるデータを読み取る際に必要な手順と方法は以下のとおりである。
【0024】
1.記憶空間アドレス変換モジュール25を使用して、保護域アドレスマッピング表65に従うか、アドレス変換規則60を直接使用するかして、システム指定アクセス領域初期アドレス・シーケンス80(Ui,i=0,1,…,x)をアクセス領域カスタムアドレス・シーケンス85(Vi,i=0,1,…,x)に変換する。図7におけるアドレス変換規則60と保護域アドレスマッピング表65は、図4に示したこれらのものと同じであり、システムによって指定されるアクセス領域初期アドレス・シーケンス80(1,2,4,6,7,996)が、アクセス領域カスタムアドレス・シーケンス(999,998,996,994,993,4)に変換される。したがって、暗号化データ55(Ri,i=0,1,2,…,k)は、アクセス領域カスタムアドレス・シーケンス85(999,998,996,994,993,4)に対応する記憶位置から読み取られる。
【0025】
2.アクセス領域カスタムアドレス・シーケンス85(Vi,i=0,1,…,x)にしたがって、暗号化データ(Ri,i=0,1,2,…,k)を読み取った後、データ暗号化/復号化モジュール20を使用して、復号化コード92と復号化アルゴリズム45とに従って、暗号化データ55(Ri,i=0,1,2,…,k)をソースデータ(Di,i=0,1,…,m)に復号化する。この点について以下の復号化アルゴリズムを使用した説明する。
【0026】
復号化コード92は“SSun”に設定され、その復号化ASCIIキャラクタコードは、0x53−0x53−0x75−0x6Eとなる。対称アルゴリズムを用いると、復号化アルゴリズム45は下記となる。
Xi=Xi〜0x5353756E (i=0の場合)
Xi〜Xi-1(i≠0の場合)
ここで、iは8から0で、「〜」は「排他的論理和」操作を示し、Xiの長さ単位は、32ビットである。
【0027】
図6では、暗号化データ55(0x3708baf6,0x0c62e8d5,0x235c06c5,…,0x5ea5b9cc)が、復号化アルゴリズム45を使用してソースデータ50(0x645bcf98,0x6839274d,0x4b652188,…,0x7890123e)に復号化される。
【0028】
図8および図9は、本発明によるデジタル情報保護方法の別の好適実施形態を示す。本実施形態は、コンピュータシステムなどのデジタル情報保護装置にあるコンピュータ・アクセス可能な記憶媒体に記憶されたコンピュータソフトウェアで、ハードディスクなどの記憶装置に保存されたデジタル情報を保護するためのものである。本実施例のコンピュータソフトウェアプログラムを用いてデジタル情報の保護を実行するための手順と方法を、図8と図9とを参照しながら以下に記述する。
【0029】
まず各記憶アドレスの大きさを1バイトとし、記憶装置の基本記憶構成単位を512バイト(すなわち1セクター)とする。記憶装置の保護されたアドレス領域は、2048バイト目から20973568バイト目までの合計20971520バイトである。
【0030】
本実施例において、プログラムは、図8に示す準備操作と、図9に示す実際のアクセス操作に分けられる。図8に示す準備操作では、3つの異なる変換構成単位に従って、3つのアドレス変換規則がまず生成される。このようにして生成された3つのアドレス変換規則に従い、その後の(図9に示すような)実際のアクセス操作によってアクセスされるアドレスに対しアドレス変換を実行する。
準備操作(図8参照)
1.第1アドレス変換
【0031】
図8の工程11において、プログラムが1024バイトの変換バッチ(以下、「第1変換バッチ」と呼ぶ)を用いて、保護されたアドレスの20971520バイトを20480(20971520バイト/1024バイト)個の第1変換バッチ、すなわち、0〜1023,1024〜2047,2048〜3071,…に分割する。次いで、図3に示すように、4ビットを1つの変換構成単位(以下、「第1変換構成単位」と呼ぶ)として、各第1変換バッチのアドレス領域が、2048(1024バイト/4ビット)個のアドレス・ブロック(以下、「第1アドレス・ブロック」)に変換される。例として、第1番目の第1変換バッチ0〜1023を挙げると、第1アドレス・ブロックは、アドレス・シーケンス[0,1,2,3,…,2047]として表わすことができる。その後、工程12を実行し、パラメータとしてアドレス領域[0,1,2,3,…,2047]を使用して、アドレス・ブロック再配列規則(以下、第1アドレス・ブロック再配列規則)が生成される。例えば、再生不可能な乱数シーケンス配列スキームを用いる。一定時間内のコンピュータ稼働率、ハードディスクアクセス速度、ネットワークアクセスデータ量などの情報に基づいて乱数シーケンスを生成し、この乱数シーケンスの範囲は、0〜2047、例えば、[231,1038,3,49,26,322,…]に調節される。そして、この乱数シーケンスのi番目の位置のアドレスと、アドレス・シーケンスのi番目のアドレスとを交換する。例えば、アドレス・シーケンスの0番目のアドレス、すなわち、「0」と、乱数シーケンス0番目の位置のアドレス、すなわち、「231」とを交換する。また、アドレス・シーケンスの1番目のアドレス、すなわち、「1」は、乱数シーケンス1番目の位置のアドレス、すなわち、「1038」と交換される。このようにして、図10に示すようなアドレス・ブロック変換表(以下、第1アドレス・ブロック変換表)[231,1038,73,27,…]が生成される。
【0032】
2番目の第1変換バッチの第1アドレス・ブロック変換表は、1番目の第1アドレス・ブロック変換表の数値を2048で変換(加算)したもの、等等である。このようにして、第1変換バッチの全て(20480バッチ)について、第1アドレス・ブロック変換表が得られる。
【0033】
前述した乱数シーケンスは再生できないので、プログラムは、この乱数シーケンスまたは第1アドレス・ブロック変換表を保存して、これらを今後のデータアクセスの際のアドレス変換に容易に使用できるようにする必要がある。
【0034】
2.第2アドレス変換
工程13では、図11に示すように81920バイトを1つの変換バッチ(以下、第2変換バッチ)として、プログラムが、保護された20971520バイトのアドレスを256個(20971520バイト/81920バイト)の第2変換バッチ、すなわち、0〜81919,81920〜163839,163840〜245759,…、に分割する。次いで、図11に示すように、640バイトを1つの変換構成単位(以下、「第2変換構成単位」と呼ぶ)として使用して、各第2変換バッチのアドレス領域は、128(81920バイト/640バイト)個のアドレス・ブロック(以下、「第2アドレス・ブロック」)に変換される。例えば、第1番目の第2変換バッチである0〜81919の場合、変換された第2アドレス・ブロックはアドレス・シーケンス[0,1,2,3,…127]と表すことができる。その後、工程14を実行し、パラメータとしてアドレス領域 [0,1,2,3,…,127]を使用して、アドレス・ブロック再配列規則(以下、第2アドレス・ブロック再配列規則)が生成される。例えば、アドレス・シーケンス[0,1,2,3,…127]の再配列にデータ暗号化標準(以下、DES、data encryption standard)を用いた暗号化シーケンス配列スキームが使用される。まず、アドレス・シーケンス[0,1,2,3,…]をバイナリー形式のバイナリー番号シーケンス[0000000,0000001,0000010,0000011,…]で表す。次いで、DES計算プロセスを使用して、このバイナリ番号シーケンス[0000000,0000001,0000010,0000011,…]を、例えば、「1h%j9〜&f」などのコードを使用して、[0101000,1000100,1100000,0011000,…]、(これは10進法では[40,68,96,24,…]となる)に暗号化する。そして、この番号シーケンスのi番目の位置のアドレスと、アドレス・シーケンスのi番目のアドレスとを交換する。例えば、アドレス・シーケンスの0番目のアドレス、すなわち、「0」と、番号シーケンスの0番目のアドレス、すなわち、「40」とを交換する。また、アドレス・シーケンスの1番目のアドレス、すなわち、「1」は、番号シーケンス1番目の位置のアドレス、すなわち、「68」とを交換する。このようにして、図11に示すアドレス・ブロック変換表(以下、第2アドレス・ブロック変換表)[40,68,101,8,…]を得ることができる。2番目の第2変換バッチの第2アドレス・ブロック変換表は、1番目の第2アドレス・ブロック変換表の数値を128で変換(加算)したもの、等等である。このようにして、第2変換バッチの全て(256バッチ)について、第2アドレス・ブロック変換表が得られる。
【0035】
さらに、前述した番号シーケンスは、暗号化プロセスを使用して生成されるため、プログラムは、暗号化コードを保存して、これらを今後のデータアクセスのために同じアドレス変換に使用できるようにする必要がある。
【0036】
3.第3アドレス変換
工程15において、プログラムは、第3の変換のための変換バッチ(以下、第3変換バッチ)を20971520バイト(すなわち、保護されたアドレス領域の大きさに相当)に設定し、81920バイトを1つの変換構成単位(以下、第3変換構成単位)とし、この20971520バイトの第3変換バッチは、256個(20971620バイト/81920バイト)のアドレス・ブロック(以下、第3アドレス・ブロック)に変換される。したがって、変換された第3アドレス・ブロックは、アドレス・シーケンス[0,1,2,3,…,255]として表される。その後、工程16が、アドレス領域 [0,1,2,3,…,255]をパラメータとして、アドレス・ブロック再配列規則(以下、第3アドレス・ブロック再配列規則)を生成するために、実行される。例えば、シードを27498としたコンピュータのRand関数を使用した再生可能な乱数シーケンス配列スキームを用い乱数シーケンスを0から255の範囲、例えば、[12,187,3,49,26,244,…]を調整することができる。その後、アドレス・シーケンス内のi番目のアドレスが、乱数シーケンス内のi番目のアドレスと交換される。例えば、アドレス・シーケンスの0番目のアドレス、すなわち、「0」と、乱数シーケンスの0番目のアドレス、すなわち、「12」とを交換する。また、アドレス・シーケンスの1番目のアドレスは、乱数シーケンス1番目の位置のアドレス、すなわち、「187」と交換される。このようにして、図12に示すアドレス変換表(以下、第3アドレス変換表)[12,187,36,28,…]を得ることができる。
【0037】
さらに、前述した乱数シーケンスは、再生可能な乱数シーケンス配列スキームを使用して生成されるため、プログラムは、コンピュータのRand関数のシード値を記憶し、将来、データアクセスのために同じアドレス変換表を容易に使用できるようにする必要がある。
【0038】
従って、図9の工程21で、記憶装置上にデータを書き込ませるためのコンピュータの要求をコンピュータのオペレーティングシステムからプログラムが受信した場合について考える。例えば、記憶装置30の2043番目〜2057番目のバイトアドレスにデータを書き込もうとする場合、データが書き込まれるアドレスのいくつかは保護されていない領域、すなわち、2043番目〜2047番目のバイトを含むので、プログラムは、まず、(データ書込み操作を直接実行して)保護されていない領域へのデータ書込みをできるようにし、その後、保護領域、すなわち、2048番目〜2057番目のバイトへのデータ書込みができるようにする。
【0039】
さらに、本実施形態におけるデータは保存前に暗号化され、復号化/暗号化の各プロセスで処理されるデータの量は8バイトであることから、プログラムは、書込みレンジを2048番目〜2063番目のバイト(すなわち8バイトの整数倍)に調節する必要があり、このデータの暗号化および書き込みを2つの操作で実行する。また、データが初めて書きこまれる領域、すなわち、2048番目〜2055番目のバイトまでは、その全域のアップデートが必要なデータ領域であるため、プログラムは、データ読取りを最初に実行しなくてもよい。書込み操作は、データの暗号化の後、直接実行してもよい。
例えば、書き込もうとするデータが、
0x75,0x52,0x21,0x67,0x45,0x9A,0xB5,0xC3,
であるとする。この場合、暗号化コード[9dY2aB]を使用した、デジタルデータの暗号化(DES)の結果生み出される暗号化データは、
0x9D,0xC5,0xF7,0x11,0x0A,0x83,0x17,0x44
である。
【0040】
従って、データを記憶装置30に書き込む前に暗号化データを保護するため、本発明のプログラムは、このアドレス領域に3つの変換を行えるようにしている。すなわち、最初にデータが書き込まれる2048番目〜2055番目のバイトのアドレス領域には、上で生成した第1、第2および第3アドレス・ブロック再配列規則に従った3つのアドレス変換が行われ、暗号化データの書き込みアドレスが見出される。
【0041】
実際のアクセス操作(図9参照)
1.第1アドレス変換
まず工程22において、プログラムは、アドレス・バッチ2048〜2055が属する第1変換バッチを決定し、アドレス・バッチ2048〜2055が、前述した第1変換バッチの1つ、すなわち、0〜1023に属することを認識する。従って、書込みアドレス領域、すなわち、2048番目〜2055番目のバイト、(全長8バイト)は、第1変換構成単位(すなわち4ビット)に基づき16のアドレス・ブロックに変換され、これがアドレス・シーケンス[0,1,2,…,15]として表される。この後、工程23が、このアドレス・シーケンス[0,1,2,…,15]に対応する再配列アドレス・シーケンス[231,1038,73,23,…](以下、第1アドレス・シーケンス)を検索するために、実行される。この対応は、アドレス・ブロック再配列規則に従って生成された第1アドレス・ブロック変換表に基づく。
【0042】
2.第2アドレス変換
まず工程24において、ブログラムは、第1アドレス・シーケンスの値が属する第2変換バッチを決定する。変換後の第1アドレス・シーケンス[231,1038,73,23,…]の全ての値が、0〜1280(1280=640バイト/4ビット)になるものと仮定して、0〜1280アドレス・バッチは、第2アドレス変換の第2変換バッチの最初のバッチに属し、第2アドレス・ブロックの最初のアドレス領域、すなわち、第2ブロックアドレス・シーケンス[0,1,2,…,128]の[0]内に位置づけられる。工程24において、プログラムは、第2アドレス・ブロック再配列規則に基づいて生成された第2アドレス・ブロック変換表から、第2アドレス・ブロック変換表[40,68,101,8,…]の値の中で、第2アドレス・ブロックの最初の値[0]に対応する値が、[40]であることを見出す。したがって、第1アドレス・シーケンス内のアドレスは、40番目の第2アドレス・ブロックのアドレス領域に変換される。すなわち、第1アドレス・シーケンス[231,1038,73,23,…]の各値に51200(40×1280バイト)が加算され、各第2ブロックのアドレス領域は1280バイトとなる。このようにして、第2アドレス・シーケンス[51431,52238,51203,51202,…]を得ることができる。
【0043】
3.第3アドレス変換
同様にして工程25において、プログラムは、第2アドレス・シーケンス[51431,52238,51203,51202,…]が属する第3変換バッチをまず決定し、第2アドレス・シーケンス[51431,52238,51203,51202,…]内の全ての数値が、0〜163840(163840=81920バイト/4ビット)の範囲内、すなわち、第3アドレス・ブロックの最初の領域、つまり、第3変換バッチの第3アドレス・ブロック・シーケンス[0,1,2,3,…,256]内の最初の値[0]にあることを確認する。さらに、第3アドレス・ブロック再配列規則に基づいて生成された第3アドレス・ブロック変換表[12,187,36,28,…]から、第3アドレス・ブロック変換表[12,187,36,28,…]の値の中で、第3アドレス・ブロックの最初の値、すなわち、[0]が対応する値は、[12]であることが分かる。したがって、第2アドレス・シーケンスのアドレスは、第3変換バッチの第3アドレス・ブロックにおける12番目のアドレス領域に変換される。すなわち、第2アドレス・シーケンス[231,1038,73,23,…]の各値に1966080(12×163840バイト)が加算され、各第3アドレス・ブロックのアドレス領域は163840バイトとなる。このようにして、第3アドレス・シーケンス[2017511,2018318,2017283,2017282,…]を得ることができる。
【0044】
最後に工程26において、プログラムは、第3アドレス・シーケンスのアドレスを、データが、記憶装置の記憶構成単位に基づいて記憶装置30に実際に書き込まれるアドレスに変換する。例えば、記憶装置30の記憶単位が、512バイト(1セクター)であるとして、この記憶装置の書込みアドレスに対応する第3アドレス・シーケンス中のアドレスは、それぞれ[1970.xx,1971.xx,1970.xx,1970.xx,…]であり、ここで、1970.xxは、2017511/1024(512バイト/4ビット)=1970…231(残部)、すなわち、1970セクターの231番目のアドレスを意味する。
【0045】
その後、暗号化された8バイトデータが、4ビットの書込み構成単位で表される16のデータブロックに分けられてから、このデータが、記憶装置30の書込みアドレス[1970.xx,1971.xx,1970.xx,1970.xx,…]に書き込まれる。すなわち、各データブロックは、各書き込みアドレスの最初の4ビットか、または最後の4ビットに記録される。
【0046】
第1データ書込みを完了した後、プログラムは、第2データ書込み処理を行う。第2データ書込み領域2056番目〜2063番目のバイトの内、2058番目〜2063番目のバイトのデータは更新されないので、プログラムは、まず、2056〜2063バイト目のデータを読み込み、このデータを復号化し、2056番目〜2057番目のバイトのデータを更新してから、再度すべてのデータを暗号化する必要がある。その後、アドレス変換後の2056番目〜2063番目のバイトのアドレスの再配列されたアドレス(すなわち第3アドレス)を上述した方法で見出し、これを記憶装置30上の実際の書込みアドレスに変換する。続いて、暗号化データが記憶装置30に書き込まれる。
【0047】
以上の記述から明らかなように、本実施形態のデジタル情報保護装置における記憶装置の保護されたアドレス領域は、異なるアドレスに再マップされる異なる変換規則を用いた複数の変換(本実施形態では3つの変換を用いるが、2つの変換または1つの基本変換でもよい)が施され、保護されたアドレス領域に書き込まれたデータが、保護されたアドレス領域の不連続なアドレスに分散および分配できるようにする。このようにして、記憶装置に保存されたデータが盗まれた場合でも、分散したデータは最初の暗号化データに再構築されず、これにより、この記憶装置に保存されたデータを十分かつ強力に保護することができる。
【0048】
図13は、本発明によるデジタル情報保護方法の別の実施形態を示すもので、有線または無線ネットワークを通じてデータを送信するサーバー端またはクライアント端に適用され、送信端(サーバー端またはクライアント端)から送信されるデータのセグメントを保護するためのものである。したがって、本実施形態のデジタル情報保護方法は、サーバー端、および/またはクライアント端に配置された(コンピュータシステムなどの)デジタル情報保護装置のコンピュータによるアクセスが可能な記録媒体にあるコンピュータソフトウェアプログラムの形態で実施され、クライアント端からサーバー端に向けて送信されるデジタル情報、および/またはサーバー端からクライアント端に向けて送信されるデジタル情報の保護を目的とする。
【0049】
プリセットデータ構成単位が1バイトで、送信される単位データ量が8バイトの場合を例に使用すると、サーバー端とクライアント端とが互いにデータを送信する場合、通信接続がまず確立される。通信接続が確立された後、識別認証、保護域開始・終了通信、記憶空間アドレス変換規則およびコード通信、データ暗号化/復号化およびコード通信が行われる。以下、識別認証手順について、従来の認証方法を使用して簡単に説明する。
【0050】
識別認証の際、サーバー端およびクライアント端のそれぞれは、それ自身のパブリックキーインフラストラクチャ(PKI)を保有する。まずクライアント端が、識別認証値としてランダム・シーケンス信号を生成する。例えば、シード値として現在のCPUの稼働率を、[32,145,204,9,158,3,222,68]などの8連続バイトをRand関数によって取得し、さらに2種類の16連続バイトを、1つは保護域開始信号、例えば、[129,33,56,188,7,8,251,2,139,193,6,88,27,18,201,12]、もう1つは保護域終了信号、例えば、[42,111,2,38,107,248,51,72,10,31,176,238,9,45,35,142]などとして、Rand関数を使用して取得する。さらに、プリセット変換スキーム(詳細下記)を使用してアドレス変換規則を設定し、アドレス変換コードは、Rand関数を使用して取得される4連続バイトの値、例えば[13,213,6,88]などに設定される。暗号化/復号化には、プリセットDES(デジタル暗号化標準)が用いられる。暗号化コードは、Rand関数を使用して得られる8連続バイト、例えば、[6,23,145,231,255,9,83,121]などの値である。
【0051】
従って、クライアント端が通信開始および終了信号、アドレス変換規則および変換コードを確立し設定すると、このようなデータは、認証機関から入手、またはクライアント端に事前に保存され、サーバー端に送信されるパブリックキーを基に暗号化される。
【0052】
サーバー端が上述のデータを受信した後、このサーバー端は、そのプライベートキーを使用して受信データを復号化する。また、サーバー端は、認証機関から入手またはサーバー端に事前に保存されたクライアント端のパブリックキーを使用した復号化から得られる識別認証値(ランダムシーケンス信号)を暗号化し、これをクライアント端に送信する。
【0053】
クライアント端がサーバー端から確認データを受信した後、クライアント端は、そのプライベートキーを用いて受信データを復号化し、復号化から得られる識別認証(ランダムシーケンス信号)を、以前に生成した識別認証値と比較して、サーバー端の識別を確認する。
【0054】
同じ確認手続きがサーバー端において、反対の方向、すなわち、サーバー端からクライアント端に向けて開始され、確認される。その後、クライアント端およびサーバー端は、それぞれの保護域開始信号を送ることができるようになり、送信前に暗号化とアドレス変換規則によるデータ暗号化とを使用してデータを保護する。サーバー端またはクライアント端が保護域開始信号を相手方から受信する際、通信手順に規定されるスキームを使用して受信データを変換し、また正しいデータを得るためにこのデータを復号しなければならない。
【0055】
さらに、保護されたデータ文字列を送信する場合、送信される有効データのバイト数を文字列開始のフィールドに記録し、送信されるデータの量を8バイトの単位データ量の整数倍とする必要があるが、欠陥は乱数または他の任意の数によって補償される。例えば、59バイトのデータを送信する場合、このデータ文字列の最初の2バイトは数値59を記録するために用いられ、3バイトの空白データをデータ文字列の後に加え(すなわち、59+2+3=64)、8組の8バイトデータを構成する必要がある。
【0056】
暗号化の手順は上述したものと同じであり、簡便性のためここでの再記述は省略する。これら8組のデータが、〔0x23,0x43,0xF6,0xA8,0x07,0x8D,0x51,0x92〕〔…〕〔…〕〔…〕〔…〕〔…〕〔…〕〔…〕に暗号化されるものとする。
【0057】
本実施形態のデジタル情報保護法を図13の工程61に示す。まず、図14に示すように、プログラムが、保護されるべき保護されたアドレス領域の変換を許可する。すなわち、本実施形態の各データセットの8バイトアドレス領域を、例えば、2ビットのプリセット変換構成単位によって32(8バイト/2ビット)のアドレス・ブロックに分ける。続いて、工程62において、プログラムは、パラメータとしてアドレス・ブロック再配列規則を生成するために、アドレス・ブロックを使用し、本実施形態においては、修正合同法(D.E.Knuth,The Art of Computer Programming,Vol.2:Seminumerial Algorithms,Chapter 3,Addison−Wesley,1969、参照)をランダム・シーケンス生成法として採用する。この生成法では、プリセットアドレス変換コード[13,213,6,88]に従い、素数Prm1が373から選定される13番目の素数、すなわち、443である(ここで、373は無作為に選ばれた数字で、大きくなりすぎないようにするべきである。これは、素数[443,1871,401,947]を順次選定した後に決定される素数計算式{Rm[i+1]=MOD(Mult….)}の計算値が、プロセッサの数値範囲を越えないようにするためである。)。素数Prm2は、373からの213番目の素数1871である。Plsは、373からの6番目の素数401である。乱数シーケンスの初期値Rm[0]は、373からの88番目の素数947である。
【0058】
乱数シーケンス値は下記によって計算される:
Mult=Prm1×Prm2+1=165240
Div=Prm1×Prm2×Prm2=61634147
Rm[i+1]=MOD(Mult×Rm[i]+Pls,Div)=Mod(165240×Rm[i]+401,61634147)
Rm=[947,33214387,9420372,51887196,37346565,27432626,22145379,21484824,25450961,34043790,47263311,3475377,25948282,…]。合計32の値が得られる。
【0059】
Rmの値を合計32の剰余値Rma:[19,19,20,28,5,18,3,24,17,14,15,17,26,…]を得るために、それぞれ32で割る。
【0060】
次いで、Rma[i]番目のアドレスの数値が順次[i]番目のアドレスに保存される。もし、Rma[i]の値がすでに使用されている場合には、Rma[i]の増分値(32で除した際の剰余で、これまでに使用されていない値まで増加させた値)が、[i]番目のアドレスに保存される。このようにして、図14に示すアドレス・ブロック変換表RM、[19,20,21,28,5,18,3,24,17,14,15,22,26…]を得ることができる。
【0061】
従って、前述したアドレス変換規則とアドレス・ブロック変換表RMとが構成された後、アドレス・バッチ(すなわち8バイトの保護されたアドレス領域)に第1セットの暗号化データをロードしたい場合には、工程63で、1変換構成単位として、2ビットを使用して、8バイトのアドレス空間が、まず、32のアドレス・ブロックに変換される。その後、アドレス・ブロック変換表RMに基づいて、アドレス・バッチ中のアドレス・ブロックのアドレスを再配列する。次いで、暗号化データの第1セットを、1保存構成単位として2ビットを使用して、32のデータブロックに分ける。これは10進法で、[0,2,0,3,1,0,0,3,3,3,1,2,2,2,2,0,0,0,3,3,2,0,3,1,2,2,0,1,2,1,0,2]として表される。工程65では、この32のデータブロックは、再配列された32のアドレス・ブロックに順次保存される。従って、図14に示すように、再配列された32のアドレス・ブロックに順次保存された後の暗号化データの第1セットは、[3,2,0,2,0,3,3,2,0,2,0,3,0…]となる。同様に、暗号化データの第2から第8セットは、前述の変換スキームを使用して再配列され、その後、これらのデータが上述の方法で送信される。
【0062】
以上から明らかなように、本実施形態では、データの送信前に、変換構成単位に基づき複数のアドレス・ブロックに送信される単位データ量によって占められたアドレス・バッチ(すなわち、前述の保護されたアドレス領域)を変換するためのデジタル情報保護装置を送信端に設け、このアドレス・ブロックに基づいて、アドレス変換規則を生成し、この規則からアドレス変換表を生成することにより、前記データによって占められたアドレス・バッチが、前記変換構成単位に基づいて複数のアドレス・ブロックに変換され、さらに、アドレス・ブロックのアドレスが、前に生成されたアドレス変換規則またはアドレス変換表に従って再配列される。その後、データは、再配列されたアドレス・ブロックに順次ロードされ、データシーケンスを形成して、その後、送信される。このように、データは、送信前に十分に分散されるので、送信プロセスの途中で万一の中断があったとしても暗号化データを元の暗号化データに再構成することができず、これにより送信プロセスの間に完全かつ強固な保護が提供される。
【0063】
さらに、デジタル情報保護方法は、コンピュータシステムに保存されるように構成されたコンピュータプログラムソフトウェアとして実施されているが、本発明の方法は、集積回路、電子回路、1回プログラムで制御できる電子回路(またはプログラマブル論理回路)で中央演算回路含む、または含まないもの、および論理計算能力を有するものでも実施することができる。
【0064】
さらに、暗号化データのクラッキングに通じるアドレス変換スキームへの権限のないアクセスを防止するため、第1の好適な実施形態で実行された複数(3つ)の変換手順を異なる装置で実行し制御することもできる。例えば、ユーザによって入力されたコードを第1アドレス変換の変換コードとして使用し、ユーザによってコンピュータシステムに挿入されたチップカードから読み取られた変換表を第2アドレス変換の実行に使用し、さらにネットワークサーバーが、第3アドレス変換を制御し実行することができる。このような制御スキームは、前述した準備操作および実際のアクセス操作に適用することができる。
【0065】
さらに、アドレス変換規則、アドレス変換表、または上記実施形態で生成される変換コードは、磁気カード、CD、DVD、スマートカード、RAMディスク、チップカード、RF装置、赤外線発光ダイオード装置など、磁気的性質、光学、集積回路、電子回路または電磁波を利用した読み取り用(または書込み用)記憶媒体に保存することができる。また、前述の変換コードを、キーボードを介してユーザが入力する、またはユーザの生物学的特質から得ることにより、アドレス変換スキームへの安易なアクセスをさらに防ぐことができる。
【0066】
以上、本発明を最も実用的で好適と考えられる実施形態に関連付けて記述したが、本発明は開示した実施形態に限定されるものでは無く、最も広い解釈の精神と範囲内に含まれる様々な構成を含むことを意図するもので、このような改良と等価な構成のすべてを包含するものであるものと理解される。
【図面の簡単な説明】
【0067】
【図1】本発明の一つ実施形態における主機能ブロックを示す図である。
【図2】本発明の別の好適な実施形態における主機能ブロックを示す図である。
【図3】本発明のさらに別の好適な実施形態における主機能ブロックを示す図である。
【図4】本発明の好適な実施形態における、所定のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
【図5】本発明の好適な実施形態における、別のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
【図6】ソースデータを暗号化アルゴリズムを使用して暗号化し、暗号化データを復号化アルゴリズムを使用してソースデータに復号する例を模式的に示す。
【図7】本発明の好適な実施形態において、システム指定アクセス領域初期アドレス・シーケンスが、どの様にアクセス領域カスタムアドレス・シーケンスに変換されるかを模式的に示す。
【図8】本発明によるデジタル情報保護方法の別の実施形態における準備操作フロー図である。
【図9】好適な実施形態における実際のアクセス操作のフロー図である。
【図10】好適な実施形態における第1アドレス変換を説明する模式図である。
【図11】好適な実施形態における第2アドレス変換を説明する模式図である。
【図12】好適な実施形態における第3アドレス変換を説明する模式図である。
【図13】本発明によるデジタル情報保護方法のさらに別の実施形態におけるフロー図である。
【図14】本好適実施形態におけるアドレス変換を説明する模式図である。
【特許請求の範囲】
【請求項1】
デジタル情報を保護する方法であって、
(A)プリセット変換構成単位に基づいて保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとして前記アドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
(B)データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
(C)前記アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データを前記再配列されたアドレスへロードするステップを含むことを特徴とする、デジタル情報を保護する方法。
【請求項2】
前記保護されたアドレス領域は、記憶装置(30)の記憶アドレス空間であり、
ステップ(C)において、前記データを前記再配列されたアドレスへロードする前に、各々の前記再配列されたアドレスは、前記記憶装置(30)の記憶構成単位に従って、前記記憶装置(30)の実際の書込みアドレスに変換されることを特徴とする、請求項1に記載のデジタル情報を保護する方法。
【請求項3】
前記変換構成単位が、1バイト、4ビットおよび2ビットのうちの1つであることを特徴とする、請求項1に記載のデジタル情報を保護する方法。
【請求項4】
ステップ(A)において、再生不可能なランダム・シーケンスを配列しているスキームは、前記アドレス・ブロック再配列規則として使用され、および0からアドレス・ブロックの数までの乱数配列を生成するためにコンピュータ(11)の内部ハードウェアの運用情報を利用することを含み、
アドレス変換表を生成することにより、前記乱数配列において、i番目のアドレス・ブロックをi番目の位置を有するアドレス・ブロックに交換するステップと、
ステップ(C)において、前記保護されたアドレス領域における前記アドレス・ブロックの前記再配列されたアドレスは、前記アドレス変換表に基づいて検索されることを特徴とする、請求項1に記載のデジタル情報を保護する方法。
【請求項5】
ステップ(A)において、外部的に入力されるアドレス変換キー(95)が、受け入れられ、および前記アドレス・ブロック再配列規則は、多数の前記アドレス・ブロックおよび前記アドレス変換キー(95)を使用して構成されることを特徴とする、請求項1に記載のデジタル情報を保護する方法。
【請求項6】
ステップ(A)において、前記アドレス・ブロック再配列規則は、暗号化コード(90)として前記アドレス交換キー(95)を使用するデータ暗号化標準を利用することを含む暗号化配列スキームを使用し、
前記アドレス・ブロックによって構成されるアドレス・シーケンスのバイナリ表現である数順を暗号化するステップと、アドレス・ブロック・シーケンスとするために十進数の暗号化されたバイナリの数順を表すステップと、
アドレス変換表を生成することにより、前記アドレス・ブロック・シーケンスにおいて、i番目のアドレス・ブロックをi番目に位置を有するアドレス・ブロックに交換するステップを含むことを特徴とする、請求項5に記載のデジタル情報を保護する方法。
【請求項7】
ステップ(C)において、前記保護されたアドレス領域における前記アドレス・ブロックの前記再配列されたアドレスは、前記アドレス変換表に従って検索されることを特徴とする、請求項6に記載のデジタル情報を保護する方法。
【請求項8】
ステップ(A)において、前記アドレス・ブロック再配列規則は、0から前記アドレス・ブロックの数までの乱数配列を生成するために、シードをもつコンピュータのRand関数を利用することを含む再生可能なランダム・シーケンス配列スキームを使用し、およびアドレス変換表を生成することにより、前記乱数配列において、i番目のアドレス・ブロックをi番目の位置を有するアドレス・ブロックに交換するステップを含むことを特徴とする、請求項5に記載のデジタル情報を保護する方法。
【請求項9】
ステップ(C)において、前記保護されたアドレス領域における前記アドレス・ブロックの前記再配列されたアドレスは、前記アドレス変換表に従って検索されることを特徴とする、請求項8に記載のデジタル情報を保護する方法。
【請求項10】
ステップ(B)において、前記データは、暗号化アルゴリズムおよび暗号化コード(90)を使用して暗号化される暗号化されたデータであることを特徴とする、請求項1に記載のデジタル情報を保護する方法。
【請求項11】
デジタル情報を保護する方法であって、
(A)保護されたアドレス領域を複数の第1変換バッチに分割するステップ、第1変換構成単位に基づいて各々の前記第1変換バッチのアドレス領域を複数の第1のアドレス・ブロックに変換するステップ、およびパラメータとして前記第1アドレス・ブロックを使用して前記第1のアドレス・ブロックを再配列するために前記第1アドレス・ブロック再配列規則を生成するステップと、
(B)前記保護されたアドレス領域を複数の第2変換バッチに分割するステップ、プリセット第2変換構成単位に基づいて各々の前記第2変換バッチのアドレス領域を複数の第2のアドレス・ブロックに変換するステップ、およびパラメータとして前記第2アドレス・ブロックを使用して前記第2アドレス・ブロックを再配列するために前記第2アドレス・ブロック再配列規則を生成するステップと、
(C)前記保護されたアドレス領域を少なくとも1つの第3変換バッチに分割するステップ、プリセット第3変換構成単位に基づいて前記少なくとも1つの第3変換バッチのアドレス領域を複数の第3アドレス・ブロックに変換するステップ、およびパラメータとして前記第3アドレス・ブロックを使用して前記第3アドレス・ブロックを再配列するために前記第3アドレス・ブロック再配列規則を生成するステップと、
(D)データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記アドレス・バッチが属する前記第1変換バッチを決定するステップ、前記第1変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第1、第2および第3アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された前記再配列されたアドレスへロードするステップを含むことを特徴とする、デジタル情報を保護する方法。
【請求項12】
ステップ(D)は、
(D1)前記第1アドレス・ブロック再配列規則に従って、前記第1変換バッチにおける各々の前記アドレス・ブロックの再配列された第1アドレスを検索するステップと、
(D2)各々の前記再配列された第1アドレスが属する前記第2変換バッチを決定するステップ、および前記第2アドレス・ブロック再配列規則に従って、前記それぞれの再配列された第1アドレスが属する前記第2変換バッチにおいて、各々の前記再配列された第1アドレスの再配列された前記第2アドレスを検索するステップと、
(D3)各々の前記再配列された第2アドレスが属する前記第3変換バッチを決定するステップ、および前記第3アドレス・ブロック再配列規則に従って、前記それぞれの再配列された第2アドレスが属する前記第3変換バッチにおいて、各々の前記再配列された第2アドレスの再配列された前記第3アドレスを検索するステップ、および前記データを前記再配列された第3アドレスへロードするステップを含むことを特徴とする、請求項11に記載のデジタル情報を保護する方法。
【請求項13】
前記保護されたアドレス領域が、記憶装置(30)の記憶アドレス空間であり、
ステップ(D3)は、
前記データを前記再配列された第3アドレスへロードする前に、各々の前記再配列された第3アドレスは、前記記憶装置(30)の記憶構成単位に従って、前記記憶装置(30)の実際の書込みアドレスに変換され、および前記データは、このように変換された実際の書込みアドレスにおいて記憶されることを含むことを特徴とする、請求項12に記載のデジタル情報を保護する方法。
【請求項14】
前記第1アドレス・ブロック再配列規則が、各々の前記第1変換バッチの前記第1アドレス・ブロックの数の範囲内で乱数配列を生成するためにコンピュータ内部ハードウェアの運用情報を利用することを含む再生不可能なランダム・シーケンス配列スキームを使用し、および第1アドレス・ブロック変換表を生成することにより、前記乱数配列において、i番目の第1アドレス・ブロックをi番目の位置を有する第1アドレス・ブロックに交換するステップを含むことを特徴とする、請求項12に記載のデジタル情報を保護する方法。
【請求項15】
ステップ(D1)において、前記第1変換バッチにおける各々の前記アドレス・ブロックの前記再配列された第1アドレスは、前記第1アドレス変換表に基づいて検索されることを特徴とする、請求項14に記載のデジタル情報を保護する方法。
【請求項16】
前記第2のアドレス・ブロック再配列規則が、各々の前記第2変換バッチの前記第2アドレス・ブロックの範囲内で乱数配列を生成するためにデータ暗号化規格およびアドレス変換キー(95)を使用し、および第2アドレス・ブロック変換表を生成することにより、前記乱数配列において、i番目の第2アドレス・ブロックをi番目の位置を有する第2のアドレス・ブロックに交換するステップを含むことを特徴とする、請求項12に記載のデジタル情報を保護する方法。
【請求項17】
ステップ(D2)において、前記第2変換バッチにおける各々の前記再配列された第1アドレスの前記再配列された第2アドレスは、前記第2アドレス変換表に基づいて検索されることを特徴とする、請求項16に記載のデジタル情報を保護する方法。
【請求項18】
前記第3アドレス・ブロック再配列規則が、前記少なくとも1つの第3変換バッチの前記第3アドレス・ブロックの範囲内で乱数配列を生成するために、シードをもつコンピュータのRand関数を利用することを含む再生可能なランダム・シーケンス配列スキームを使用し、および第3アドレス・ブロック変換表を生成することにより、前記乱数配列において、i番目の第3アドレス・ブロックをi番目の位置を有するアドレス・ブロックに交換するステップを含むことを特徴とする、請求項12に記載のデジタル情報を保護する方法。
【請求項19】
ステップ(D3)において、前記第3変換バッチにおける各々の前記再配列された第2アドレスの前記再配列された第3アドレスは、前記第3アドレス・ブロック変換表に基づいて検索されることを特徴とする、請求項18に記載のデジタル情報を保護する方法。
【請求項20】
前記アドレス変換キー(95)は、外部的に入力されることを特徴とする、請求項16に記載のデジタル情報を保護する方法。
【請求項21】
前記シード値は、外部的に入力されることを特徴とする、請求項18に記載のデジタル情報を保護する方法。
【請求項22】
前記データは、暗号化アルゴリズムおよび暗号化コード(90)を使用して暗号化される暗号化されたデータであることを特徴とする、請求項11に記載のデジタル情報を保護する方法。
【請求項23】
デジタル情報を保護するプログラムを記録したコンピュータ・アクセス可能な記録媒体であって、
デジタル情報を保護するための方法のステップを実行するために、プログラムは、コンピュータ(11)を実行するように読み取り可能、および実行可能であって、
前記方法は、
(A)プリセット変換構成単位に基づいて保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとして前記アドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
(B)データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
(C)前記アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データを前記再配列されたアドレスへロードするステップを含むことを特徴とする、デジタル情報を保護するプログラムを記録したコンピュータ・アクセス可能な記録媒体。
【請求項24】
デジタル情報を保護するプログラムを記録したコンピュータ・アクセス可能な記録媒体であって、
デジタル情報を保護するための方法のステップを実行するために、プログラムは、コンピュータ(11)を実行するための読み取り可能で実行可能であって、
前記方法は、
(A)保護されたアドレス領域を複数の第1変換バッチに分割するステップ、第1変換構成単位に基づいて各々の前記第1変換バッチのアドレス領域を複数の第1アドレス・ブロックに変換するステップ、およびパラメータとして前記第1アドレス・ブロックを使用して前記第1アドレス・ブロックを再配列するために第1アドレス・ブロック再配列規則を生成するステップと、
(B)前記保護されたアドレス領域を複数の第2変換バッチに分割するステップ、プリセット第2変換構成単位に基づいて各々の前記第2変換バッチのアドレス領域を複数の第2アドレス・ブロックに変換するステップ、およびパラメータとして前記第2アドレス・ブロックを使用して前記第2アドレス・ブロックを再配列するために第2アドレス・ブロック再配列規則を生成するステップと、
(C)前記保護されたアドレス領域を少なくとも1つの第3の変換バッチに分割するステップ、プリセット第3変換構成単位に基づいて前記少なくとも1つの第3変換バッチのアドレス領域を複数の第3アドレス・ブロックに変換するステップ、およびパラメータとして前記第3アドレス・ブロックを使用して前記第3アドレス・ブロックを再配列するために前記第3アドレス・ブロック再配列規則を生成するステップと、
(D)データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記アドレス・バッチが属する前記第1変換バッチを決定するステップ、前記第1変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第1、第2および第3アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された前記再配列されたアドレスへロードするステップを含むことを特徴とするデジタル情報を保護するプログラムを記録したコンピュータ・アクセス可能な記録媒体。
【請求項25】
デジタル情報を保護するプログラムがロードされたデジタル情報を保護する装置であって、
前記デジタル情報を保護する装置は、デジタル情報を保護するための方法のステップを実行するように、前記デジタル情報を保護するプログラムを読み取り、および実行する能力を有しており、
前記方法は、
(A)プリセット変換構成単位に基づいて保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとして前記アドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
(B)データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
(C)前記アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データを前記再配列されたアドレスへロードすることを特徴とする、デジタル情報を保護する装置。
【請求項26】
デジタル情報を保護するプログラムがロードされたデジタル情報を保護する装置であって、
前記デジタル情報を保護する装置は、デジタル情報を保護するための方法のステップを実行するように、前記デジタル情報を保護するプログラムを読み取り、および実行する能力を有しており、
前記方法は、
(A)保護されたアドレス領域を複数の第1変換バッチに分割するステップ、第1変換構成単位に基づいて各々の前記第1変換バッチのアドレス領域を複数の第1アドレス・ブロックに変換するステップ、およびパラメータとして前記第1アドレス・ブロックを使用して前記第1アドレス・ブロックを再配列するために前記第1アドレス・ブロック再配列規則を生成するステップと、
(B)前記保護されたアドレス領域を複数の第2変換バッチに分割するステップ、プリセット第2変換構成単位に基づいて各々の前記第2変換バッチのアドレス領域を複数の第2のアドレス・ブロックに変換するステップ、およびパラメータとして前記第2アドレス・ブロックを使用して前記第2アドレス・ブロックを再配列するために前記第2アドレス・ブロック再配列規則を生成するステップと、
(C)前記保護されたアドレス領域を少なくとも1つの第3変換バッチに分割するステップ、プリセット第3変換構成単位に基づいて前記少なくとも1つの第3変換バッチのアドレス領域を複数の第3アドレス・ブロックに変換するステップ、およびパラメータとして前記第3アドレス・ブロックを使用して前記第3アドレス・ブロックを再配列するために前記第3アドレス・ブロック再配列規則を生成するステップと、
(D)データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記アドレス・バッチが属する前記第1変換バッチを決定するステップ、前記第1変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第1、第2および第3アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された前記再配列されたアドレスへロードするステップを含むことを特徴とする、デジタル情報を保護する装置。
【請求項1】
デジタル情報を保護する方法であって、
(A)プリセット変換構成単位に基づいて保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとして前記アドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
(B)データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
(C)前記アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データを前記再配列されたアドレスへロードするステップを含むことを特徴とする、デジタル情報を保護する方法。
【請求項2】
前記保護されたアドレス領域は、記憶装置(30)の記憶アドレス空間であり、
ステップ(C)において、前記データを前記再配列されたアドレスへロードする前に、各々の前記再配列されたアドレスは、前記記憶装置(30)の記憶構成単位に従って、前記記憶装置(30)の実際の書込みアドレスに変換されることを特徴とする、請求項1に記載のデジタル情報を保護する方法。
【請求項3】
前記変換構成単位が、1バイト、4ビットおよび2ビットのうちの1つであることを特徴とする、請求項1に記載のデジタル情報を保護する方法。
【請求項4】
ステップ(A)において、再生不可能なランダム・シーケンスを配列しているスキームは、前記アドレス・ブロック再配列規則として使用され、および0からアドレス・ブロックの数までの乱数配列を生成するためにコンピュータ(11)の内部ハードウェアの運用情報を利用することを含み、
アドレス変換表を生成することにより、前記乱数配列において、i番目のアドレス・ブロックをi番目の位置を有するアドレス・ブロックに交換するステップと、
ステップ(C)において、前記保護されたアドレス領域における前記アドレス・ブロックの前記再配列されたアドレスは、前記アドレス変換表に基づいて検索されることを特徴とする、請求項1に記載のデジタル情報を保護する方法。
【請求項5】
ステップ(A)において、外部的に入力されるアドレス変換キー(95)が、受け入れられ、および前記アドレス・ブロック再配列規則は、多数の前記アドレス・ブロックおよび前記アドレス変換キー(95)を使用して構成されることを特徴とする、請求項1に記載のデジタル情報を保護する方法。
【請求項6】
ステップ(A)において、前記アドレス・ブロック再配列規則は、暗号化コード(90)として前記アドレス交換キー(95)を使用するデータ暗号化標準を利用することを含む暗号化配列スキームを使用し、
前記アドレス・ブロックによって構成されるアドレス・シーケンスのバイナリ表現である数順を暗号化するステップと、アドレス・ブロック・シーケンスとするために十進数の暗号化されたバイナリの数順を表すステップと、
アドレス変換表を生成することにより、前記アドレス・ブロック・シーケンスにおいて、i番目のアドレス・ブロックをi番目に位置を有するアドレス・ブロックに交換するステップを含むことを特徴とする、請求項5に記載のデジタル情報を保護する方法。
【請求項7】
ステップ(C)において、前記保護されたアドレス領域における前記アドレス・ブロックの前記再配列されたアドレスは、前記アドレス変換表に従って検索されることを特徴とする、請求項6に記載のデジタル情報を保護する方法。
【請求項8】
ステップ(A)において、前記アドレス・ブロック再配列規則は、0から前記アドレス・ブロックの数までの乱数配列を生成するために、シードをもつコンピュータのRand関数を利用することを含む再生可能なランダム・シーケンス配列スキームを使用し、およびアドレス変換表を生成することにより、前記乱数配列において、i番目のアドレス・ブロックをi番目の位置を有するアドレス・ブロックに交換するステップを含むことを特徴とする、請求項5に記載のデジタル情報を保護する方法。
【請求項9】
ステップ(C)において、前記保護されたアドレス領域における前記アドレス・ブロックの前記再配列されたアドレスは、前記アドレス変換表に従って検索されることを特徴とする、請求項8に記載のデジタル情報を保護する方法。
【請求項10】
ステップ(B)において、前記データは、暗号化アルゴリズムおよび暗号化コード(90)を使用して暗号化される暗号化されたデータであることを特徴とする、請求項1に記載のデジタル情報を保護する方法。
【請求項11】
デジタル情報を保護する方法であって、
(A)保護されたアドレス領域を複数の第1変換バッチに分割するステップ、第1変換構成単位に基づいて各々の前記第1変換バッチのアドレス領域を複数の第1のアドレス・ブロックに変換するステップ、およびパラメータとして前記第1アドレス・ブロックを使用して前記第1のアドレス・ブロックを再配列するために前記第1アドレス・ブロック再配列規則を生成するステップと、
(B)前記保護されたアドレス領域を複数の第2変換バッチに分割するステップ、プリセット第2変換構成単位に基づいて各々の前記第2変換バッチのアドレス領域を複数の第2のアドレス・ブロックに変換するステップ、およびパラメータとして前記第2アドレス・ブロックを使用して前記第2アドレス・ブロックを再配列するために前記第2アドレス・ブロック再配列規則を生成するステップと、
(C)前記保護されたアドレス領域を少なくとも1つの第3変換バッチに分割するステップ、プリセット第3変換構成単位に基づいて前記少なくとも1つの第3変換バッチのアドレス領域を複数の第3アドレス・ブロックに変換するステップ、およびパラメータとして前記第3アドレス・ブロックを使用して前記第3アドレス・ブロックを再配列するために前記第3アドレス・ブロック再配列規則を生成するステップと、
(D)データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記アドレス・バッチが属する前記第1変換バッチを決定するステップ、前記第1変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第1、第2および第3アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された前記再配列されたアドレスへロードするステップを含むことを特徴とする、デジタル情報を保護する方法。
【請求項12】
ステップ(D)は、
(D1)前記第1アドレス・ブロック再配列規則に従って、前記第1変換バッチにおける各々の前記アドレス・ブロックの再配列された第1アドレスを検索するステップと、
(D2)各々の前記再配列された第1アドレスが属する前記第2変換バッチを決定するステップ、および前記第2アドレス・ブロック再配列規則に従って、前記それぞれの再配列された第1アドレスが属する前記第2変換バッチにおいて、各々の前記再配列された第1アドレスの再配列された前記第2アドレスを検索するステップと、
(D3)各々の前記再配列された第2アドレスが属する前記第3変換バッチを決定するステップ、および前記第3アドレス・ブロック再配列規則に従って、前記それぞれの再配列された第2アドレスが属する前記第3変換バッチにおいて、各々の前記再配列された第2アドレスの再配列された前記第3アドレスを検索するステップ、および前記データを前記再配列された第3アドレスへロードするステップを含むことを特徴とする、請求項11に記載のデジタル情報を保護する方法。
【請求項13】
前記保護されたアドレス領域が、記憶装置(30)の記憶アドレス空間であり、
ステップ(D3)は、
前記データを前記再配列された第3アドレスへロードする前に、各々の前記再配列された第3アドレスは、前記記憶装置(30)の記憶構成単位に従って、前記記憶装置(30)の実際の書込みアドレスに変換され、および前記データは、このように変換された実際の書込みアドレスにおいて記憶されることを含むことを特徴とする、請求項12に記載のデジタル情報を保護する方法。
【請求項14】
前記第1アドレス・ブロック再配列規則が、各々の前記第1変換バッチの前記第1アドレス・ブロックの数の範囲内で乱数配列を生成するためにコンピュータ内部ハードウェアの運用情報を利用することを含む再生不可能なランダム・シーケンス配列スキームを使用し、および第1アドレス・ブロック変換表を生成することにより、前記乱数配列において、i番目の第1アドレス・ブロックをi番目の位置を有する第1アドレス・ブロックに交換するステップを含むことを特徴とする、請求項12に記載のデジタル情報を保護する方法。
【請求項15】
ステップ(D1)において、前記第1変換バッチにおける各々の前記アドレス・ブロックの前記再配列された第1アドレスは、前記第1アドレス変換表に基づいて検索されることを特徴とする、請求項14に記載のデジタル情報を保護する方法。
【請求項16】
前記第2のアドレス・ブロック再配列規則が、各々の前記第2変換バッチの前記第2アドレス・ブロックの範囲内で乱数配列を生成するためにデータ暗号化規格およびアドレス変換キー(95)を使用し、および第2アドレス・ブロック変換表を生成することにより、前記乱数配列において、i番目の第2アドレス・ブロックをi番目の位置を有する第2のアドレス・ブロックに交換するステップを含むことを特徴とする、請求項12に記載のデジタル情報を保護する方法。
【請求項17】
ステップ(D2)において、前記第2変換バッチにおける各々の前記再配列された第1アドレスの前記再配列された第2アドレスは、前記第2アドレス変換表に基づいて検索されることを特徴とする、請求項16に記載のデジタル情報を保護する方法。
【請求項18】
前記第3アドレス・ブロック再配列規則が、前記少なくとも1つの第3変換バッチの前記第3アドレス・ブロックの範囲内で乱数配列を生成するために、シードをもつコンピュータのRand関数を利用することを含む再生可能なランダム・シーケンス配列スキームを使用し、および第3アドレス・ブロック変換表を生成することにより、前記乱数配列において、i番目の第3アドレス・ブロックをi番目の位置を有するアドレス・ブロックに交換するステップを含むことを特徴とする、請求項12に記載のデジタル情報を保護する方法。
【請求項19】
ステップ(D3)において、前記第3変換バッチにおける各々の前記再配列された第2アドレスの前記再配列された第3アドレスは、前記第3アドレス・ブロック変換表に基づいて検索されることを特徴とする、請求項18に記載のデジタル情報を保護する方法。
【請求項20】
前記アドレス変換キー(95)は、外部的に入力されることを特徴とする、請求項16に記載のデジタル情報を保護する方法。
【請求項21】
前記シード値は、外部的に入力されることを特徴とする、請求項18に記載のデジタル情報を保護する方法。
【請求項22】
前記データは、暗号化アルゴリズムおよび暗号化コード(90)を使用して暗号化される暗号化されたデータであることを特徴とする、請求項11に記載のデジタル情報を保護する方法。
【請求項23】
デジタル情報を保護するプログラムを記録したコンピュータ・アクセス可能な記録媒体であって、
デジタル情報を保護するための方法のステップを実行するために、プログラムは、コンピュータ(11)を実行するように読み取り可能、および実行可能であって、
前記方法は、
(A)プリセット変換構成単位に基づいて保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとして前記アドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
(B)データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
(C)前記アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データを前記再配列されたアドレスへロードするステップを含むことを特徴とする、デジタル情報を保護するプログラムを記録したコンピュータ・アクセス可能な記録媒体。
【請求項24】
デジタル情報を保護するプログラムを記録したコンピュータ・アクセス可能な記録媒体であって、
デジタル情報を保護するための方法のステップを実行するために、プログラムは、コンピュータ(11)を実行するための読み取り可能で実行可能であって、
前記方法は、
(A)保護されたアドレス領域を複数の第1変換バッチに分割するステップ、第1変換構成単位に基づいて各々の前記第1変換バッチのアドレス領域を複数の第1アドレス・ブロックに変換するステップ、およびパラメータとして前記第1アドレス・ブロックを使用して前記第1アドレス・ブロックを再配列するために第1アドレス・ブロック再配列規則を生成するステップと、
(B)前記保護されたアドレス領域を複数の第2変換バッチに分割するステップ、プリセット第2変換構成単位に基づいて各々の前記第2変換バッチのアドレス領域を複数の第2アドレス・ブロックに変換するステップ、およびパラメータとして前記第2アドレス・ブロックを使用して前記第2アドレス・ブロックを再配列するために第2アドレス・ブロック再配列規則を生成するステップと、
(C)前記保護されたアドレス領域を少なくとも1つの第3の変換バッチに分割するステップ、プリセット第3変換構成単位に基づいて前記少なくとも1つの第3変換バッチのアドレス領域を複数の第3アドレス・ブロックに変換するステップ、およびパラメータとして前記第3アドレス・ブロックを使用して前記第3アドレス・ブロックを再配列するために前記第3アドレス・ブロック再配列規則を生成するステップと、
(D)データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記アドレス・バッチが属する前記第1変換バッチを決定するステップ、前記第1変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第1、第2および第3アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された前記再配列されたアドレスへロードするステップを含むことを特徴とするデジタル情報を保護するプログラムを記録したコンピュータ・アクセス可能な記録媒体。
【請求項25】
デジタル情報を保護するプログラムがロードされたデジタル情報を保護する装置であって、
前記デジタル情報を保護する装置は、デジタル情報を保護するための方法のステップを実行するように、前記デジタル情報を保護するプログラムを読み取り、および実行する能力を有しており、
前記方法は、
(A)プリセット変換構成単位に基づいて保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとして前記アドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
(B)データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
(C)前記アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データを前記再配列されたアドレスへロードすることを特徴とする、デジタル情報を保護する装置。
【請求項26】
デジタル情報を保護するプログラムがロードされたデジタル情報を保護する装置であって、
前記デジタル情報を保護する装置は、デジタル情報を保護するための方法のステップを実行するように、前記デジタル情報を保護するプログラムを読み取り、および実行する能力を有しており、
前記方法は、
(A)保護されたアドレス領域を複数の第1変換バッチに分割するステップ、第1変換構成単位に基づいて各々の前記第1変換バッチのアドレス領域を複数の第1アドレス・ブロックに変換するステップ、およびパラメータとして前記第1アドレス・ブロックを使用して前記第1アドレス・ブロックを再配列するために前記第1アドレス・ブロック再配列規則を生成するステップと、
(B)前記保護されたアドレス領域を複数の第2変換バッチに分割するステップ、プリセット第2変換構成単位に基づいて各々の前記第2変換バッチのアドレス領域を複数の第2のアドレス・ブロックに変換するステップ、およびパラメータとして前記第2アドレス・ブロックを使用して前記第2アドレス・ブロックを再配列するために前記第2アドレス・ブロック再配列規則を生成するステップと、
(C)前記保護されたアドレス領域を少なくとも1つの第3変換バッチに分割するステップ、プリセット第3変換構成単位に基づいて前記少なくとも1つの第3変換バッチのアドレス領域を複数の第3アドレス・ブロックに変換するステップ、およびパラメータとして前記第3アドレス・ブロックを使用して前記第3アドレス・ブロックを再配列するために前記第3アドレス・ブロック再配列規則を生成するステップと、
(D)データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記アドレス・バッチが属する前記第1変換バッチを決定するステップ、前記第1変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第1、第2および第3アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された前記再配列されたアドレスへロードするステップを含むことを特徴とする、デジタル情報を保護する装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2009−25812(P2009−25812A)
【公開日】平成21年2月5日(2009.2.5)
【国際特許分類】
【外国語出願】
【出願番号】特願2008−159551(P2008−159551)
【出願日】平成20年6月18日(2008.6.18)
【出願人】(508183807)軒▲ソン▼科技有限公司 (1)
【Fターム(参考)】
【公開日】平成21年2月5日(2009.2.5)
【国際特許分類】
【出願番号】特願2008−159551(P2008−159551)
【出願日】平成20年6月18日(2008.6.18)
【出願人】(508183807)軒▲ソン▼科技有限公司 (1)
【Fターム(参考)】
[ Back to top ]