(57)【要約】      （修正有）【課題】保護されたデジタル情報が容易に再構築されたり回復されたりすることのないデジタル情報の保護方法を提供する。【解決手段】デジタル情報の保護方法は、保護されたアドレス領域をプリセット変換構成単位に基づいて複数のアドレス・ブロックに変換し、このアドレス・ブロックをパラメータとして使用してアドレス・ブロック再配列規則を生成し、保護されたアドレス領域のアドレス・バッチにデータをロードする場合には、アドレス・バッチを前記変換構成単位に基づいて複数のアドレス・ブロックに変換し、アドレス・ブロック再配列規則に従って保護されたアドレス領域中のアドレス・ブロックの再配列されたアドレスを検索し、この再配列されたアドレスにデータをロードする。従って、前記データは、前記アドレス・バッチに分散して記憶されるため、保護されたデータは、盗難に際しても元の正確なデータに再構築することができない。【選択図】図１３
2014098923.tif 000002
【特許請求の範囲】
【請求項１】
デジタル情報を保護する方法であって、前記方法は、ハードウェア・システム（１０）によって実行され、
（Ａ）前記ハードウェア・システム（１０）の記憶空間アドレス変換モジュール（２５）によって、プリセット変換構成単位に基づいて保護されたアドレス領域を記憶装置（３０）の複数のアドレス・ブロックに変換するステップ、およびパラメータとして前記アドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
（Ｂ）前記記憶空間アドレス変換モジュール（２５）によって、データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
（Ｃ）前記記憶空間アドレス変換モジュール（２５）によって、前記アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記ハードウェア・システム（１０）のデータ暗号化／復号化モジュール（２０）によって、前記データを前記再配列されたアドレスへロードするステップを含み、
ステップ（Ａ）において、
外部的に入力されるアドレス変換キー（９５）が、受け入れられ、および前記アドレス・ブロック再配列規則は、多数の前記アドレス・ブロックおよび前記アドレス変換キー（９５）を使用して構成され、
前記アドレス・ブロック再配列規則は、暗号化コード（９０）として前記アドレス交換キー（９５）を使用するデータ暗号化標準を利用することを含む暗号化配列スキームを使用し、
前記アドレス・ブロックによって構成されるアドレス・シーケンスのバイナリ表現である数順を暗号化するステップと、アドレス・ブロック・シーケンスとするために十進数の暗号化されたバイナリの数順を表すステップと、アドレス変換表を生成することにより、前記アドレス・ブロック・シーケンスにおいて、ｉ番目のアドレス・ブロックをｉ番目に位置を有するアドレス・ブロックに交換するステップを含むことを特徴とする、デジタル情報を保護する方法。
【請求項２】
前記保護されたアドレス領域は、記憶装置（３０）の記憶アドレス空間であり、
ステップ（Ｃ）において、前記データを前記再配列されたアドレスへロードする前に、各々の前記再配列されたアドレスは、前記記憶装置（３０）の記憶構成単位に従って、前記記憶装置（３０）の実際の書込みアドレスに変換されることを特徴とする、請求項１に記載のデジタル情報を保護する方法。
【請求項３】
前記変換構成単位が、１バイト、４ビットおよび２ビットのうちの１つであることを特徴とする、請求項１に記載のデジタル情報を保護する方法。
【請求項４】
ステップ（Ｃ）において、前記保護されたアドレス領域における前記アドレス・ブロックの前記再配列されたアドレスは、前記アドレス変換表に従って検索されることを特徴とする、請求項１に記載のデジタル情報を保護する方法。
【請求項５】
デジタル情報を保護する方法であって、前記方法は、ハードウェア・システム（１０）によって実行され、
（Ａ）前記ハードウェア・システム（１０）の記憶空間アドレス変換モジュール（２５）によって、保護されたアドレス領域を複数の第１変換バッチに分割するステップ、第１変換構成単位に基づいて各々の前記第１変換バッチのアドレス領域を記憶装置（３０）の複数の第１のアドレス・ブロックに変換するステップ、およびパラメータとして前記第１アドレス・ブロックを使用して前記第１のアドレス・ブロックを再配列するために前記第１アドレス・ブロック再配列規則を生成するステップと、
（Ｂ）前記記憶空間アドレス変換モジュール（２５）によって、前記保護されたアドレス領域を複数の第２変換バッチに分割するステップ、プリセット第２変換構成単位に基づいて各々の前記第２変換バッチのアドレス領域を複数の第２のアドレス・ブロックに変換するステップ、およびパラメータとして前記第２アドレス・ブロックを使用して前記第２アドレス・ブロックを再配列するために前記第２アドレス・ブロック再配列規則を生成するステップと、
（Ｃ）前記記憶空間アドレス変換モジュール（２５）によって、前記保護されたアドレス領域を少なくとも１つの第３変換バッチに分割するステップ、プリセット第３変換構成単位に基づいて前記少なくとも１つの第３変換バッチのアドレス領域を複数の第３アドレス・ブロックに変換するステップ、およびパラメータとして前記第３アドレス・ブロックを使用して前記第３アドレス・ブロックを再配列するために前記第３アドレス・ブロック再配列規則を生成するステップ、
（Ｄ）前記記憶空間アドレス変換モジュール（２５）によって、データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記アドレス・バッチが属する前記第１変換バッチを決定するステップ、前記第１変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、および前記第１、第２および第３アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、ならびに前記ハードウェア・システム（１０）のデータ暗号化／復号化モジュール（２０）によって、前記データをこのように検索された前記再配列されたアドレスへロードするステップとを含み、
ステップ（Ｄ）は、
（Ｄ１）前記第１アドレス・ブロック再配列規則に従って、前記第１変換バッチにおける各々の前記アドレス・ブロックの再配列された第１アドレスを検索するステップと、
（Ｄ２）各々の前記再配列された第１アドレスが属する前記第２変換バッチを決定するステップ、および前記第２アドレス・ブロック再配列規則に従って、前記それぞれの再配列された第１アドレスが属する前記第２変換バッチにおいて、各々の前記再配列された第１アドレスの再配列された前記第２アドレスを検索するステップと、
（Ｄ３）各々の前記再配列された第２アドレスが属する前記第３変換バッチを決定するステップ、および前記第３アドレス・ブロック再配列規則に従って、前記それぞれの再配列された第２アドレスが属する前記第３変換バッチにおいて、各々の前記再配列された第２アドレスの再配列された前記第３アドレスを検索するステップ、および前記データを前記再配列された第３アドレスへロードするステップとを含むことを特徴とする、デジタル情報を保護する方法。
【請求項６】
前記保護されたアドレス領域が、前記記憶装置（３０）の記憶アドレス空間であり、
ステップ（Ｄ３）は、
前記データを前記再配列された第３アドレスへロードする前に、各々の前記再配列された第３アドレスは、前記記憶装置（３０）の記憶構成単位に従って、前記記憶装置（３０）の実際の書込みアドレスに変換され、および前記データは、このように変換された実際の書込みアドレスにおいて記憶されることを含むことを特徴とする、請求項５に記載のデジタル情報を保護する方法。
【請求項７】
前記第１アドレス・ブロック再配列規則が、各々の前記第１変換バッチの前記第１アドレス・ブロックの数の範囲内で乱数配列を生成するためにコンピュータ内部ハードウェアの運用情報を利用することを含む再生不可能なランダム・シーケンス配列スキームを使用し、および第１アドレス・ブロック変換表を生成することにより、前記乱数配列において、ｉ番目の第１アドレス・ブロックをｉ番目の位置を有する第１アドレス・ブロックに交換するステップを含むことを特徴とする、請求項５に記載のデジタル情報を保護する方法。
【請求項８】
ステップ（Ｄ１）において、前記第１変換バッチにおける各々の前記アドレス・ブロックの前記再配列された第１アドレスは、前記第１アドレス変換表に基づいて検索されることを特徴とする、請求項７に記載のデジタル情報を保護する方法。
【請求項９】
前記第２のアドレス・ブロック再配列規則が、各々の前記第２変換バッチの前記第２アドレス・ブロックの範囲内で乱数配列を生成するためにデータ暗号化規格およびアドレス変換キー（９５）を使用し、および第２アドレス・ブロック変換表を生成することにより、前記乱数配列において、ｉ番目の第２アドレス・ブロックをｉ番目の位置を有する第２のアドレス・ブロックに交換するステップを含むことを特徴とする、請求項５に記載のデジタル情報を保護する方法。
【請求項１０】
ステップ（Ｄ２）において、前記第２変換バッチにおける各々の前記再配列された第１アドレスの前記再配列された第２アドレスは、前記第２アドレス変換表に基づいて検索されることを特徴とする、請求項９に記載のデジタル情報を保護する方法。
【請求項１１】
前記第３アドレス・ブロック再配列規則が、前記少なくとも１つの第３変換バッチの前記第３アドレス・ブロックの範囲内で乱数配列を生成するために、シードをもつコンピュータのＲａｎｄ関数を利用することを含む再生可能なランダム・シーケンス配列スキームを使用し、および第３アドレス・ブロック変換表を生成することにより、前記乱数配列において、ｉ番目の第３アドレス・ブロックをｉ番目の位置を有するアドレス・ブロックに交換するステップを含むことを特徴とする、請求項５に記載のデジタル情報を保護する方法。
【請求項１２】
ステップ（Ｄ３）において、前記第３変換バッチにおける各々の前記再配列された第２アドレスの前記再配列された第３アドレスは、前記第３アドレス・ブロック変換表に基づいて検索されることを特徴とする、請求項１１に記載のデジタル情報を保護する方法。
【請求項１３】
前記アドレス変換キー（９５）は、外部的に入力されることを特徴とする、請求項９に記載のデジタル情報を保護する方法。
【請求項１４】
前記シード値は、外部的に入力されることを特徴とする、請求項１１に記載のデジタル情報を保護する方法。
【請求項１５】
前記データは、暗号化アルゴリズムおよび暗号化コード（９０）を使用して暗号化される暗号化されたデータであることを特徴とする、請求項５に記載のデジタル情報を保護する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ保護の方法および装置に関し、さらに詳しくは、デジタル情報を保護し、デジタル情報への権限の無いアクセスを防止できるようにするための方法および装置に関する。
【背景技術】
【０００２】
コンピュータ技術の発展に伴い、ほとんど全ての政府機関、研究所、学術団体および会社は、書類やファイルの作成にコンピュータを使用する。さらに、コンピュータ周辺記憶装置の急速な発展とともに、重要書類、ファイルデータ、技術データ、機密データおよびこれらのバックアップデータの保存にこれらの記憶装置が使用される。書類やファイルの保存に記憶装置を使用すれば、データを作成したり、検索するための時間が短縮されるばかりでなく、紙の使用を減らし、さらに保存されたデータの寿命を延ばすことができる。加えて携帯型記憶装置は保存が容易な上、搬送に便利で小型のため、ユーザはデータおよびバックアップデータの保存に携帯型記憶装置を頻繁に使用している。しかしながら、携帯型記憶装置の利便性は、コンピュータに保存されたデータの漏出の危険性を増大させる。このような欠点を克服するため、暗号化を用いた様々なデータ保護方法が提案されている。それにも関わらず、暗号化されたデータは、多くのコンピュータを使用し膨大な計算を行えば解読することができるため、保護されたデータが盗難後に回復できないよう、いかにデータのセキュリティーを向上させるかが最大の関心事となっている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
したがって、本発明の目的は、保護されたデジタル情報が容易に再構築されたり回復されたりすることのないデジタル情報の保護方法を提供することである。
【課題を解決するための手段】
【０００４】
本発明の１つの観点におけるデジタル情報の保護方法は、
（Ａ）プリセット変換構成単位に基づいて、保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとしてこのアドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
（Ｂ）データを前記保護されたアドレス領域のアドレス・バッチにロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
（Ｃ）アドレス・ブロック再配列規則に従って、保護されたアドレス領域中のアドレス・ブロックの再配列されたアドレスを検索するステップ、およびこの再配列されたアドレスに前記データをロードするステップと、
を含む。
【０００５】
本発明の別の観点におけるデジタル情報の保護方法は、
（Ａ）保護されたアドレス領域を複数の第１変換バッチに分割するステップ、第１変換構成単位に基づいて、各々の第１変換バッチのアドレス領域を複数の第１アドレス・ブロックに変換するステップ、およびパラメータとしてこの第１アドレス・ブロックを使用して、第１アドレス・ブロックを再配列するために第１アドレス・ブロック再配列規則を生成するステップと、
（Ｂ）保護されたアドレス領域を複数の第２変換バッチに分割するステップ、プリセット第２変換構成単位に基づいて、各々の第２変換バッチのアドレス領域を複数の第２アドレス・ブロックに変換するステップ、およびパラメータとしてこの第２アドレス・ブロックを使用して、第２アドレス・ブロックを再配列するために第２アドレス・ブロック再配列規則を生成するステップと、
（Ｃ）保護されたアドレス領域を少なくとも１つの第３変換バッチに分割するステップ、プリセット第３変換構成単位に基づいて、前記少なくとも１つの第３変換バッチのアドレス領域を複数の第３アドレス・ブロックに変換するステップ、およびパラメータとしてこの第３アドレス・ブロックを使用して、第３アドレス・ブロックを再配列するために第３アドレス・ブロック再配列規則を生成するステップと、
（Ｄ）データを前記保護されたアドレス領域のアドレス・バッチにロードする場合には、前記アドレス・バッチが属する第１変換バッチを決定するステップ、前記第１変換構成単位に基づいて、前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第１、第２、第３アドレス・ブロック再配列規則に従って、保護されたアドレス領域内のアドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された再配列されたアドレスにロードすること、
を含む。
【０００６】
本発明のさらなる特徴および利点は、図面を参照しつつ下記する好適な実施形態の詳細な記述によって明らかになるであろう。
【図面の簡単な説明】
【０００７】
【図１】本発明の一つ実施形態における主機能ブロックを示す図である。
【図２】本発明の別の好適な実施形態における主機能ブロックを示す図である。
【図３】本発明のさらに別の好適な実施形態における主機能ブロックを示す図である。
【図４】本発明の好適な実施形態における、所定のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
【図５】本発明の好適な実施形態における、別のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
【図６】ソースデータを暗号化アルゴリズムを使用して暗号化し、暗号化データを復号化アルゴリズムを使用してソースデータに復号する例を模式的に示す。
【図７】本発明の好適な実施形態において、システム指定アクセス領域初期アドレス・シーケンスが、どの様にアクセス領域カスタムアドレス・シーケンスに変換されるかを模式的に示す。
【図８】本発明によるデジタル情報保護方法の別の実施形態における準備操作フロー図である。
【図９】好適な実施形態における実際のアクセス操作のフロー図である。
【図１０】好適な実施形態における第１アドレス変換を説明する模式図である。
【図１１】好適な実施形態における第２アドレス変換を説明する模式図である。
【図１２】好適な実施形態における第３アドレス変換を説明する模式図である。
【図１３】本発明によるデジタル情報保護方法のさらに別の実施形態におけるフロー図である。
【図１４】本好適実施形態におけるアドレス変換を説明する模式図である。
【発明を実施するための形態】
【０００８】
本発明を詳述する前に、本開示を通じて同様な要素は同一の符合によって表されることに留意するべきである。
【０００９】
図１は、本発明の好適な第１実施形態の主要機能を示すブロック図で、図中のハードウェア・システム１０は、データ暗号化／復号化モジュール２０と記憶空間アドレス変換モジュール２５とを含むコンピュータ１１、ならびに、記憶装置３０を含む周辺記憶装置１２を備える。図２は、本発明の好適な第２実施形態の主要機能を示すブロック図で、図中のハードウェア・システム１０は、データ暗号化／復号化モジュール２０を含むコンピュータ１１、ならびに、記憶空間アドレス変換モジュール２５と記憶装置３０とを含む周辺記憶装置１２を備える。図３は、本発明の好適な第３実施形態の主要機能を示すブロック図で、図中のハードウェア・システム１０は、コンピュータ１１、ならびに、データ暗号化／復号化モジュール２０と記憶空間アドレス変換モジュールと記憶装置３０とを含む周辺記憶装置１２を備える。
【００１０】
記憶空間アドレス変換モジュール２５の機能は以下の通りである。（１）アドレス変換キー９５と保護域初期アドレス・シーケンス７０とに従いアドレス変換規則６０を設定し、このアドレス変換規則６０を使用して保護域アドレスマッピング表６５を構成し、これにより保護域初期アドレス・シーケンス７０を保護域カスタムアドレス・シーケンス７５に変換する。（２）保護域アドレスマッピング表６５を使用してアクセス領域初期アドレス・シーケンス８０に対応するアクセス領域カスタムアドレス・シーケンス８５を取得するか、またはアドレス変換規則６０に従い計算を行ってアクセス領域初期アドレス・シーケンス８０に対応するアクセス領域カスタムアドレス・シーケンス８５を取得する。
【００１１】
データ暗号化／復号化モジュール２０の機能は以下の通りである。
（１）暗号化コード９０と暗号化アルゴリズム４０とに従い、暗号化ソースデータ５０を暗号化データ５５に暗号化する。（２）復号化コード９２と復号化アルゴリズム４５とに従い、暗号化データ５５をソースデータ５０に復号する。
【００１２】
データを記憶装置３０の保護域に保存しようとする場合には、データ暗号化／復号化モジュール２０は、ソースデータ５０を暗号化データ５５に暗号化するために使用され、それから、記憶空間アドレス変換モジュール２５は、システム指定のアクセス領域初期アドレス・シーケンス８０に対応するアクセス領域カスタムアドレス・シーケンス８５を取得するために使用される。その後、暗号化データ５５は、アクセス領域カスタムアドレス・シーケンス８５に対応する記憶位置に保存される。一方、データを読み取る際には、記憶空間アドレス変換モジュール２５は、システム指定アクセス領域初期アドレス・シーケンス８０に対応するアクセス領域カスタムアドレス・シーケンス８５を取得するために使用され、それからアクセス領域カスタムアドレス・シーケンス８５に対応する記憶位置から暗号化データ５５が読み取られる。その後、暗号化／復号化モジュール２０は、暗号化データ５５をソースデータ５０に復号するために使用される。
【００１３】
以上が本発明の主要機能の概要である。本発明のデジタル情報保護装置を用いた初期化プロセスについて以下に述べる。
【００１４】
記憶空間アドレス変換モジュール２５は、アドレス変換キー９５および記憶装置３０の保護しようとする領域の保護域初期アドレス・シーケンス７０(Ｐｉ，ｉ＝０，１，…，ｎ)に従い、アドレス変換規則６０を決定するために使用される。アドレス変換規則６０は、保護域アドレスマッピング表６５を構成するために使用され、保護域初期アドレス・シーケンス７０(Ｐｉ，ｉ＝０，１，…，ｎ)は、保護域カスタムアドレス・シーケンス(Ｓｉ，ｉ＝０，１，…，ｎ)に変換するために使用される。アドレス変換規則６０は、アドレス変換キー９５と保護域初期アドレス・シーケンス７０(Ｐｉ，ｉ＝０，１，…，ｎ)をパラメータとする関数を用いて実行することができ、この関数は、定義域（Ｐｉ，ｉ＝０，１，…，ｎ)と値域（Ｓｉ，ｉ＝０，１，…，ｎ)の１対１の対応を満足しなければならない。以下、説明を目的に、前記関数の生成方法をいくつか説明する。
【００１５】
（Ａ）保護域アドレス領域のみをパラメータとして使用する。図４に示すように、保護域初期アドレス・シーケンス７０は（０，１，…,１０００）であり、したがって、その中のアドレス領域は０〜１０００である。アドレス変換規則６０は、次のように設定することができる。
ｆ（ｘ）＝１０００−ｘ
【００１６】
したがって、このアドレス変換規則６０によれば、保護域初期アドレス・シーケンス７０（０，１，…,１０００）は、保護域カスタムアドレス・シーケンス７５（１０００,９９９,…,０）に変換される。
【００１７】
（Ｂ）アドレス変換キー９５と保護域アドレス領域とをパラメータとして使用する。図５に示すように、保護域初期アドレス・シーケンス７０は（０,１,…,４９９）で、アドレス変換キー９５は“ａ１Ｋ９”となるため、そのアドレス変換ＡＳＣＩＩキャラクタコードは、９７‐４９‐７５‐５７となる。このキャラクタコードは、未使用の１２８を使用して延長され、その結果キャラクタコードは、９７‐４９‐７５‐５７‐１２８‐１２８‐１２８‐１２８…となる。その結果アドレス変換規則６０は、
ｆ（ｘ）＝９６−ｘ  （０≦ｘ＜９７の場合）
ｆ（ｘ）＝１４５−ｘ＋９７  （９７≦ｘ＜１４６の場合）
ｆ（ｘ）＝２２０−ｘ＋１４６（１４６≦ｘ＜２２１の場合）
ｆ（ｘ）＝２７７−ｘ＋２２１  （２２１≦ｘ＜２７８の場合）
ｆ（ｘ）＝４０５−ｘ＋２７８  （２７８≦ｘ＜４０６の場合）
ｆ（ｘ）＝４９９−ｘ＋４０６  （４０６≦ｘ＜５００の場合）
となる。
【００１８】
したがって、このアドレス変換規則６０は、保護域初期アドレス・シーケンス７０（０,１,…,９６…,１４５…,２２０…,２２７，…,４９９）を保護域カスタムアドレス・シーケンス７５(９６，９５，…，０…，９７…，１４６，…，２２１，…，４０６)に変換するために使用される。
【００１９】
下記は、記憶装置３０の保護域にデータを保存する際に本情報保護装置が取る手順と方法である。
【００２０】
１．データ暗号化／復号化モジュール２０は、ソースデータ５０（Ｄｉ，ｉ＝０，１，…，ｍ）を暗号化データ５５（Ｒｉ，ｉ＝０，１，…，ｋ）に暗号化するために使用される。ソースデータ５０の全長は、暗号化データ５５の全長に等しいかそれよりも長い。保存されるデータには、明確な連続性がないため、明確な連続性を有さない記憶データの正確で完全な読み取りを防ぐことができ、これにより、保存されたデータの保護を強化することができる。この点について以下の暗号化アルゴリズムを使用し、説明する。
【００２１】
暗号化コード９０は“ＳＳｕｎ”に設定され、その暗号化ＡＳＣＩＩキャラクタコードは、０ｘ５３−０ｘ５３−０ｘ７５−０ｘ６Ｅとなる。対称アルゴリズムを用いると、暗号化アルゴリズム４０は下記となる。
Ｘｉ＝Ｘｉ〜Ｘi-1（ｉ≠０の場合）
Ｘｉ〜０ｘ５３５３７５６Ｅ（ｉ＝０の場合）
ここで、ｉは８から０で、「〜」は「排他的論理和」操作を示し、Ｘｉの長さ単位は、３２ビットである。
【００２２】
図６では、暗号化アルゴリズム４０は、ソースデータ５０（０ｘ６４５ＢＣＦ９８，０ｘ６８３９２７４Ｄ，０ｘ４Ｂ６５２１８８，…，０ｘ７８９０１２３Ｅ）が、暗号化データ５５（０ｘ３７０８ＢＡＦ６，０ｘ０Ｃ６２Ｅ８Ｄ５，０ｘ２３５Ｃ０６Ｃ５，…，０ｘ５ＥＡ５Ｂ９ＣＣ）に暗号化するために使用される。
【００２３】
２．記憶空間アドレス変換モジュール２５を使用して、保護域アドレスマッピング表６５に従うか、アドレス変換規則６０を直接使用するかして、システム指定アクセス領域初期アドレス・シーケンス８０（Ｕｉ，ｉ＝０，１…，ｘ）が、アクセス領域カスタムアドレス・シーケンス８５（Ｖｉ，ｉ＝０，１，…，ｘ）に変換され、これを順に保存する。図７におけるアドレス変換規則６０と保護域アドレスマッピング表６５は、図４に示したこれらのものと同じである。システム指定アクセス領域初期アドレス・シーケンス８０（１，２，４，６，７，９９６）は、アクセス領域カスタムアドレス・シーケンス８５（９９９，９９８，９９６，９９４，９９３，４）に変換される。したがって、暗号化データ５５（Ｒｉ，ｉ＝０，１，２，…，ｋ）は、アクセス領域カスタムアドレス・シーケンス８５（９９９，９９８，９９６，９９４，９９３，４）に対応する記憶位置に保存される。
【００２４】
記憶装置３０の保護域にあるデータを読み取る際に必要な手順と方法は以下のとおりである。
【００２５】
１．記憶空間アドレス変換モジュール２５を使用して、保護域アドレスマッピング表６５に従うか、アドレス変換規則６０を直接使用するかして、システム指定アクセス領域初期アドレス・シーケンス８０（Ｕｉ，ｉ＝０，１，…，ｘ）をアクセス領域カスタムアドレス・シーケンス８５（Ｖｉ，ｉ＝０，１，…，ｘ）に変換する。図７におけるアドレス変換規則６０と保護域アドレスマッピング表６５は、図４に示したこれらのものと同じであり、システムによって指定されるアクセス領域初期アドレス・シーケンス８０（１，２，４，６，７，９９６）が、アクセス領域カスタムアドレス・シーケンス（９９９，９９８，９９６，９９４，９９３，４）に変換される。したがって、暗号化データ５５（Ｒｉ，ｉ＝０，１，２，…，ｋ）は、アクセス領域カスタムアドレス・シーケンス８５（９９９，９９８，９９６，９９４，９９３，４）に対応する記憶位置から読み取られる。
【００２６】
２．アクセス領域カスタムアドレス・シーケンス８５（Ｖｉ，ｉ＝０，１，…，ｘ）にしたがって、暗号化データ（Ｒｉ，ｉ＝０，１，２，…，ｋ）を読み取った後、データ暗号化／復号化モジュール２０を使用して、復号化コード９２と復号化アルゴリズム４５とに従って、暗号化データ５５（Ｒｉ，ｉ＝０，１，２，…，ｋ）をソースデータ（Ｄｉ，ｉ＝０，１，…，ｍ）に復号化する。この点について以下の復号化アルゴリズムを使用した説明する。
【００２７】
復号化コード９２は“ＳＳｕｎ”に設定され、その復号化ＡＳＣＩＩキャラクタコードは、０ｘ５３−０ｘ５３−０ｘ７５−０ｘ６Ｅとなる。対称アルゴリズムを用いると、復号化アルゴリズム４５は下記となる。
Ｘｉ＝Ｘｉ〜０ｘ５３５３７５６Ｅ（ｉ＝０の場合）
Ｘｉ〜Ｘi-1（ｉ≠０の場合）
ここで、ｉは８から０で、「〜」は「排他的論理和」操作を示し、Ｘｉの長さ単位は、３２ビットである。
【００２８】
図６では、暗号化データ５５（０ｘ３７０８ｂａｆ６，０ｘ０ｃ６２ｅ８ｄ５，０ｘ２３５ｃ０６ｃ５，…，０ｘ５ｅａ５ｂ９ｃｃ）が、復号化アルゴリズム４５を使用してソースデータ５０（０ｘ６４５ｂｃｆ９８，０ｘ６８３９２７４ｄ，０ｘ４ｂ６５２１８８，…，０ｘ７８９０１２３ｅ）に復号化される。
【００２９】
図８および図９は、本発明によるデジタル情報保護方法の別の好適実施形態を示す。本実施形態は、コンピュータシステムなどのデジタル情報保護装置にあるコンピュータ・アクセス可能な記憶媒体に記憶されたコンピュータソフトウェアで、ハードディスクなどの記憶装置に保存されたデジタル情報を保護するためのものである。本実施例のコンピュータソフトウェアプログラムを用いてデジタル情報の保護を実行するための手順と方法を、図８と図９とを参照しながら以下に記述する。
【００３０】
まず各記憶アドレスの大きさを１バイトとし、記憶装置の基本記憶構成単位を５１２バイト（すなわち１セクター）とする。記憶装置の保護されたアドレス領域は、２０４８バイト目から２０９７３５６８バイト目までの合計２０９７１５２０バイトである。
【００３１】
本実施例において、プログラムは、図８に示す準備操作と、図９に示す実際のアクセス操作に分けられる。図８に示す準備操作では、３つの異なる変換構成単位に従って、３つのアドレス変換規則がまず生成される。このようにして生成された３つのアドレス変換規則に従い、その後の（図９に示すような）実際のアクセス操作によってアクセスされるアドレスに対しアドレス変換を実行する。
準備操作（図８参照）
１．第１アドレス変換
【００３２】
図８の工程１１において、プログラムが１０２４バイトの変換バッチ（以下、「第１変換バッチ」と呼ぶ）を用いて、保護されたアドレスの２０９７１５２０バイトを２０４８０（２０９７１５２０バイト／１０２４バイト）個の第１変換バッチ、すなわち、０〜１０２３，１０２４〜２０４７，２０４８〜３０７１，…に分割する。次いで、図３に示すように、４ビットを１つの変換構成単位（以下、「第１変換構成単位」と呼ぶ）として、各第１変換バッチのアドレス領域が、２０４８（１０２４バイト／４ビット）個のアドレス・ブロック（以下、「第１アドレス・ブロック」）に変換される。例として、第１番目の第１変換バッチ０〜１０２３を挙げると、第１アドレス・ブロックは、アドレス・シーケンス［０，１，２，３，…，２０４７］として表わすことができる。その後、工程１２を実行し、パラメータとしてアドレス領域［０，１，２，３，…，２０４７］を使用して、アドレス・ブロック再配列規則（以下、第１アドレス・ブロック再配列規則）が生成される。例えば、再生不可能な乱数シーケンス配列スキームを用いる。一定時間内のコンピュータ稼働率、ハードディスクアクセス速度、ネットワークアクセスデータ量などの情報に基づいて乱数シーケンスを生成し、この乱数シーケンスの範囲は、０〜２０４７、例えば、［２３１，１０３８，３，４９，２６，３２２，…］に調節される。そして、この乱数シーケンスのｉ番目の位置のアドレスと、アドレス・シーケンスのｉ番目のアドレスとを交換する。例えば、アドレス・シーケンスの０番目のアドレス、すなわち、「０」と、乱数シーケンス０番目の位置のアドレス、すなわち、「２３１」とを交換する。また、アドレス・シーケンスの１番目のアドレス、すなわち、「１」は、乱数シーケンス１番目の位置のアドレス、すなわち、「１０３８」と交換される。このようにして、図１０に示すようなアドレス・ブロック変換表（以下、第１アドレス・ブロック変換表）［２３１，１０３８，７３，２７，…］が生成される。
【００３３】
２番目の第１変換バッチの第１アドレス・ブロック変換表は、１番目の第１アドレス・ブロック変換表の数値を２０４８で変換（加算）したもの、等等である。このようにして、第１変換バッチの全て（２０４８０バッチ）について、第１アドレス・ブロック変換表が得られる。
【００３４】
前述した乱数シーケンスは再生できないので、プログラムは、この乱数シーケンスまたは第１アドレス・ブロック変換表を保存して、これらを今後のデータアクセスの際のアドレス変換に容易に使用できるようにする必要がある。
【００３５】
２．第２アドレス変換
工程１３では、図１１に示すように８１９２０バイトを１つの変換バッチ（以下、第２変換バッチ）として、プログラムが、保護された２０９７１５２０バイトのアドレスを２５６個（２０９７１５２０バイト／８１９２０バイト）の第２変換バッチ、すなわち、０〜８１９１９，８１９２０〜１６３８３９，１６３８４０〜２４５７５９，…、に分割する。次いで、図１１に示すように、６４０バイトを１つの変換構成単位（以下、「第２変換構成単位」と呼ぶ）として使用して、各第２変換バッチのアドレス領域は、１２８（８１９２０バイト／６４０バイト）個のアドレス・ブロック（以下、「第２アドレス・ブロック」）に変換される。例えば、第１番目の第２変換バッチである０〜８１９１９の場合、変換された第２アドレス・ブロックはアドレス・シーケンス［０，１，２，３，…１２７］と表すことができる。その後、工程１４を実行し、パラメータとしてアドレス領域 ［０，１，２，３，…，１２７］を使用して、アドレス・ブロック再配列規則（以下、第２アドレス・ブロック再配列規則）が生成される。例えば、アドレス・シーケンス［０，１，２，３，…１２７］の再配列にデータ暗号化標準（以下、ＤＥＳ、ｄａｔａ  ｅｎｃｒｙｐｔｉｏｎ  ｓｔａｎｄａｒｄ）を用いた暗号化シーケンス配列スキームが使用される。まず、アドレス・シーケンス［０，１，２，３，…］をバイナリー形式のバイナリー番号シーケンス［０００００００，００００００１，０００００１０，０００００１１，…］で表す。次いで、ＤＥＳ計算プロセスを使用して、このバイナリ番号シーケンス［０００００００，００００００１，０００００１０，０００００１１，…］を、例えば、「１ｈ％ｊ９〜＆ｆ」などのコードを使用して、［０１０１０００，１０００１００，１１０００００，００１１０００，…］、（これは１０進法では［４０，６８，９６，２４，…］となる）に暗号化する。そして、この番号シーケンスのｉ番目の位置のアドレスと、アドレス・シーケンスのｉ番目のアドレスとを交換する。例えば、アドレス・シーケンスの０番目のアドレス、すなわち、「０」と、番号シーケンスの０番目のアドレス、すなわち、「４０」とを交換する。また、アドレス・シーケンスの１番目のアドレス、すなわち、「１」は、番号シーケンス１番目の位置のアドレス、すなわち、「６８」とを交換する。このようにして、図１１に示すアドレス・ブロック変換表（以下、第２アドレス・ブロック変換表）［４０，６８，１０１，８，…］を得ることができる。２番目の第２変換バッチの第２アドレス・ブロック変換表は、１番目の第２アドレス・ブロック変換表の数値を１２８で変換（加算）したもの、等等である。このようにして、第２変換バッチの全て（２５６バッチ）について、第２アドレス・ブロック変換表が得られる。
【００３６】
さらに、前述した番号シーケンスは、暗号化プロセスを使用して生成されるため、プログラムは、暗号化コードを保存して、これらを今後のデータアクセスのために同じアドレス変換に使用できるようにする必要がある。
【００３７】
３．第３アドレス変換
工程１５において、プログラムは、第３の変換のための変換バッチ（以下、第３変換バッチ）を２０９７１５２０バイト（すなわち、保護されたアドレス領域の大きさに相当）に設定し、８１９２０バイトを１つの変換構成単位（以下、第３変換構成単位）とし、この２０９７１５２０バイトの第３変換バッチは、２５６個（２０９７１６２０バイト／８１９２０バイト）のアドレス・ブロック（以下、第３アドレス・ブロック）に変換される。したがって、変換された第３アドレス・ブロックは、アドレス・シーケンス［０，１，２，３，…，２５５］として表される。その後、工程１６が、アドレス領域［０，１，２，３，…，２５５］をパラメータとして、アドレス・ブロック再配列規則（以下、第３アドレス・ブロック再配列規則）を生成するために、実行される。例えば、シードを２７４９８としたコンピュータのＲａｎｄ関数を使用した再生可能な乱数シーケンス配列スキームを用い乱数シーケンスを０から２５５の範囲、例えば、［１２，１８７，３，４９，２６，２４４，…］を調整することができる。その後、アドレス・シーケンス内のｉ番目のアドレスが、乱数シーケンス内のｉ番目のアドレスと交換される。例えば、アドレス・シーケンスの０番目のアドレス、すなわち、「０」と、乱数シーケンスの０番目のアドレス、すなわち、「１２」とを交換する。また、アドレス・シーケンスの１番目のアドレスは、乱数シーケンス１番目の位置のアドレス、すなわち、「１８７」と交換される。このようにして、図１２に示すアドレス変換表（以下、第３アドレス変換表）［１２，１８７，３６，２８，…］を得ることができる。
【００３８】
さらに、前述した乱数シーケンスは、再生可能な乱数シーケンス配列スキームを使用して生成されるため、プログラムは、コンピュータのＲａｎｄ関数のシード値を記憶し、将来、データアクセスのために同じアドレス変換表を容易に使用できるようにする必要がある。
【００３９】
従って、図９の工程２１で、記憶装置上にデータを書き込ませるためのコンピュータの要求をコンピュータのオペレーティングシステムからプログラムが受信した場合について考える。例えば、記憶装置３０の２０４３番目〜２０５７番目のバイトアドレスにデータを書き込もうとする場合、データが書き込まれるアドレスのいくつかは保護されていない領域、すなわち、２０４３番目〜２０４７番目のバイトを含むので、プログラムは、まず、（データ書込み操作を直接実行して）保護されていない領域へのデータ書込みをできるようにし、その後、保護領域、すなわち、２０４８番目〜２０５７番目のバイトへのデータ書込みができるようにする。
【００４０】
さらに、本実施形態におけるデータは保存前に暗号化され、復号化／暗号化の各プロセスで処理されるデータの量は８バイトであることから、プログラムは、書込みレンジを２０４８番目〜２０６３番目のバイト（すなわち８バイトの整数倍）に調節する必要があり、このデータの暗号化および書き込みを２つの操作で実行する。また、データが初めて書きこまれる領域、すなわち、２０４８番目〜２０５５番目のバイトまでは、その全域のアップデートが必要なデータ領域であるため、プログラムは、データ読取りを最初に実行しなくてもよい。書込み操作は、データの暗号化の後、直接実行してもよい。
例えば、書き込もうとするデータが、
０ｘ７５，０ｘ５２，０ｘ２１，０ｘ６７，０ｘ４５，０ｘ９Ａ，０ｘＢ５，０ｘＣ３，
であるとする。この場合、暗号化コード［９ｄＹ２ａＢ］を使用した、デジタルデータの暗号化（ＤＥＳ）の結果生み出される暗号化データは、
０ｘ９Ｄ，０ｘＣ５，０ｘＦ７，０ｘ１１，０ｘ０Ａ，０ｘ８３，０ｘ１７，０ｘ４４
である。
【００４１】
従って、データを記憶装置３０に書き込む前に暗号化データを保護するため、本発明のプログラムは、このアドレス領域に３つの変換を行えるようにしている。すなわち、最初にデータが書き込まれる２０４８番目〜２０５５番目のバイトのアドレス領域には、上で生成した第１、第２および第３アドレス・ブロック再配列規則に従った３つのアドレス変換が行われ、暗号化データの書き込みアドレスが見出される。
【００４２】
実際のアクセス操作（図９参照）
１．第１アドレス変換
まず工程２２において、プログラムは、アドレス・バッチ２０４８〜２０５５が属する第１変換バッチを決定し、アドレス・バッチ２０４８〜２０５５が、前述した第１変換バッチの１つ、すなわち、０〜１０２３に属することを認識する。従って、書込みアドレス領域、すなわち、２０４８番目〜２０５５番目のバイト、（全長８バイト）は、第１変換構成単位（すなわち４ビット）に基づき１６のアドレス・ブロックに変換され、これがアドレス・シーケンス［０，１，２，…，１５］として表される。この後、工程２３が、このアドレス・シーケンス［０，１，２，…，１５］に対応する再配列アドレス・シーケンス［２３１，１０３８，７３，２３，…］（以下、第１アドレス・シーケンス）を検索するために、実行される。この対応は、アドレス・ブロック再配列規則に従って生成された第１アドレス・ブロック変換表に基づく。
【００４３】
２．第２アドレス変換
まず工程２４において、ブログラムは、第１アドレス・シーケンスの値が属する第２変換バッチを決定する。変換後の第１アドレス・シーケンス［２３１，１０３８，７３，２３，…］の全ての値が、０〜１２８０（１２８０＝６４０バイト／４ビット）になるものと仮定して、０〜１２８０アドレス・バッチは、第２アドレス変換の第２変換バッチの最初のバッチに属し、第２アドレス・ブロックの最初のアドレス領域、すなわち、第２ブロックアドレス・シーケンス［０，１，２，…，１２８]の［０］内に位置づけられる。工程２４において、プログラムは、第２アドレス・ブロック再配列規則に基づいて生成された第２アドレス・ブロック変換表から、第２アドレス・ブロック変換表［４０，６８，１０１，８，…］の値の中で、第２アドレス・ブロックの最初の値［０］に対応する値が、[４０]であることを見出す。したがって、第１アドレス・シーケンス内のアドレスは、４０番目の第２アドレス・ブロックのアドレス領域に変換される。すなわち、第１アドレス・シーケンス[２３１，１０３８，７３，２３，…]の各値に５１２００（４０×１２８０バイト）が加算され、各第２ブロックのアドレス領域は１２８０バイトとなる。このようにして、第２アドレス・シーケンス［５１４３１，５２２３８，５１２０３，５１２０２，…］を得ることができる。
【００４４】
３．第３アドレス変換
同様にして工程２５において、プログラムは、第２アドレス・シーケンス［５１４３１，５２２３８，５１２０３，５１２０２，…]が属する第３変換バッチをまず決定し、第２アドレス・シーケンス［５１４３１，５２２３８，５１２０３，５１２０２，…]内の全ての数値が、０〜１６３８４０(１６３８４０＝８１９２０バイト／４ビット)の範囲内、すなわち、第３アドレス・ブロックの最初の領域、つまり、第３変換バッチの第３アドレス・ブロック・シーケンス［０，１，２，３，…，２５６］内の最初の値［０］にあることを確認する。さらに、第３アドレス・ブロック再配列規則に基づいて生成された第３アドレス・ブロック変換表［１２，１８７，３６，２８，…］から、第３アドレス・ブロック変換表［１２，１８７，３６，２８，…］の値の中で、第３アドレス・ブロックの最初の値、すなわち、［０］が対応する値は、［１２］であることが分かる。したがって、第２アドレス・シーケンスのアドレスは、第３変換バッチの第３アドレス・ブロックにおける１２番目のアドレス領域に変換される。すなわち、第２アドレス・シーケンス［２３１，１０３８，７３，２３，…］の各値に１９６６０８０(１２×１６３８４０バイト)が加算され、各第３アドレス・ブロックのアドレス領域は１６３８４０バイトとなる。このようにして、第３アドレス・シーケンス［２０１７５１１，２０１８３１８，２０１７２８３，２０１７２８２，…］を得ることができる。
【００４５】
最後に工程２６において、プログラムは、第３アドレス・シーケンスのアドレスを、データが、記憶装置の記憶構成単位に基づいて記憶装置３０に実際に書き込まれるアドレスに変換する。例えば、記憶装置３０の記憶単位が、５１２バイト（１セクター）であるとして、この記憶装置の書込みアドレスに対応する第３アドレス・シーケンス中のアドレスは、それぞれ［１９７０．ｘｘ，１９７１．ｘｘ，１９７０．ｘｘ，１９７０．ｘｘ，…］であり、ここで、１９７０．ｘｘは、２０１７５１１／１０２４（５１２バイト／４ビット）＝１９７０…２３１（残部）、すなわち、１９７０セクターの２３１番目のアドレスを意味する。
【００４６】
その後、暗号化された８バイトデータが、４ビットの書込み構成単位で表される１６のデータブロックに分けられてから、このデータが、記憶装置３０の書込みアドレス［１９７０．ｘｘ，１９７１．ｘｘ，１９７０．ｘｘ，１９７０．ｘｘ，…］に書き込まれる。すなわち、各データブロックは、各書き込みアドレスの最初の４ビットか、または最後の４ビットに記録される。
【００４７】
第１データ書込みを完了した後、プログラムは、第２データ書込み処理を行う。第２データ書込み領域２０５６番目〜２０６３番目のバイトの内、２０５８番目〜２０６３番目のバイトのデータは更新されないので、プログラムは、まず、２０５６〜２０６３バイト目のデータを読み込み、このデータを復号化し、２０５６番目〜２０５７番目のバイトのデータを更新してから、再度すべてのデータを暗号化する必要がある。その後、アドレス変換後の２０５６番目〜２０６３番目のバイトのアドレスの再配列されたアドレス（すなわち第３アドレス）を上述した方法で見出し、これを記憶装置３０上の実際の書込みアドレスに変換する。続いて、暗号化データが記憶装置３０に書き込まれる。
【００４８】
以上の記述から明らかなように、本実施形態のデジタル情報保護装置における記憶装置の保護されたアドレス領域は、異なるアドレスに再マップされる異なる変換規則を用いた複数の変換（本実施形態では３つの変換を用いるが、２つの変換または１つの基本変換でもよい）が施され、保護されたアドレス領域に書き込まれたデータが、保護されたアドレス領域の不連続なアドレスに分散および分配できるようにする。このようにして、記憶装置に保存されたデータが盗まれた場合でも、分散したデータは最初の暗号化データに再構築されず、これにより、この記憶装置に保存されたデータを十分かつ強力に保護することができる。
【００４９】
図１３は、本発明によるデジタル情報保護方法の別の実施形態を示すもので、有線または無線ネットワークを通じてデータを送信するサーバー端またはクライアント端に適用され、送信端（サーバー端またはクライアント端）から送信されるデータのセグメントを保護するためのものである。したがって、本実施形態のデジタル情報保護方法は、サーバー端、および／またはクライアント端に配置された（コンピュータシステムなどの）デジタル情報保護装置のコンピュータによるアクセスが可能な記録媒体にあるコンピュータソフトウェアプログラムの形態で実施され、クライアント端からサーバー端に向けて送信されるデジタル情報、および／またはサーバー端からクライアント端に向けて送信されるデジタル情報の保護を目的とする。
【００５０】
プリセットデータ構成単位が１バイトで、送信される単位データ量が８バイトの場合を例に使用すると、サーバー端とクライアント端とが互いにデータを送信する場合、通信接続がまず確立される。通信接続が確立された後、識別認証、保護域開始・終了通信、記憶空間アドレス変換規則およびコード通信、データ暗号化／復号化およびコード通信が行われる。以下、識別認証手順について、従来の認証方法を使用して簡単に説明する。
【００５１】
識別認証の際、サーバー端およびクライアント端のそれぞれは、それ自身のパブリックキーインフラストラクチャ（ＰＫＩ）を保有する。まずクライアント端が、識別認証値としてランダム・シーケンス信号を生成する。例えば、シード値として現在のＣＰＵの稼働率を、［３２，１４５，２０４，９，１５８，３，２２２，６８］などの８連続バイトをＲａｎｄ関数によって取得し、さらに２種類の１６連続バイトを、１つは保護域開始信号、例えば、［１２９，３３，５６，１８８，７，８，２５１，２，１３９，１９３，６，８８，２７，１８，２０１，１２］、もう１つは保護域終了信号、例えば、［４２，１１１，２，３８，１０７，２４８，５１，７２，１０，３１，１７６，２３８，９，４５，３５，１４２］などとして、Ｒａｎｄ関数を使用して取得する。さらに、プリセット変換スキーム（詳細下記）を使用してアドレス変換規則を設定し、アドレス変換コードは、Ｒａｎｄ関数を使用して取得される４連続バイトの値、例えば［１３，２１３，６，８８］などに設定される。暗号化／復号化には、プリセットＤＥＳ（デジタル暗号化標準）が用いられる。暗号化コードは、Ｒａｎｄ関数を使用して得られる８連続バイト、例えば、［６，２３，１４５，２３１，２５５，９，８３，１２１］などの値である。
【００５２】
従って、クライアント端が通信開始および終了信号、アドレス変換規則および変換コードを確立し設定すると、このようなデータは、認証機関から入手、またはクライアント端に事前に保存され、サーバー端に送信されるパブリックキーを基に暗号化される。
【００５３】
サーバー端が上述のデータを受信した後、このサーバー端は、そのプライベートキーを使用して受信データを復号化する。また、サーバー端は、認証機関から入手またはサーバー端に事前に保存されたクライアント端のパブリックキーを使用した復号化から得られる識別認証値（ランダムシーケンス信号）を暗号化し、これをクライアント端に送信する。
【００５４】
クライアント端がサーバー端から確認データを受信した後、クライアント端は、そのプライベートキーを用いて受信データを復号化し、復号化から得られる識別認証（ランダムシーケンス信号）を、以前に生成した識別認証値と比較して、サーバー端の識別を確認する。
【００５５】
同じ確認手続きがサーバー端において、反対の方向、すなわち、サーバー端からクライアント端に向けて開始され、確認される。その後、クライアント端およびサーバー端は、それぞれの保護域開始信号を送ることができるようになり、送信前に暗号化とアドレス変換規則によるデータ暗号化とを使用してデータを保護する。サーバー端またはクライアント端が保護域開始信号を相手方から受信する際、通信手順に規定されるスキームを使用して受信データを変換し、また正しいデータを得るためにこのデータを復号しなければならない。
【００５６】
さらに、保護されたデータ文字列を送信する場合、送信される有効データのバイト数を文字列開始のフィールドに記録し、送信されるデータの量を８バイトの単位データ量の整数倍とする必要があるが、欠陥は乱数または他の任意の数によって補償される。例えば、５９バイトのデータを送信する場合、このデータ文字列の最初の２バイトは数値５９を記録するために用いられ、３バイトの空白データをデータ文字列の後に加え（すなわち、５９＋２＋３＝６４）、８組の８バイトデータを構成する必要がある。
【００５７】
暗号化の手順は上述したものと同じであり、簡便性のためここでの再記述は省略する。これら８組のデータが、〔０ｘ２３，０ｘ４３，０ｘＦ６，０ｘＡ８，０ｘ０７，０ｘ８Ｄ，０ｘ５１，０ｘ９２〕〔…〕〔…〕〔…〕〔…〕〔…〕〔…〕〔…〕に暗号化されるものとする。
【００５８】
本実施形態のデジタル情報保護法を図１３の工程６１に示す。まず、図１４に示すように、プログラムが、保護されるべき保護されたアドレス領域の変換を許可する。すなわち、本実施形態の各データセットの８バイトアドレス領域を、例えば、２ビットのプリセット変換構成単位によって３２（８バイト／２ビット）のアドレス・ブロックに分ける。続いて、工程６２において、プログラムは、パラメータとしてアドレス・ブロック再配列規則を生成するために、アドレス・ブロックを使用し、本実施形態においては、修正合同法（Ｄ．Ｅ．Ｋｎｕｔｈ，Ｔｈｅ  Ａｒｔ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｐｒｏｇｒａｍｍｉｎｇ，Ｖｏｌ．２：Ｓｅｍｉｎｕｍｅｒｉａｌ  Ａｌｇｏｒｉｔｈｍｓ，Ｃｈａｐｔｅｒ  ３，Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ，１９６９、参照）をランダム・シーケンス生成法として採用する。この生成法では、プリセットアドレス変換コード［１３，２１３，６，８８］に従い、素数Ｐｒｍ１が３７３から選定される１３番目の素数、すなわち、４４３である（ここで、３７３は無作為に選ばれた数字で、大きくなりすぎないようにするべきである。これは、素数［４４３，１８７１，４０１，９４７］を順次選定した後に決定される素数計算式｛Ｒｍ［ｉ＋１］＝ＭＯＤ（Ｍｕｌｔ…．）｝の計算値が、プロセッサの数値範囲を越えないようにするためである。）。素数Ｐｒｍ２は、３７３からの２１３番目の素数１８７１である。Ｐｌｓは、３７３からの６番目の素数４０１である。乱数シーケンスの初期値Ｒｍ［０］は、３７３からの８８番目の素数９４７である。
【００５９】
乱数シーケンス値は下記によって計算される：
Ｍｕｌｔ＝Ｐｒｍ１×Ｐｒｍ２＋１＝１６５２４０
Ｄｉｖ＝Ｐｒｍ１×Ｐｒｍ２×Ｐｒｍ２＝６１６３４１４７
Ｒｍ［ｉ＋１］＝ＭＯＤ（Ｍｕｌｔ×Ｒｍ［ｉ］＋Ｐｌｓ，Ｄｉｖ）＝Ｍｏｄ（１６５２４０×Ｒｍ［ｉ］＋４０１，６１６３４１４７）
Ｒｍ＝［９４７，３３２１４３８７，９４２０３７２,５１８８７１９６，３７３４６５６５，２７４３２６２６，２２１４５３７９，２１４８４８２４，２５４５０９６１，３４０４３７９０，４７２６３３１１，３４７５３７７，２５９４８２８２，…］。合計３２の値が得られる。
【００６０】
Ｒｍの値を合計３２の剰余値Ｒｍａ：［１９，１９，２０，２８，５，１８，３，２４，１７，１４，１５，１７，２６，…］を得るために、それぞれ３２で割る。
【００６１】
次いで、Ｒｍａ［ｉ］番目のアドレスの数値が順次［ｉ］番目のアドレスに保存される。もし、Ｒｍａ［ｉ］の値がすでに使用されている場合には、Ｒｍａ［ｉ］の増分値（３２で除した際の剰余で、これまでに使用されていない値まで増加させた値）が、［ｉ］番目のアドレスに保存される。このようにして、図１４に示すアドレス・ブロック変換表ＲＭ、［１９，２０，２１，２８，５，１８，３，２４，１７，１４，１５，２２，２６…］を得ることができる。
【００６２】
従って、前述したアドレス変換規則とアドレス・ブロック変換表ＲＭとが構成された後、アドレス・バッチ（すなわち８バイトの保護されたアドレス領域）に第１セットの暗号化データをロードしたい場合には、工程６３で、１変換構成単位として、２ビットを使用して、８バイトのアドレス空間が、まず、３２のアドレス・ブロックに変換される。その後、アドレス・ブロック変換表ＲＭに基づいて、アドレス・バッチ中のアドレス・ブロックのアドレスを再配列する。次いで、暗号化データの第１セットを、１保存構成単位として２ビットを使用して、３２のデータブロックに分ける。これは１０進法で、［０，２，０，３，１，０，０，３，３，３，１，２，２，２，２，０，０，０，３，３，２，０，３，１，２，２，０，１，２，１，０，２］として表される。工程６５では、この３２のデータブロックは、再配列された３２のアドレス・ブロックに順次保存される。従って、図１４に示すように、再配列された３２のアドレス・ブロックに順次保存された後の暗号化データの第１セットは、［３，２，０，２，０，３，３，２，０，２，０，３，０…］となる。同様に、暗号化データの第２から第８セットは、前述の変換スキームを使用して再配列され、その後、これらのデータが上述の方法で送信される。
【００６３】
以上から明らかなように、本実施形態では、データの送信前に、変換構成単位に基づき複数のアドレス・ブロックに送信される単位データ量によって占められたアドレス・バッチ（すなわち、前述の保護されたアドレス領域）を変換するためのデジタル情報保護装置を送信端に設け、このアドレス・ブロックに基づいて、アドレス変換規則を生成し、この規則からアドレス変換表を生成することにより、前記データによって占められたアドレス・バッチが、前記変換構成単位に基づいて複数のアドレス・ブロックに変換され、さらに、アドレス・ブロックのアドレスが、前に生成されたアドレス変換規則またはアドレス変換表に従って再配列される。その後、データは、再配列されたアドレス・ブロックに順次ロードされ、データシーケンスを形成して、その後、送信される。このように、データは、送信前に十分に分散されるので、送信プロセスの途中で万一の中断があったとしても暗号化データを元の暗号化データに再構成することができず、これにより送信プロセスの間に完全かつ強固な保護が提供される。
【００６４】
さらに、デジタル情報保護方法は、コンピュータシステムに保存されるように構成されたコンピュータプログラムソフトウェアとして実施されているが、本発明の方法は、集積回路、電子回路、１回プログラムで制御できる電子回路（またはプログラマブル論理回路）で中央演算回路含む、または含まないもの、および論理計算能力を有するものでも実施することができる。
【００６５】
さらに、暗号化データのクラッキングに通じるアドレス変換スキームへの権限のないアクセスを防止するため、第１の好適な実施形態で実行された複数（３つ）の変換手順を異なる装置で実行し制御することもできる。例えば、ユーザによって入力されたコードを第１アドレス変換の変換コードとして使用し、ユーザによってコンピュータシステムに挿入されたチップカードから読み取られた変換表を第２アドレス変換の実行に使用し、さらにネットワークサーバーが、第３アドレス変換を制御し実行することができる。このような制御スキームは、前述した準備操作および実際のアクセス操作に適用することができる。
【００６６】
さらに、アドレス変換規則、アドレス変換表、または上記実施形態で生成される変換コードは、磁気カード、ＣＤ、ＤＶＤ、スマートカード、ＲＡＭディスク、チップカード、ＲＦ装置、赤外線発光ダイオード装置など、磁気的性質、光学、集積回路、電子回路または電磁波を利用した読み取り用（または書込み用）記憶媒体に保存することができる。また、前述の変換コードを、キーボードを介してユーザが入力する、またはユーザの生物学的特質から得ることにより、アドレス変換スキームへの安易なアクセスをさらに防ぐことができる。
【００６７】
以上、本発明を最も実用的で好適と考えられる実施形態に関連付けて記述したが、本発明は開示した実施形態に限定されるものでは無く、最も広い解釈の精神と範囲内に含まれる様々な構成を含むことを意図するもので、このような改良と等価な構成のすべてを包含するものであるものと理解される。
【図１】
2014098923.tif 000003
【図２】
2014098923.tif 000004
【図３】
2014098923.tif 000005
【図４】
2014098923.tif 000006
【図５】
2014098923.tif 000007
【図６】
2014098923.tif 000008
【図７】
2014098923.tif 000009
【図８】
2014098923.tif 000010
【図９】
2014098923.tif 000011
【図１０】
2014098923.tif 000012
【図１１】
2014098923.tif 000013
【図１２】
2014098923.tif 000014
【図１３】
2014098923.tif 000015
【図１４】
2014098923.tif 000016
【手続補正書】
【提出日】平成26年1月15日(2014.1.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デジタル情報を保護する方法であって、前記方法は、ハードウェア・システム（１０）によって実行され、
（Ａ）前記ハードウェア・システム（１０）の記憶空間アドレス変換モジュール（２５）によって、プリセット変換構成単位に基づいて保護されたアドレス領域を記憶装置（３０）の複数のアドレス・ブロックに変換するステップ、およびパラメータとして前記アドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
（Ｂ）前記記憶空間アドレス変換モジュール（２５）によって、データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
（Ｃ）前記記憶空間アドレス変換モジュール（２５）によって、前記アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記ハードウェア・システム（１０）のデータ暗号化／復号化モジュール（２０）によって、前記データを前記再配列されたアドレスへロードするステップを含み、
ステップ（Ａ）において、
前記アドレス・ブロック再配列規則は、多数の前記アドレス・ブロックおよび前記アドレス変換キー（９５）を使用して構成され、
前記アドレス・ブロック再配列規則は、暗号化コード（９０）として前記アドレス交換キー（９５）を使用するデータ暗号化標準を利用することを含む暗号化配列スキームを使用し、
前記アドレス・ブロックによって構成されるアドレス・シーケンスのバイナリ表現である数順を暗号化するステップと、アドレス・ブロック・シーケンスとするために十進数の暗号化されたバイナリの数順を表すステップと、アドレス変換表を生成することにより、前記アドレス・ブロック・シーケンスにおいて、ｉ番目のアドレス・ブロックをｉ番目に位置を有するアドレス・ブロックに交換するステップを含むことを特徴とする、デジタル情報を保護する方法。
【請求項２】
前記保護されたアドレス領域は、記憶装置（３０）の記憶アドレス空間であり、
ステップ（Ｃ）において、前記データを前記再配列されたアドレスへロードする前に、各々の前記再配列されたアドレスは、前記記憶装置（３０）の記憶構成単位に従って、前記記憶装置（３０）の実際の書込みアドレスに変換されることを特徴とする、請求項１に記載のデジタル情報を保護する方法。
【請求項３】
前記変換構成単位が、１バイト、４ビットおよび２ビットのうちの１つであることを特徴とする、請求項１に記載のデジタル情報を保護する方法。
【請求項４】
前記アドレス変換キー（９５）は、外部的に入力されることを特徴とする、請求項１に記載のデジタル情報を保護する方法。
【請求項５】
ステップ（Ｃ）において、前記保護されたアドレス領域における前記アドレス・ブロックの前記再配列されたアドレスは、前記アドレス変換表に従って検索されることを特徴とする、請求項１に記載のデジタル情報を保護する方法。
【請求項６】
デジタル情報を保護する方法であって、前記方法は、ハードウェア・システム（１０）によって実行され、
（Ａ）前記ハードウェア・システム（１０）の記憶空間アドレス変換モジュール（２５）によって、保護されたアドレス領域を複数の第１変換バッチに分割するステップ、第１変換構成単位に基づいて各々の前記第１変換バッチのアドレス領域を記憶装置（３０）の複数の第１のアドレス・ブロックに変換するステップ、およびパラメータとして前記第１アドレス・ブロックを使用して前記第１のアドレス・ブロックを再配列するために第１アドレス・ブロック再配列規則を生成するステップと、
（Ｂ）前記記憶空間アドレス変換モジュール（２５）によって、前記保護されたアドレス領域を複数の第２変換バッチに分割するステップ、プリセット第２変換構成単位に基づいて各々の前記第２変換バッチのアドレス領域を複数の第２のアドレス・ブロックに変換するステップ、およびパラメータとして前記第２アドレス・ブロックを使用して前記第２アドレス・ブロックを再配列するために第２アドレス・ブロック再配列規則を生成するステップと、
（Ｃ）前記記憶空間アドレス変換モジュール（２５）によって、前記保護されたアドレス領域を少なくとも１つの第３変換バッチに分割するステップ、プリセット第３変換構成単位に基づいて前記少なくとも１つの第３変換バッチのアドレス領域を複数の第３アドレス・ブロックに変換するステップ、およびパラメータとして前記第３アドレス・ブロックを使用して前記第３アドレス・ブロックを再配列するために第３アドレス・ブロック再配列規則を生成するステップ、
（Ｄ）前記記憶空間アドレス変換モジュール（２５）によって、データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記アドレス・バッチが属する前記第１変換バッチを決定するステップ、前記第１変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、および前記第１、第２および第３アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、ならびに前記ハードウェア・システム（１０）のデータ暗号化／復号化モジュール（２０）によって、前記データをこのように検索された前記再配列されたアドレスへロードするステップとを含み、
ステップ（Ｄ）は、
（Ｄ１）前記第１アドレス・ブロック再配列規則に従って、前記第１変換バッチにおける各々の前記アドレス・ブロックの再配列された第１アドレスを検索するステップと、
（Ｄ２）各々の前記再配列された第１アドレスが属する前記第２変換バッチを決定するステップ、および前記第２アドレス・ブロック再配列規則に従って、前記それぞれの再配列された第１アドレスが属する前記第２変換バッチにおいて、各々の前記再配列された第１アドレスの再配列された第２アドレスを検索するステップと、
（Ｄ３）各々の前記再配列された第２アドレスが属する前記第３変換バッチを決定するステップ、および前記第３アドレス・ブロック再配列規則に従って、前記それぞれの再配列された第２アドレスが属する前記第３変換バッチにおいて、各々の前記再配列された第２アドレスの再配列された第３アドレスを検索するステップ、および前記データを前記再配列された第３アドレスへロードするステップとを含むことを特徴とする、デジタル情報を保護する方法。
【請求項７】
前記保護されたアドレス領域が、前記記憶装置（３０）の記憶アドレス空間であり、
ステップ（Ｄ３）は、
前記データを前記再配列された第３アドレスへロードする前に、各々の前記再配列された第３アドレスは、前記記憶装置（３０）の記憶構成単位に従って、前記記憶装置（３０）の実際の書込みアドレスに変換され、および前記データは、このように変換された前記実際の書込みアドレスにおいて記憶されることを含むことを特徴とする、請求項６に記載のデジタル情報を保護する方法。
【請求項８】
前記第１アドレス・ブロック再配列規則が、各々の前記第１変換バッチの前記第１アドレス・ブロックの数の範囲内で乱数配列を生成するためにコンピュータ内部ハードウェアの運用情報を利用することを含む再生不可能なランダム・シーケンス配列スキームを使用し、および第１アドレス・ブロック変換表を生成することにより、前記乱数配列において、ｉ番目の第１アドレス・ブロックをｉ番目の位置を有する第１アドレス・ブロックに交換するステップを含むことを特徴とする、請求項６に記載のデジタル情報を保護する方法。
【請求項９】
ステップ（Ｄ１）において、前記第１変換バッチにおける各々の前記アドレス・ブロックの前記再配列された第１アドレスは、前記第１アドレス変換表に基づいて検索されることを特徴とする、請求項８に記載のデジタル情報を保護する方法。
【請求項１０】
前記第２のアドレス・ブロック再配列規則が、各々の前記第２変換バッチの前記第２アドレス・ブロックの範囲内で乱数配列を生成するためにデータ暗号化規格およびアドレス変換キー（９５）を使用し、および第２アドレス・ブロック変換表を生成することにより、前記乱数配列において、ｉ番目の第２アドレス・ブロックをｉ番目の位置を有する第２のアドレス・ブロックに交換するステップを含むことを特徴とする、請求項６に記載のデジタル情報を保護する方法。
【請求項１１】
ステップ（Ｄ２）において、前記第２変換バッチにおける各々の前記再配列された第１アドレスの前記再配列された第２アドレスは、前記第２アドレス変換表に基づいて検索されることを特徴とする、請求項１０に記載のデジタル情報を保護する方法。
【請求項１２】
前記第３アドレス・ブロック再配列規則が、前記少なくとも１つの第３変換バッチの前記第３アドレス・ブロックの範囲内で乱数配列を生成するために、シードをもつコンピュータのＲａｎｄ関数を利用することを含む再生可能なランダム・シーケンス配列スキームを使用し、および第３アドレス・ブロック変換表を生成することにより、前記乱数配列において、ｉ番目の第３アドレス・ブロックをｉ番目の位置を有する第３のアドレス・ブロックに交換するステップを含むことを特徴とする、請求項６に記載のデジタル情報を保護する方法。
【請求項１３】
ステップ（Ｄ３）において、前記第３変換バッチにおける各々の前記再配列された第２アドレスの前記再配列された第３アドレスは、前記第３アドレス・ブロック変換表に基づいて検索されることを特徴とする、請求項１２に記載のデジタル情報を保護する方法。
【請求項１４】
前記アドレス変換キー（９５）は、外部的に入力されることを特徴とする、請求項１０に記載のデジタル情報を保護する方法。
【請求項１５】
前記シード値は、外部的に入力されることを特徴とする、請求項１２に記載のデジタル情報を保護する方法。
【請求項１６】
前記データは、暗号化アルゴリズムおよび暗号化コード（９０）を使用して暗号化される暗号化されたデータであることを特徴とする、請求項６に記載のデジタル情報を保護する方法。