(57)【要約】      （修正有）【課題】保護されたディジタル情報が容易に再構築されたり回復されたりすることのないディジタル情報の保護方法を提供する。【解決手段】デジタル情報の保護方法は、保護されたアドレス領域をプリセット変換構成単位に基づいて複数のアドレス・ブロックに変換し、パラメータとして、このアドレス・ブロックを使用してアドレス・ブロック再配列規則を生成し、保護されたアドレス領域のアドレス・バッチにデータをロードする場合には、アドレス・バッチを前記変換構成単位に基づいて複数のアドレス・ブロックに変換し、アドレス・ブロック再配列規則に従って保護されたアドレス領域中のアドレス・ブロックの再配列されたアドレスを検索し、この再配列されたアドレスにデータをロードする。【選択図】図１３
2009025812.tif 000002
【特許請求の範囲】
【請求項１】
デジタル情報を保護する方法であって、
（Ａ）プリセット変換構成単位に基づいて保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとして前記アドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
（Ｂ）データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
（Ｃ）前記アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データを前記再配列されたアドレスへロードするステップを含むことを特徴とする、デジタル情報を保護する方法。
【請求項２】
前記保護されたアドレス領域は、記憶装置（３０）の記憶アドレス空間であり、
ステップ（Ｃ）において、前記データを前記再配列されたアドレスへロードする前に、各々の前記再配列されたアドレスは、前記記憶装置（３０）の記憶構成単位に従って、前記記憶装置（３０）の実際の書込みアドレスに変換されることを特徴とする、請求項１に記載のデジタル情報を保護する方法。
【請求項３】
前記変換構成単位が、１バイト、４ビットおよび２ビットのうちの１つであることを特徴とする、請求項１に記載のデジタル情報を保護する方法。
【請求項４】
ステップ（Ａ）において、再生不可能なランダム・シーケンスを配列しているスキームは、前記アドレス・ブロック再配列規則として使用され、および０からアドレス・ブロックの数までの乱数配列を生成するためにコンピュータ（１１）の内部ハードウェアの運用情報を利用することを含み、
アドレス変換表を生成することにより、前記乱数配列において、ｉ番目のアドレス・ブロックをｉ番目の位置を有するアドレス・ブロックに交換するステップと、
ステップ（Ｃ）において、前記保護されたアドレス領域における前記アドレス・ブロックの前記再配列されたアドレスは、前記アドレス変換表に基づいて検索されることを特徴とする、請求項１に記載のデジタル情報を保護する方法。
【請求項５】
ステップ（Ａ）において、外部的に入力されるアドレス変換キー（９５）が、受け入れられ、および前記アドレス・ブロック再配列規則は、多数の前記アドレス・ブロックおよび前記アドレス変換キー（９５）を使用して構成されることを特徴とする、請求項１に記載のデジタル情報を保護する方法。
【請求項６】
ステップ（Ａ）において、前記アドレス・ブロック再配列規則は、暗号化コード（９０）として前記アドレス交換キー（９５）を使用するデータ暗号化標準を利用することを含む暗号化配列スキームを使用し、
前記アドレス・ブロックによって構成されるアドレス・シーケンスのバイナリ表現である数順を暗号化するステップと、アドレス・ブロック・シーケンスとするために十進数の暗号化されたバイナリの数順を表すステップと、
アドレス変換表を生成することにより、前記アドレス・ブロック・シーケンスにおいて、ｉ番目のアドレス・ブロックをｉ番目に位置を有するアドレス・ブロックに交換するステップを含むことを特徴とする、請求項５に記載のデジタル情報を保護する方法。
【請求項７】
ステップ（Ｃ）において、前記保護されたアドレス領域における前記アドレス・ブロックの前記再配列されたアドレスは、前記アドレス変換表に従って検索されることを特徴とする、請求項６に記載のデジタル情報を保護する方法。
【請求項８】
ステップ（Ａ）において、前記アドレス・ブロック再配列規則は、０から前記アドレス・ブロックの数までの乱数配列を生成するために、シードをもつコンピュータのＲａｎｄ関数を利用することを含む再生可能なランダム・シーケンス配列スキームを使用し、およびアドレス変換表を生成することにより、前記乱数配列において、ｉ番目のアドレス・ブロックをｉ番目の位置を有するアドレス・ブロックに交換するステップを含むことを特徴とする、請求項５に記載のデジタル情報を保護する方法。
【請求項９】
ステップ（Ｃ）において、前記保護されたアドレス領域における前記アドレス・ブロックの前記再配列されたアドレスは、前記アドレス変換表に従って検索されることを特徴とする、請求項８に記載のデジタル情報を保護する方法。
【請求項１０】
ステップ（Ｂ）において、前記データは、暗号化アルゴリズムおよび暗号化コード（９０）を使用して暗号化される暗号化されたデータであることを特徴とする、請求項１に記載のデジタル情報を保護する方法。
【請求項１１】
デジタル情報を保護する方法であって、
（Ａ）保護されたアドレス領域を複数の第１変換バッチに分割するステップ、第１変換構成単位に基づいて各々の前記第１変換バッチのアドレス領域を複数の第１のアドレス・ブロックに変換するステップ、およびパラメータとして前記第１アドレス・ブロックを使用して前記第１のアドレス・ブロックを再配列するために前記第１アドレス・ブロック再配列規則を生成するステップと、
（Ｂ）前記保護されたアドレス領域を複数の第２変換バッチに分割するステップ、プリセット第２変換構成単位に基づいて各々の前記第２変換バッチのアドレス領域を複数の第２のアドレス・ブロックに変換するステップ、およびパラメータとして前記第２アドレス・ブロックを使用して前記第２アドレス・ブロックを再配列するために前記第２アドレス・ブロック再配列規則を生成するステップと、
（Ｃ）前記保護されたアドレス領域を少なくとも１つの第３変換バッチに分割するステップ、プリセット第３変換構成単位に基づいて前記少なくとも１つの第３変換バッチのアドレス領域を複数の第３アドレス・ブロックに変換するステップ、およびパラメータとして前記第３アドレス・ブロックを使用して前記第３アドレス・ブロックを再配列するために前記第３アドレス・ブロック再配列規則を生成するステップと、
（Ｄ）データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記アドレス・バッチが属する前記第１変換バッチを決定するステップ、前記第１変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第１、第２および第３アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された前記再配列されたアドレスへロードするステップを含むことを特徴とする、デジタル情報を保護する方法。
【請求項１２】
ステップ（Ｄ）は、
（Ｄ１）前記第１アドレス・ブロック再配列規則に従って、前記第１変換バッチにおける各々の前記アドレス・ブロックの再配列された第１アドレスを検索するステップと、
（Ｄ２）各々の前記再配列された第１アドレスが属する前記第２変換バッチを決定するステップ、および前記第２アドレス・ブロック再配列規則に従って、前記それぞれの再配列された第１アドレスが属する前記第２変換バッチにおいて、各々の前記再配列された第１アドレスの再配列された前記第２アドレスを検索するステップと、
（Ｄ３）各々の前記再配列された第２アドレスが属する前記第３変換バッチを決定するステップ、および前記第３アドレス・ブロック再配列規則に従って、前記それぞれの再配列された第２アドレスが属する前記第３変換バッチにおいて、各々の前記再配列された第２アドレスの再配列された前記第３アドレスを検索するステップ、および前記データを前記再配列された第３アドレスへロードするステップを含むことを特徴とする、請求項１１に記載のデジタル情報を保護する方法。
【請求項１３】
前記保護されたアドレス領域が、記憶装置（３０）の記憶アドレス空間であり、
ステップ（Ｄ３）は、
前記データを前記再配列された第３アドレスへロードする前に、各々の前記再配列された第３アドレスは、前記記憶装置（３０）の記憶構成単位に従って、前記記憶装置（３０）の実際の書込みアドレスに変換され、および前記データは、このように変換された実際の書込みアドレスにおいて記憶されることを含むことを特徴とする、請求項１２に記載のデジタル情報を保護する方法。
【請求項１４】
前記第１アドレス・ブロック再配列規則が、各々の前記第１変換バッチの前記第１アドレス・ブロックの数の範囲内で乱数配列を生成するためにコンピュータ内部ハードウェアの運用情報を利用することを含む再生不可能なランダム・シーケンス配列スキームを使用し、および第１アドレス・ブロック変換表を生成することにより、前記乱数配列において、ｉ番目の第１アドレス・ブロックをｉ番目の位置を有する第１アドレス・ブロックに交換するステップを含むことを特徴とする、請求項１２に記載のデジタル情報を保護する方法。
【請求項１５】
ステップ（Ｄ１）において、前記第１変換バッチにおける各々の前記アドレス・ブロックの前記再配列された第１アドレスは、前記第１アドレス変換表に基づいて検索されることを特徴とする、請求項１４に記載のデジタル情報を保護する方法。
【請求項１６】
前記第２のアドレス・ブロック再配列規則が、各々の前記第２変換バッチの前記第２アドレス・ブロックの範囲内で乱数配列を生成するためにデータ暗号化規格およびアドレス変換キー（９５）を使用し、および第２アドレス・ブロック変換表を生成することにより、前記乱数配列において、ｉ番目の第２アドレス・ブロックをｉ番目の位置を有する第２のアドレス・ブロックに交換するステップを含むことを特徴とする、請求項１２に記載のデジタル情報を保護する方法。
【請求項１７】
ステップ（Ｄ２）において、前記第２変換バッチにおける各々の前記再配列された第１アドレスの前記再配列された第２アドレスは、前記第２アドレス変換表に基づいて検索されることを特徴とする、請求項１６に記載のデジタル情報を保護する方法。
【請求項１８】
前記第３アドレス・ブロック再配列規則が、前記少なくとも１つの第３変換バッチの前記第３アドレス・ブロックの範囲内で乱数配列を生成するために、シードをもつコンピュータのＲａｎｄ関数を利用することを含む再生可能なランダム・シーケンス配列スキームを使用し、および第３アドレス・ブロック変換表を生成することにより、前記乱数配列において、ｉ番目の第３アドレス・ブロックをｉ番目の位置を有するアドレス・ブロックに交換するステップを含むことを特徴とする、請求項１２に記載のデジタル情報を保護する方法。
【請求項１９】
ステップ（Ｄ３）において、前記第３変換バッチにおける各々の前記再配列された第２アドレスの前記再配列された第３アドレスは、前記第３アドレス・ブロック変換表に基づいて検索されることを特徴とする、請求項１８に記載のデジタル情報を保護する方法。
【請求項２０】
前記アドレス変換キー（９５）は、外部的に入力されることを特徴とする、請求項１６に記載のデジタル情報を保護する方法。
【請求項２１】
前記シード値は、外部的に入力されることを特徴とする、請求項１８に記載のデジタル情報を保護する方法。
【請求項２２】
前記データは、暗号化アルゴリズムおよび暗号化コード（９０）を使用して暗号化される暗号化されたデータであることを特徴とする、請求項１１に記載のデジタル情報を保護する方法。
【請求項２３】
デジタル情報を保護するプログラムを記録したコンピュータ・アクセス可能な記録媒体であって、
デジタル情報を保護するための方法のステップを実行するために、プログラムは、コンピュータ（１１）を実行するように読み取り可能、および実行可能であって、
前記方法は、
（Ａ）プリセット変換構成単位に基づいて保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとして前記アドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
（Ｂ）データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
（Ｃ）前記アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データを前記再配列されたアドレスへロードするステップを含むことを特徴とする、デジタル情報を保護するプログラムを記録したコンピュータ・アクセス可能な記録媒体。
【請求項２４】
デジタル情報を保護するプログラムを記録したコンピュータ・アクセス可能な記録媒体であって、
デジタル情報を保護するための方法のステップを実行するために、プログラムは、コンピュータ（１１）を実行するための読み取り可能で実行可能であって、
前記方法は、
（Ａ）保護されたアドレス領域を複数の第１変換バッチに分割するステップ、第１変換構成単位に基づいて各々の前記第１変換バッチのアドレス領域を複数の第１アドレス・ブロックに変換するステップ、およびパラメータとして前記第１アドレス・ブロックを使用して前記第１アドレス・ブロックを再配列するために第１アドレス・ブロック再配列規則を生成するステップと、
（Ｂ）前記保護されたアドレス領域を複数の第２変換バッチに分割するステップ、プリセット第２変換構成単位に基づいて各々の前記第２変換バッチのアドレス領域を複数の第２アドレス・ブロックに変換するステップ、およびパラメータとして前記第２アドレス・ブロックを使用して前記第２アドレス・ブロックを再配列するために第２アドレス・ブロック再配列規則を生成するステップと、
（Ｃ）前記保護されたアドレス領域を少なくとも１つの第３の変換バッチに分割するステップ、プリセット第３変換構成単位に基づいて前記少なくとも１つの第３変換バッチのアドレス領域を複数の第３アドレス・ブロックに変換するステップ、およびパラメータとして前記第３アドレス・ブロックを使用して前記第３アドレス・ブロックを再配列するために前記第３アドレス・ブロック再配列規則を生成するステップと、
（Ｄ）データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記アドレス・バッチが属する前記第１変換バッチを決定するステップ、前記第１変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第１、第２および第３アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された前記再配列されたアドレスへロードするステップを含むことを特徴とするデジタル情報を保護するプログラムを記録したコンピュータ・アクセス可能な記録媒体。
【請求項２５】
デジタル情報を保護するプログラムがロードされたデジタル情報を保護する装置であって、
前記デジタル情報を保護する装置は、デジタル情報を保護するための方法のステップを実行するように、前記デジタル情報を保護するプログラムを読み取り、および実行する能力を有しており、
前記方法は、
（Ａ）プリセット変換構成単位に基づいて保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとして前記アドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
（Ｂ）データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
（Ｃ）前記アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データを前記再配列されたアドレスへロードすることを特徴とする、デジタル情報を保護する装置。
【請求項２６】
デジタル情報を保護するプログラムがロードされたデジタル情報を保護する装置であって、
前記デジタル情報を保護する装置は、デジタル情報を保護するための方法のステップを実行するように、前記デジタル情報を保護するプログラムを読み取り、および実行する能力を有しており、
前記方法は、
（Ａ）保護されたアドレス領域を複数の第１変換バッチに分割するステップ、第１変換構成単位に基づいて各々の前記第１変換バッチのアドレス領域を複数の第１アドレス・ブロックに変換するステップ、およびパラメータとして前記第１アドレス・ブロックを使用して前記第１アドレス・ブロックを再配列するために前記第１アドレス・ブロック再配列規則を生成するステップと、
（Ｂ）前記保護されたアドレス領域を複数の第２変換バッチに分割するステップ、プリセット第２変換構成単位に基づいて各々の前記第２変換バッチのアドレス領域を複数の第２のアドレス・ブロックに変換するステップ、およびパラメータとして前記第２アドレス・ブロックを使用して前記第２アドレス・ブロックを再配列するために前記第２アドレス・ブロック再配列規則を生成するステップと、
（Ｃ）前記保護されたアドレス領域を少なくとも１つの第３変換バッチに分割するステップ、プリセット第３変換構成単位に基づいて前記少なくとも１つの第３変換バッチのアドレス領域を複数の第３アドレス・ブロックに変換するステップ、およびパラメータとして前記第３アドレス・ブロックを使用して前記第３アドレス・ブロックを再配列するために前記第３アドレス・ブロック再配列規則を生成するステップと、
（Ｄ）データを前記保護されたアドレス領域のアドレス・バッチへロードする場合には、前記アドレス・バッチが属する前記第１変換バッチを決定するステップ、前記第１変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第１、第２および第３アドレス・ブロック再配列規則に従って、前記保護されたアドレス領域における前記アドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された前記再配列されたアドレスへロードするステップを含むことを特徴とする、デジタル情報を保護する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ保護の方法および装置に関し、さらに詳しくは、デジタル情報を保護し、デジタル情報への権限の無いアクセスを防止できるようにするための方法および装置に関する。
【背景技術】
【０００２】
コンピュータ技術の発展に伴い、ほとんど全ての政府機関、研究所、学術団体および会社は、書類やファイルの作成にコンピュータを使用する。さらに、コンピュータ周辺記憶装置の急速な発展とともに、重要書類、ファイルデータ、技術データ、機密データおよびこれらのバックアップデータの保存にこれらの記憶装置が使用される。書類やファイルの保存に記憶装置を使用すれば、データを作成したり、検索するための時間が短縮されるばかりでなく、紙の使用を減らし、さらに保存されたデータの寿命を延ばすことができる。加えて携帯型記憶装置は保存が容易な上、搬送に便利で小型のため、ユーザはデータおよびバックアップデータの保存に携帯型記憶装置を頻繁に使用している。しかしながら、携帯型記憶装置の利便性は、コンピュータに保存されたデータの漏出の危険性を増大させる。このような欠点を克服するため、暗号化を用いた様々なデータ保護方法が提案されている。それにも関わらず、暗号化されたデータは、多くのコンピュータを使用し膨大な計算を行えば解読することができるため、保護されたデータが盗難後に回復できないよう、いかにデータのセキュリティーを向上させるかが最大の関心事となっている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、本発明の目的は、保護されたデジタル情報が容易に再構築されたり回復されたりすることのないデジタル情報の保護方法を提供することである。
【課題を解決するための手段】
【０００４】
本発明の１つの観点におけるデジタル情報の保護方法は、
（Ａ）プリセット変換構成単位に基づいて、保護されたアドレス領域を複数のアドレス・ブロックに変換するステップ、およびパラメータとしてこのアドレス・ブロックを使用してアドレス・ブロック再配列規則を生成するステップと、
（Ｂ）データを前記保護されたアドレス領域のアドレス・バッチにロードする場合には、前記変換構成単位に基づいて前記アドレス・バッチを複数のアドレス・ブロックに変換するステップと、
（Ｃ）アドレス・ブロック再配列規則に従って、保護されたアドレス領域中のアドレス・ブロックの再配列されたアドレスを検索するステップ、およびこの再配列されたアドレスに前記データをロードするステップと、
を含む。
【０００５】
本発明の別の観点におけるデジタル情報の保護方法は、
（Ａ）保護されたアドレス領域を複数の第１変換バッチに分割するステップ、第１変換構成単位に基づいて、各々の第１変換バッチのアドレス領域を複数の第１アドレス・ブロックに変換するステップ、およびパラメータとしてこの第１アドレス・ブロックを使用して、第１アドレス・ブロックを再配列するために第１アドレス・ブロック再配列規則を生成するステップと、
（Ｂ）保護されたアドレス領域を複数の第２変換バッチに分割するステップ、プリセット第２変換構成単位に基づいて、各々の第２変換バッチのアドレス領域を複数の第２アドレス・ブロックに変換するステップ、およびパラメータとしてこの第２アドレス・ブロックを使用して、第２アドレス・ブロックを再配列するために第２アドレス・ブロック再配列規則を生成するステップと、
（Ｃ）保護されたアドレス領域を少なくとも１つの第３変換バッチに分割するステップ、プリセット第３変換構成単位に基づいて、前記少なくとも１つの第３変換バッチのアドレス領域を複数の第３アドレス・ブロックに変換するステップ、およびパラメータとしてこの第３アドレス・ブロックを使用して、第３アドレス・ブロックを再配列するために第３アドレス・ブロック再配列規則を生成するステップと、
（Ｄ）データを前記保護されたアドレス領域のアドレス・バッチにロードする場合には、前記アドレス・バッチが属する第１変換バッチを決定するステップ、前記第１変換構成単位に基づいて、前記アドレス・バッチを複数のアドレス・ブロックに変換するステップ、前記第１、第２、第３アドレス・ブロック再配列規則に従って、保護されたアドレス領域内のアドレス・ブロックの再配列されたアドレスを検索するステップ、および前記データをこのように検索された再配列されたアドレスにロードすること、
を含む。
【０００６】
本発明のさらなる特徴および利点は、図面を参照しつつ下記する好適な実施形態の詳細な記述によって明らかになるであろう。
図１は、本発明の一つ実施形態における主機能ブロックを示す図である。
図２は、本発明の別の好適な実施形態における主機能ブロックを示す図である。
図３は、本発明のさらに別の好適な実施形態における主機能ブロックを示す図である。
図４は、本発明の好適な実施形態における、所定のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
図５は、本発明の好適な実施形態における、別のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
図６は、ソースデータを暗号化アルゴリズムを使用して暗号化し、暗号化データを復号化アルゴリズムを使用してソースデータに復号する例を模式的に示す。
図７は、本発明の好適な実施形態において、システム指定アクセス領域初期アドレス・シーケンスが、どの様にアクセス領域カスタムアドレス・シーケンスに変換されるかを模式的に示す。
図８は、本発明によるデジタル情報保護方法の別の実施形態における準備操作フロー図である。
図９は、好適な実施形態における実際のアクセス操作のフロー図である。
図１０は、好適な実施形態における第１アドレス変換を説明する模式図である。
図１１は、好適な実施形態における第２アドレス変換を説明する模式図である。
図１２は、好適な実施形態における第３アドレス変換を説明する模式図である。
図１３は、本発明によるデジタル情報保護方法のさらに別の実施形態におけるフロー図である。
図１４は、本好適実施形態におけるアドレス変換を説明する模式図である。
【発明を実施するための最良の形態】
【０００７】
本発明を詳述する前に、本開示を通じて同様な要素は同一の符合によって表されることに留意するべきである。
【０００８】
図１は、本発明の好適な第１実施形態の主要機能を示すブロック図で、図中のハードウェア・システム１０は、データ暗号化／復号化モジュール２０と記憶空間アドレス変換モジュール２５とを含むコンピュータ１１、ならびに、記憶装置３０を含む周辺記憶装置１２を備える。図２は、本発明の好適な第２実施形態の主要機能を示すブロック図で、図中のハードウェア・システム１０は、データ暗号化／復号化モジュール２０を含むコンピュータ１１、ならびに、記憶空間アドレス変換モジュール２５と記憶装置３０とを含む周辺記憶装置１２を備える。図３は、本発明の好適な第３実施形態の主要機能を示すブロック図で、図中のハードウェア・システム１０は、コンピュータ１１、ならびに、データ暗号化／復号化モジュール２０と記憶空間アドレス変換モジュールと記憶装置３０とを含む周辺記憶装置１２を備える。
【０００９】
記憶空間アドレス変換モジュール２５の機能は以下の通りである。（１）アドレス変換キー９５と保護域初期アドレス・シーケンス７０とに従いアドレス変換規則６０を設定し、このアドレス変換規則６０を使用して保護域アドレスマッピング表６５を構成し、これにより保護域初期アドレス・シーケンス７０を保護域カスタムアドレス・シーケンス７５に変換する。（２）保護域アドレスマッピング表６５を使用してアクセス領域初期アドレス・シーケンス８０に対応するアクセス領域カスタムアドレス・シーケンス８５を取得するか、またはアドレス変換規則６０に従い計算を行ってアクセス領域初期アドレス・シーケンス８０に対応するアクセス領域カスタムアドレス・シーケンス８５を取得する。
【００１０】
データ暗号化／復号化モジュール２０の機能は以下の通りである。
（１）暗号化コード９０と暗号化アルゴリズム４０とに従い、暗号化ソースデータ５０を暗号化データ５５に暗号化する。（２）復号化コード９２と復号化アルゴリズム４５とに従い、暗号化データ５５をソースデータ５０に復号する。
【００１１】
データを記憶装置３０の保護域に保存しようとする場合には、データ暗号化／復号化モジュール２０は、ソースデータ５０を暗号化データ５５に暗号化するために使用され、それから、記憶空間アドレス変換モジュール２５は、システム指定のアクセス領域初期アドレス・シーケンス８０に対応するアクセス領域カスタムアドレス・シーケンス８５を取得するために使用される。その後、暗号化データ５５は、アクセス領域カスタムアドレス・シーケンス８５に対応する記憶位置に保存される。一方、データを読み取る際には、記憶空間アドレス変換モジュール２５は、システム指定アクセス領域初期アドレス・シーケンス８０に対応するアクセス領域カスタムアドレス・シーケンス８５を取得するために使用され、それからアクセス領域カスタムアドレス・シーケンス８５に対応する記憶位置から暗号化データ５５が読み取られる。その後、暗号化／復号化モジュール２０は、暗号化データ５５をソースデータ５０に復号するために使用される。
【００１２】
以上が本発明の主要機能の概要である。本発明のデジタル情報保護装置を用いた初期化プロセスについて以下に述べる。
【００１３】
記憶空間アドレス変換モジュール２５は、アドレス変換キー９５および記憶装置３０の保護しようとする領域の保護域初期アドレス・シーケンス７０(Ｐｉ，ｉ＝０，１，…，ｎ)に従い、アドレス変換規則６０を決定するために使用される。アドレス変換規則６０は、保護域アドレスマッピング表６５を構成するために使用され、保護域初期アドレス・シーケンス７０(Ｐｉ，ｉ＝０，１，…，ｎ)は、保護域カスタムアドレス・シーケンス(Ｓｉ，ｉ＝０，１，…，ｎ)に変換するために使用される。アドレス変換規則６０は、アドレス変換キー９５と保護域初期アドレス・シーケンス７０(Ｐｉ，ｉ＝０，１，…，ｎ)をパラメータとする関数を用いて実行することができ、この関数は、定義域（Ｐｉ，ｉ＝０，１，…，ｎ)と値域（Ｓｉ，ｉ＝０，１，…，ｎ)の１対１の対応を満足しなければならない。以下、説明を目的に、前記関数の生成方法をいくつか説明する。
【００１４】
（Ａ）保護域アドレス領域のみをパラメータとして使用する。図４に示すように、保護域初期アドレス・シーケンス７０は（０，１，…,１０００）であり、したがって、その中のアドレス領域は０〜１０００である。アドレス変換規則６０は、次のように設定することができる。
ｆ（ｘ）＝１０００−ｘ
【００１５】
したがって、このアドレス変換規則６０によれば、保護域初期アドレス・シーケンス７０（０，１，…,１０００）は、保護域カスタムアドレス・シーケンス７５（１０００,９９９,…,０）に変換される。
【００１６】
（Ｂ）アドレス変換キー９５と保護域アドレス領域とをパラメータとして使用する。図５に示すように、保護域初期アドレス・シーケンス７０は（０,１,…,４９９）で、アドレス変換キー９５は“ａ１Ｋ９”となるため、そのアドレス変換ＡＳＣＩＩキャラクタコードは、９７‐４９‐７５‐５７となる。このキャラクタコードは、未使用の１２８を使用して延長され、その結果キャラクタコードは、９７‐４９‐７５‐５７‐１２８‐１２８‐１２８‐１２８…となる。その結果アドレス変換規則６０は、
ｆ（ｘ）＝９６−ｘ  （０≦ｘ＜９７の場合）
ｆ（ｘ）＝１４５−ｘ＋９７  （９７≦ｘ＜１４６の場合）
ｆ（ｘ）＝２２０−ｘ＋１４６（１４６≦ｘ＜２２１の場合）
ｆ（ｘ）＝２７７−ｘ＋２２１  （２２１≦ｘ＜２７８の場合）
ｆ（ｘ）＝４０５−ｘ＋２７８  （２７８≦x＜４０６の場合）
ｆ（ｘ）＝４９９−ｘ＋４０６  （４０６≦ｘ＜５００の場合）
となる。
【００１７】
したがって、このアドレス変換規則６０は、保護域初期アドレス・シーケンス７０（０,１,…,９６…,１４５…,２２０…,２２７，…,４９９）を保護域カスタムアドレス・シーケンス７５(９６，９５，…，０…，９７…，１４６，…，２２１，…，４０６)に変換するために使用される。
【００１８】
下記は、記憶装置３０の保護域にデータを保存する際に本情報保護装置が取る手順と方法である。
【００１９】
１．データ暗号化／復号化モジュール２０は、ソースデータ５０（Ｄｉ，ｉ＝０，１，…，ｍ）を暗号化データ５５（Ｒｉ，ｉ＝０，１，…，ｋ）に暗号化するために使用される。ソースデータ５０の全長は、暗号化データ５５の全長に等しいかそれよりも長い。保存されるデータには、明確な連続性がないため、明確な連続性を有さない記憶データの正確で完全な読み取りを防ぐことができ、これにより、保存されたデータの保護を強化することができる。この点について以下の暗号化アルゴリズムを使用し、説明する。
【００２０】
暗号化コード９０は“ＳＳｕｎ”に設定され、その暗号化ＡＳＣＩＩキャラクタコードは、０ｘ５３−０ｘ５３−０ｘ７５−０ｘ６Ｅとなる。対称アルゴリズムを用いると、暗号化アルゴリズム４０は下記となる。
Ｘｉ＝Ｘｉ〜Ｘi-1（ｉ≠０の場合）
Ｘｉ〜０ｘ５３５３７５６Ｅ（ｉ＝０の場合）
ここで、ｉは８から０で、「〜」は「排他的論理和」操作を示し、Ｘｉの長さ単位は、３２ビットである。
【００２１】
図６では、暗号化アルゴリズム４０は、ソースデータ５０（０ｘ６４５ＢＣＦ９８，０ｘ６８３９２７４Ｄ，０ｘ４Ｂ６５２１８８，…，０ｘ７８９０１２３Ｅ）が、暗号化データ５５（０ｘ３７０８ＢＡＦ６，０ｘ０Ｃ６２Ｅ８Ｄ５，０ｘ２３５Ｃ０６Ｃ５，…，０ｘ５ＥＡ５Ｂ９ＣＣ）に暗号化するために使用される。
【００２２】
２．記憶空間アドレス変換モジュール２５を使用して、保護域アドレスマッピング表６５に従うか、アドレス変換規則６０を直接使用するかして、システム指定アクセス領域初期アドレス・シーケンス８０（Ｕｉ，ｉ＝０，１…，ｘ）が、アクセス領域カスタムアドレス・シーケンス８５（Ｖｉ，ｉ＝０，１，…，ｘ）に変換され、これを順に保存する。図７におけるアドレス変換規則６０と保護域アドレスマッピング表６５は、図４に示したこれらのものと同じである。システム指定アクセス領域初期アドレス・シーケンス８０（１，２，４，６，７，９９６）は、アクセス領域カスタムアドレス・シーケンス８５（９９９，９９８，９９６，９９４，９９３，４）に変換される。したがって、暗号化データ５５（Ｒｉ，ｉ＝０，１，２，…，ｋ）は、アクセス領域カスタムアドレス・シーケンス８５（９９９，９９８，９９６，９９４，９９３，４）に対応する記憶位置に保存される。
【００２３】
記憶装置３０の保護域にあるデータを読み取る際に必要な手順と方法は以下のとおりである。
【００２４】
１．記憶空間アドレス変換モジュール２５を使用して、保護域アドレスマッピング表６５に従うか、アドレス変換規則６０を直接使用するかして、システム指定アクセス領域初期アドレス・シーケンス８０（Ｕｉ，ｉ＝０，１，…，ｘ）をアクセス領域カスタムアドレス・シーケンス８５（Ｖｉ，ｉ＝０，１，…，ｘ）に変換する。図７におけるアドレス変換規則６０と保護域アドレスマッピング表６５は、図４に示したこれらのものと同じであり、システムによって指定されるアクセス領域初期アドレス・シーケンス８０（１，２，４，６，７，９９６）が、アクセス領域カスタムアドレス・シーケンス（９９９，９９８，９９６，９９４，９９３，４）に変換される。したがって、暗号化データ５５（Ｒｉ，ｉ＝０，１，２，…，ｋ）は、アクセス領域カスタムアドレス・シーケンス８５（９９９，９９８，９９６，９９４，９９３，４）に対応する記憶位置から読み取られる。
【００２５】
２．アクセス領域カスタムアドレス・シーケンス８５（Ｖｉ，ｉ＝０，１，…，ｘ）にしたがって、暗号化データ（Ｒｉ，ｉ＝０，１，２，…，ｋ）を読み取った後、データ暗号化／復号化モジュール２０を使用して、復号化コード９２と復号化アルゴリズム４５とに従って、暗号化データ５５（Ｒｉ，ｉ＝０，１，２，…，ｋ）をソースデータ（Ｄｉ，ｉ＝０，１，…，ｍ）に復号化する。この点について以下の復号化アルゴリズムを使用した説明する。
【００２６】
復号化コード９２は“ＳＳｕｎ”に設定され、その復号化ＡＳＣＩＩキャラクタコードは、０ｘ５３−０ｘ５３−０ｘ７５−０ｘ６Ｅとなる。対称アルゴリズムを用いると、復号化アルゴリズム４５は下記となる。
Ｘｉ＝Ｘｉ〜０ｘ５３５３７５６Ｅ （ｉ＝０の場合）
Ｘｉ〜Ｘi-1（ｉ≠０の場合）
ここで、ｉは８から０で、「〜」は「排他的論理和」操作を示し、Ｘｉの長さ単位は、３２ビットである。
【００２７】
図６では、暗号化データ５５（０ｘ３７０８ｂａｆ６，０ｘ０ｃ６２ｅ８ｄ５，０ｘ２３５ｃ０６ｃ５，…，０ｘ５ｅａ５ｂ９ｃｃ）が、復号化アルゴリズム４５を使用してソースデータ５０（０ｘ６４５ｂｃｆ９８，０ｘ６８３９２７４ｄ，０ｘ４ｂ６５２１８８，…，０ｘ７８９０１２３ｅ）に復号化される。
【００２８】
図８および図９は、本発明によるデジタル情報保護方法の別の好適実施形態を示す。本実施形態は、コンピュータシステムなどのデジタル情報保護装置にあるコンピュータ・アクセス可能な記憶媒体に記憶されたコンピュータソフトウェアで、ハードディスクなどの記憶装置に保存されたデジタル情報を保護するためのものである。本実施例のコンピュータソフトウェアプログラムを用いてデジタル情報の保護を実行するための手順と方法を、図８と図９とを参照しながら以下に記述する。
【００２９】
まず各記憶アドレスの大きさを１バイトとし、記憶装置の基本記憶構成単位を５１２バイト（すなわち１セクター）とする。記憶装置の保護されたアドレス領域は、２０４８バイト目から２０９７３５６８バイト目までの合計２０９７１５２０バイトである。
【００３０】
本実施例において、プログラムは、図８に示す準備操作と、図９に示す実際のアクセス操作に分けられる。図８に示す準備操作では、３つの異なる変換構成単位に従って、３つのアドレス変換規則がまず生成される。このようにして生成された３つのアドレス変換規則に従い、その後の（図９に示すような）実際のアクセス操作によってアクセスされるアドレスに対しアドレス変換を実行する。
準備操作（図８参照）
１．第１アドレス変換
【００３１】
図８の工程１１において、プログラムが１０２４バイトの変換バッチ（以下、「第１変換バッチ」と呼ぶ）を用いて、保護されたアドレスの２０９７１５２０バイトを２０４８０（２０９７１５２０バイト／１０２４バイト）個の第１変換バッチ、すなわち、０〜１０２３，１０２４〜２０４７，２０４８〜３０７１，…に分割する。次いで、図３に示すように、４ビットを１つの変換構成単位（以下、「第１変換構成単位」と呼ぶ）として、各第１変換バッチのアドレス領域が、２０４８（１０２４バイト／４ビット）個のアドレス・ブロック（以下、「第１アドレス・ブロック」）に変換される。例として、第１番目の第１変換バッチ０〜１０２３を挙げると、第１アドレス・ブロックは、アドレス・シーケンス［０，１，２，３，…，２０４７］として表わすことができる。その後、工程１２を実行し、パラメータとしてアドレス領域［０，１，２，３，…，２０４７］を使用して、アドレス・ブロック再配列規則（以下、第１アドレス・ブロック再配列規則）が生成される。例えば、再生不可能な乱数シーケンス配列スキームを用いる。一定時間内のコンピュータ稼働率、ハードディスクアクセス速度、ネットワークアクセスデータ量などの情報に基づいて乱数シーケンスを生成し、この乱数シーケンスの範囲は、０〜２０４７、例えば、［２３１，１０３８，３，４９，２６，３２２，…］に調節される。そして、この乱数シーケンスのｉ番目の位置のアドレスと、アドレス・シーケンスのｉ番目のアドレスとを交換する。例えば、アドレス・シーケンスの０番目のアドレス、すなわち、「０」と、乱数シーケンス０番目の位置のアドレス、すなわち、「２３１」とを交換する。また、アドレス・シーケンスの１番目のアドレス、すなわち、「１」は、乱数シーケンス１番目の位置のアドレス、すなわち、「１０３８」と交換される。このようにして、図１０に示すようなアドレス・ブロック変換表（以下、第１アドレス・ブロック変換表）［２３１，１０３８，７３，２７，…］が生成される。
【００３２】
２番目の第１変換バッチの第１アドレス・ブロック変換表は、１番目の第１アドレス・ブロック変換表の数値を２０４８で変換（加算）したもの、等等である。このようにして、第１変換バッチの全て（２０４８０バッチ）について、第１アドレス・ブロック変換表が得られる。
【００３３】
前述した乱数シーケンスは再生できないので、プログラムは、この乱数シーケンスまたは第１アドレス・ブロック変換表を保存して、これらを今後のデータアクセスの際のアドレス変換に容易に使用できるようにする必要がある。
【００３４】
２．第２アドレス変換
工程１３では、図１１に示すように８１９２０バイトを１つの変換バッチ（以下、第２変換バッチ）として、プログラムが、保護された２０９７１５２０バイトのアドレスを２５６個（２０９７１５２０バイト／８１９２０バイト）の第２変換バッチ、すなわち、０〜８１９１９，８１９２０〜１６３８３９，１６３８４０〜２４５７５９，…、に分割する。次いで、図１１に示すように、６４０バイトを１つの変換構成単位（以下、「第２変換構成単位」と呼ぶ）として使用して、各第２変換バッチのアドレス領域は、１２８（８１９２０バイト／６４０バイト）個のアドレス・ブロック（以下、「第２アドレス・ブロック」）に変換される。例えば、第１番目の第２変換バッチである０〜８１９１９の場合、変換された第２アドレス・ブロックはアドレス・シーケンス［０，１，２，３，…１２７］と表すことができる。その後、工程１４を実行し、パラメータとしてアドレス領域 ［０，１，２，３，…，１２７］を使用して、アドレス・ブロック再配列規則（以下、第２アドレス・ブロック再配列規則）が生成される。例えば、アドレス・シーケンス［０，１，２，３，…１２７］の再配列にデータ暗号化標準（以下、ＤＥＳ、ｄａｔａ  ｅｎｃｒｙｐｔｉｏｎ  ｓｔａｎｄａｒｄ）を用いた暗号化シーケンス配列スキームが使用される。まず、アドレス・シーケンス［０，１，２，３，…］をバイナリー形式のバイナリー番号シーケンス［０００００００，００００００１，０００００１０，０００００１１，…］で表す。次いで、ＤＥＳ計算プロセスを使用して、このバイナリ番号シーケンス［０００００００，００００００１，０００００１０，０００００１１，…］を、例えば、「１ｈ％ｊ９〜＆ｆ」などのコードを使用して、［０１０１０００，１０００１００，１１０００００，００１１０００，…］、（これは１０進法では［４０，６８，９６，２４，…］となる）に暗号化する。そして、この番号シーケンスのｉ番目の位置のアドレスと、アドレス・シーケンスのｉ番目のアドレスとを交換する。例えば、アドレス・シーケンスの０番目のアドレス、すなわち、「０」と、番号シーケンスの０番目のアドレス、すなわち、「４０」とを交換する。また、アドレス・シーケンスの１番目のアドレス、すなわち、「１」は、番号シーケンス１番目の位置のアドレス、すなわち、「６８」とを交換する。このようにして、図１１に示すアドレス・ブロック変換表（以下、第２アドレス・ブロック変換表）［４０，６８，１０１，８，…］を得ることができる。２番目の第２変換バッチの第２アドレス・ブロック変換表は、１番目の第２アドレス・ブロック変換表の数値を１２８で変換（加算）したもの、等等である。このようにして、第２変換バッチの全て（２５６バッチ）について、第２アドレス・ブロック変換表が得られる。
【００３５】
さらに、前述した番号シーケンスは、暗号化プロセスを使用して生成されるため、プログラムは、暗号化コードを保存して、これらを今後のデータアクセスのために同じアドレス変換に使用できるようにする必要がある。
【００３６】
３．第３アドレス変換
工程１５において、プログラムは、第３の変換のための変換バッチ（以下、第３変換バッチ）を２０９７１５２０バイト（すなわち、保護されたアドレス領域の大きさに相当）に設定し、８１９２０バイトを１つの変換構成単位（以下、第３変換構成単位）とし、この２０９７１５２０バイトの第３変換バッチは、２５６個（２０９７１６２０バイト／８１９２０バイト）のアドレス・ブロック（以下、第３アドレス・ブロック）に変換される。したがって、変換された第３アドレス・ブロックは、アドレス・シーケンス［０，１，２，３，…，２５５］として表される。その後、工程１６が、アドレス領域 ［０，１，２，３，…，２５５］をパラメータとして、アドレス・ブロック再配列規則（以下、第３アドレス・ブロック再配列規則）を生成するために、実行される。例えば、シードを２７４９８としたコンピュータのＲａｎｄ関数を使用した再生可能な乱数シーケンス配列スキームを用い乱数シーケンスを０から２５５の範囲、例えば、［１２，１８７，３，４９，２６，２４４，…］を調整することができる。その後、アドレス・シーケンス内のｉ番目のアドレスが、乱数シーケンス内のｉ番目のアドレスと交換される。例えば、アドレス・シーケンスの０番目のアドレス、すなわち、「０」と、乱数シーケンスの０番目のアドレス、すなわち、「１２」とを交換する。また、アドレス・シーケンスの１番目のアドレスは、乱数シーケンス１番目の位置のアドレス、すなわち、「１８７」と交換される。このようにして、図１２に示すアドレス変換表（以下、第３アドレス変換表）［１２，１８７，３６，２８，…］を得ることができる。
【００３７】
さらに、前述した乱数シーケンスは、再生可能な乱数シーケンス配列スキームを使用して生成されるため、プログラムは、コンピュータのＲａｎｄ関数のシード値を記憶し、将来、データアクセスのために同じアドレス変換表を容易に使用できるようにする必要がある。
【００３８】
従って、図９の工程２１で、記憶装置上にデータを書き込ませるためのコンピュータの要求をコンピュータのオペレーティングシステムからプログラムが受信した場合について考える。例えば、記憶装置３０の２０４３番目〜２０５７番目のバイトアドレスにデータを書き込もうとする場合、データが書き込まれるアドレスのいくつかは保護されていない領域、すなわち、２０４３番目〜２０４７番目のバイトを含むので、プログラムは、まず、（データ書込み操作を直接実行して）保護されていない領域へのデータ書込みをできるようにし、その後、保護領域、すなわち、２０４８番目〜２０５７番目のバイトへのデータ書込みができるようにする。
【００３９】
さらに、本実施形態におけるデータは保存前に暗号化され、復号化／暗号化の各プロセスで処理されるデータの量は８バイトであることから、プログラムは、書込みレンジを２０４８番目〜２０６３番目のバイト（すなわち８バイトの整数倍）に調節する必要があり、このデータの暗号化および書き込みを２つの操作で実行する。また、データが初めて書きこまれる領域、すなわち、２０４８番目〜２０５５番目のバイトまでは、その全域のアップデートが必要なデータ領域であるため、プログラムは、データ読取りを最初に実行しなくてもよい。書込み操作は、データの暗号化の後、直接実行してもよい。
例えば、書き込もうとするデータが、
０ｘ７５，０ｘ５２，０ｘ２１，０ｘ６７，０ｘ４５，０ｘ９Ａ，０ｘＢ５，０ｘＣ３，
であるとする。この場合、暗号化コード［９ｄＹ２ａＢ］を使用した、デジタルデータの暗号化（ＤＥＳ）の結果生み出される暗号化データは、
０ｘ９Ｄ，０ｘＣ５，０ｘＦ７，０ｘ１１，０ｘ０Ａ，０ｘ８３，０ｘ１７，０ｘ４４
である。
【００４０】
従って、データを記憶装置３０に書き込む前に暗号化データを保護するため、本発明のプログラムは、このアドレス領域に３つの変換を行えるようにしている。すなわち、最初にデータが書き込まれる２０４８番目〜２０５５番目のバイトのアドレス領域には、上で生成した第１、第２および第３アドレス・ブロック再配列規則に従った３つのアドレス変換が行われ、暗号化データの書き込みアドレスが見出される。
【００４１】
実際のアクセス操作（図９参照）
１．第１アドレス変換
まず工程２２において、プログラムは、アドレス・バッチ２０４８〜２０５５が属する第１変換バッチを決定し、アドレス・バッチ２０４８〜２０５５が、前述した第１変換バッチの１つ、すなわち、０〜１０２３に属することを認識する。従って、書込みアドレス領域、すなわち、２０４８番目〜２０５５番目のバイト、（全長８バイト）は、第１変換構成単位（すなわち４ビット）に基づき１６のアドレス・ブロックに変換され、これがアドレス・シーケンス［０，１，２，…，１５］として表される。この後、工程２３が、このアドレス・シーケンス［０，１，２，…，１５］に対応する再配列アドレス・シーケンス［２３１，１０３８，７３，２３，…］（以下、第１アドレス・シーケンス）を検索するために、実行される。この対応は、アドレス・ブロック再配列規則に従って生成された第１アドレス・ブロック変換表に基づく。
【００４２】
２．第２アドレス変換
まず工程２４において、ブログラムは、第１アドレス・シーケンスの値が属する第２変換バッチを決定する。変換後の第１アドレス・シーケンス［２３１，１０３８，７３，２３，…］の全ての値が、０〜１２８０（１２８０＝６４０バイト／４ビット）になるものと仮定して、０〜１２８０アドレス・バッチは、第２アドレス変換の第２変換バッチの最初のバッチに属し、第２アドレス・ブロックの最初のアドレス領域、すなわち、第２ブロックアドレス・シーケンス［０，１，２，…，１２８]の［０］内に位置づけられる。工程２４において、プログラムは、第２アドレス・ブロック再配列規則に基づいて生成された第２アドレス・ブロック変換表から、第２アドレス・ブロック変換表［４０，６８，１０１，８，…］の値の中で、第２アドレス・ブロックの最初の値［０］に対応する値が、[４０]であることを見出す。したがって、第１アドレス・シーケンス内のアドレスは、４０番目の第２アドレス・ブロックのアドレス領域に変換される。すなわち、第１アドレス・シーケンス[２３１，１０３８，７３，２３，…]の各値に５１２００（４０×１２８０バイト）が加算され、各第２ブロックのアドレス領域は１２８０バイトとなる。このようにして、第２アドレス・シーケンス［５１４３１，５２２３８，５１２０３，５１２０２，…］を得ることができる。
【００４３】
３．第３アドレス変換
同様にして工程２５において、プログラムは、第２アドレス・シーケンス［５１４３１，５２２３８，５１２０３，５１２０２，…]が属する第３変換バッチをまず決定し、第２アドレス・シーケンス［５１４３１，５２２３８，５１２０３，５１２０２，…]内の全ての数値が、０〜１６３８４０(１６３８４０＝８１９２０バイト／４ビット)の範囲内、すなわち、第３アドレス・ブロックの最初の領域、つまり、第３変換バッチの第３アドレス・ブロック・シーケンス［０，１，２，３，…，２５６］内の最初の値［０］にあることを確認する。さらに、第３アドレス・ブロック再配列規則に基づいて生成された第３アドレス・ブロック変換表［１２，１８７，３６，２８，…］から、第３アドレス・ブロック変換表［１２，１８７，３６，２８，…］の値の中で、第３アドレス・ブロックの最初の値、すなわち、［０］が対応する値は、［１２］であることが分かる。したがって、第２アドレス・シーケンスのアドレスは、第３変換バッチの第３アドレス・ブロックにおける１２番目のアドレス領域に変換される。すなわち、第２アドレス・シーケンス［２３１，１０３８，７３，２３，…］の各値に１９６６０８０(１２×１６３８４０バイト)が加算され、各第３アドレス・ブロックのアドレス領域は１６３８４０バイトとなる。このようにして、第３アドレス・シーケンス［２０１７５１１，２０１８３１８，２０１７２８３，２０１７２８２，…］を得ることができる。
【００４４】
最後に工程２６において、プログラムは、第３アドレス・シーケンスのアドレスを、データが、記憶装置の記憶構成単位に基づいて記憶装置３０に実際に書き込まれるアドレスに変換する。例えば、記憶装置３０の記憶単位が、５１２バイト（１セクター）であるとして、この記憶装置の書込みアドレスに対応する第３アドレス・シーケンス中のアドレスは、それぞれ［１９７０．ｘｘ，１９７１．ｘｘ，１９７０．ｘｘ，１９７０．ｘｘ，…］であり、ここで、１９７０．ｘｘは、２０１７５１１／１０２４（５１２バイト／４ビット）＝１９７０…２３１（残部）、すなわち、１９７０セクターの２３１番目のアドレスを意味する。
【００４５】
その後、暗号化された８バイトデータが、４ビットの書込み構成単位で表される１６のデータブロックに分けられてから、このデータが、記憶装置３０の書込みアドレス［１９７０．ｘｘ，１９７１．ｘｘ，１９７０．ｘｘ，１９７０．ｘｘ，…］に書き込まれる。すなわち、各データブロックは、各書き込みアドレスの最初の４ビットか、または最後の４ビットに記録される。
【００４６】
第１データ書込みを完了した後、プログラムは、第２データ書込み処理を行う。第２データ書込み領域２０５６番目〜２０６３番目のバイトの内、２０５８番目〜２０６３番目のバイトのデータは更新されないので、プログラムは、まず、２０５６〜２０６３バイト目のデータを読み込み、このデータを復号化し、２０５６番目〜２０５７番目のバイトのデータを更新してから、再度すべてのデータを暗号化する必要がある。その後、アドレス変換後の２０５６番目〜２０６３番目のバイトのアドレスの再配列されたアドレス（すなわち第３アドレス）を上述した方法で見出し、これを記憶装置３０上の実際の書込みアドレスに変換する。続いて、暗号化データが記憶装置３０に書き込まれる。
【００４７】
以上の記述から明らかなように、本実施形態のデジタル情報保護装置における記憶装置の保護されたアドレス領域は、異なるアドレスに再マップされる異なる変換規則を用いた複数の変換（本実施形態では３つの変換を用いるが、２つの変換または１つの基本変換でもよい）が施され、保護されたアドレス領域に書き込まれたデータが、保護されたアドレス領域の不連続なアドレスに分散および分配できるようにする。このようにして、記憶装置に保存されたデータが盗まれた場合でも、分散したデータは最初の暗号化データに再構築されず、これにより、この記憶装置に保存されたデータを十分かつ強力に保護することができる。
【００４８】
図１３は、本発明によるデジタル情報保護方法の別の実施形態を示すもので、有線または無線ネットワークを通じてデータを送信するサーバー端またはクライアント端に適用され、送信端（サーバー端またはクライアント端）から送信されるデータのセグメントを保護するためのものである。したがって、本実施形態のデジタル情報保護方法は、サーバー端、および／またはクライアント端に配置された（コンピュータシステムなどの）デジタル情報保護装置のコンピュータによるアクセスが可能な記録媒体にあるコンピュータソフトウェアプログラムの形態で実施され、クライアント端からサーバー端に向けて送信されるデジタル情報、および／またはサーバー端からクライアント端に向けて送信されるデジタル情報の保護を目的とする。
【００４９】
プリセットデータ構成単位が１バイトで、送信される単位データ量が８バイトの場合を例に使用すると、サーバー端とクライアント端とが互いにデータを送信する場合、通信接続がまず確立される。通信接続が確立された後、識別認証、保護域開始・終了通信、記憶空間アドレス変換規則およびコード通信、データ暗号化／復号化およびコード通信が行われる。以下、識別認証手順について、従来の認証方法を使用して簡単に説明する。
【００５０】
識別認証の際、サーバー端およびクライアント端のそれぞれは、それ自身のパブリックキーインフラストラクチャ（ＰＫＩ）を保有する。まずクライアント端が、識別認証値としてランダム・シーケンス信号を生成する。例えば、シード値として現在のＣＰＵの稼働率を、［３２，１４５，２０４，９，１５８，３，２２２，６８］などの８連続バイトをＲａｎｄ関数によって取得し、さらに２種類の１６連続バイトを、１つは保護域開始信号、例えば、［１２９，３３，５６，１８８，７，８，２５１，２，１３９，１９３，６，８８，２７，１８，２０１，１２］、もう１つは保護域終了信号、例えば、［４２，１１１，２，３８，１０７，２４８，５１，７２，１０，３１，１７６，２３８，９，４５，３５，１４２］などとして、Ｒａｎｄ関数を使用して取得する。さらに、プリセット変換スキーム（詳細下記）を使用してアドレス変換規則を設定し、アドレス変換コードは、Ｒａｎｄ関数を使用して取得される４連続バイトの値、例えば［１３，２１３，６，８８］などに設定される。暗号化／復号化には、プリセットＤＥＳ（デジタル暗号化標準）が用いられる。暗号化コードは、Ｒａｎｄ関数を使用して得られる８連続バイト、例えば、［６，２３，１４５，２３１，２５５，９，８３，１２１］などの値である。
【００５１】
従って、クライアント端が通信開始および終了信号、アドレス変換規則および変換コードを確立し設定すると、このようなデータは、認証機関から入手、またはクライアント端に事前に保存され、サーバー端に送信されるパブリックキーを基に暗号化される。
【００５２】
サーバー端が上述のデータを受信した後、このサーバー端は、そのプライベートキーを使用して受信データを復号化する。また、サーバー端は、認証機関から入手またはサーバー端に事前に保存されたクライアント端のパブリックキーを使用した復号化から得られる識別認証値（ランダムシーケンス信号）を暗号化し、これをクライアント端に送信する。
【００５３】
クライアント端がサーバー端から確認データを受信した後、クライアント端は、そのプライベートキーを用いて受信データを復号化し、復号化から得られる識別認証（ランダムシーケンス信号）を、以前に生成した識別認証値と比較して、サーバー端の識別を確認する。
【００５４】
同じ確認手続きがサーバー端において、反対の方向、すなわち、サーバー端からクライアント端に向けて開始され、確認される。その後、クライアント端およびサーバー端は、それぞれの保護域開始信号を送ることができるようになり、送信前に暗号化とアドレス変換規則によるデータ暗号化とを使用してデータを保護する。サーバー端またはクライアント端が保護域開始信号を相手方から受信する際、通信手順に規定されるスキームを使用して受信データを変換し、また正しいデータを得るためにこのデータを復号しなければならない。
【００５５】
さらに、保護されたデータ文字列を送信する場合、送信される有効データのバイト数を文字列開始のフィールドに記録し、送信されるデータの量を８バイトの単位データ量の整数倍とする必要があるが、欠陥は乱数または他の任意の数によって補償される。例えば、５９バイトのデータを送信する場合、このデータ文字列の最初の２バイトは数値５９を記録するために用いられ、３バイトの空白データをデータ文字列の後に加え（すなわち、５９＋２＋３＝６４）、８組の８バイトデータを構成する必要がある。
【００５６】
暗号化の手順は上述したものと同じであり、簡便性のためここでの再記述は省略する。これら８組のデータが、〔０ｘ２３，０ｘ４３，０ｘＦ６，０ｘＡ８，０ｘ０７，０ｘ８Ｄ，０ｘ５１，０ｘ９２〕〔…〕〔…〕〔…〕〔…〕〔…〕〔…〕〔…〕に暗号化されるものとする。
【００５７】
本実施形態のデジタル情報保護法を図１３の工程６１に示す。まず、図１４に示すように、プログラムが、保護されるべき保護されたアドレス領域の変換を許可する。すなわち、本実施形態の各データセットの８バイトアドレス領域を、例えば、２ビットのプリセット変換構成単位によって３２（８バイト／２ビット）のアドレス・ブロックに分ける。続いて、工程６２において、プログラムは、パラメータとしてアドレス・ブロック再配列規則を生成するために、アドレス・ブロックを使用し、本実施形態においては、修正合同法（Ｄ．Ｅ．Ｋｎｕｔｈ，Ｔｈｅ  Ａｒｔ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｐｒｏｇｒａｍｍｉｎｇ，Ｖｏｌ．２：Ｓｅｍｉｎｕｍｅｒｉａｌ  Ａｌｇｏｒｉｔｈｍｓ，Ｃｈａｐｔｅｒ  ３，Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ，１９６９、参照）をランダム・シーケンス生成法として採用する。この生成法では、プリセットアドレス変換コード［１３，２１３，６，８８］に従い、素数Ｐｒｍ１が３７３から選定される１３番目の素数、すなわち、４４３である（ここで、３７３は無作為に選ばれた数字で、大きくなりすぎないようにするべきである。これは、素数［４４３，１８７１，４０１，９４７］を順次選定した後に決定される素数計算式｛Ｒｍ［ｉ＋１］＝ＭＯＤ（Ｍｕｌｔ…．）｝の計算値が、プロセッサの数値範囲を越えないようにするためである。）。素数Ｐｒｍ２は、３７３からの２１３番目の素数１８７１である。Ｐｌｓは、３７３からの６番目の素数４０１である。乱数シーケンスの初期値Ｒｍ［０］は、３７３からの８８番目の素数９４７である。
【００５８】
乱数シーケンス値は下記によって計算される：
Ｍｕｌｔ＝Ｐｒｍ１×Ｐｒｍ２＋１＝１６５２４０
Ｄｉｖ＝Ｐｒｍ１×Ｐｒｍ２×Ｐｒｍ２＝６１６３４１４７
Ｒｍ［ｉ＋１］＝ＭＯＤ（Ｍｕｌｔ×Ｒｍ［ｉ］＋Ｐｌｓ，Ｄｉｖ）＝Ｍｏｄ（１６５２４０×Ｒｍ［ｉ］＋４０１，６１６３４１４７）
Ｒｍ＝［９４７，３３２１４３８７，９４２０３７２,５１８８７１９６，３７３４６５６５，２７４３２６２６，２２１４５３７９，２１４８４８２４，２５４５０９６１，３４０４３７９０，４７２６３３１１，３４７５３７７，２５９４８２８２，…］。合計３２の値が得られる。
【００５９】
Ｒｍの値を合計３２の剰余値Ｒｍａ：［１９，１９，２０，２８，５，１８，３，２４，１７，１４，１５，１７，２６，…］を得るために、それぞれ３２で割る。
【００６０】
次いで、Ｒｍａ［ｉ］番目のアドレスの数値が順次［ｉ］番目のアドレスに保存される。もし、Ｒｍａ［ｉ］の値がすでに使用されている場合には、Ｒｍａ［ｉ］の増分値（３２で除した際の剰余で、これまでに使用されていない値まで増加させた値）が、［ｉ］番目のアドレスに保存される。このようにして、図１４に示すアドレス・ブロック変換表ＲＭ、［１９，２０，２１，２８，５，１８，３，２４，１７，１４，１５，２２，２６…］を得ることができる。
【００６１】
従って、前述したアドレス変換規則とアドレス・ブロック変換表ＲＭとが構成された後、アドレス・バッチ（すなわち８バイトの保護されたアドレス領域）に第１セットの暗号化データをロードしたい場合には、工程６３で、１変換構成単位として、２ビットを使用して、８バイトのアドレス空間が、まず、３２のアドレス・ブロックに変換される。その後、アドレス・ブロック変換表ＲＭに基づいて、アドレス・バッチ中のアドレス・ブロックのアドレスを再配列する。次いで、暗号化データの第１セットを、１保存構成単位として２ビットを使用して、３２のデータブロックに分ける。これは１０進法で、［０，２，０，３，１，０，０，３，３，３，１，２，２，２，２，０，０，０，３，３，２，０，３，１，２，２，０，１，２，１，０，２］として表される。工程６５では、この３２のデータブロックは、再配列された３２のアドレス・ブロックに順次保存される。従って、図１４に示すように、再配列された３２のアドレス・ブロックに順次保存された後の暗号化データの第１セットは、［３，２，０，２，０，３，３，２，０，２，０，３，０…］となる。同様に、暗号化データの第２から第８セットは、前述の変換スキームを使用して再配列され、その後、これらのデータが上述の方法で送信される。
【００６２】
以上から明らかなように、本実施形態では、データの送信前に、変換構成単位に基づき複数のアドレス・ブロックに送信される単位データ量によって占められたアドレス・バッチ（すなわち、前述の保護されたアドレス領域）を変換するためのデジタル情報保護装置を送信端に設け、このアドレス・ブロックに基づいて、アドレス変換規則を生成し、この規則からアドレス変換表を生成することにより、前記データによって占められたアドレス・バッチが、前記変換構成単位に基づいて複数のアドレス・ブロックに変換され、さらに、アドレス・ブロックのアドレスが、前に生成されたアドレス変換規則またはアドレス変換表に従って再配列される。その後、データは、再配列されたアドレス・ブロックに順次ロードされ、データシーケンスを形成して、その後、送信される。このように、データは、送信前に十分に分散されるので、送信プロセスの途中で万一の中断があったとしても暗号化データを元の暗号化データに再構成することができず、これにより送信プロセスの間に完全かつ強固な保護が提供される。
【００６３】
さらに、デジタル情報保護方法は、コンピュータシステムに保存されるように構成されたコンピュータプログラムソフトウェアとして実施されているが、本発明の方法は、集積回路、電子回路、１回プログラムで制御できる電子回路（またはプログラマブル論理回路）で中央演算回路含む、または含まないもの、および論理計算能力を有するものでも実施することができる。
【００６４】
さらに、暗号化データのクラッキングに通じるアドレス変換スキームへの権限のないアクセスを防止するため、第１の好適な実施形態で実行された複数（３つ）の変換手順を異なる装置で実行し制御することもできる。例えば、ユーザによって入力されたコードを第１アドレス変換の変換コードとして使用し、ユーザによってコンピュータシステムに挿入されたチップカードから読み取られた変換表を第２アドレス変換の実行に使用し、さらにネットワークサーバーが、第３アドレス変換を制御し実行することができる。このような制御スキームは、前述した準備操作および実際のアクセス操作に適用することができる。
【００６５】
さらに、アドレス変換規則、アドレス変換表、または上記実施形態で生成される変換コードは、磁気カード、ＣＤ、ＤＶＤ、スマートカード、ＲＡＭディスク、チップカード、ＲＦ装置、赤外線発光ダイオード装置など、磁気的性質、光学、集積回路、電子回路または電磁波を利用した読み取り用（または書込み用）記憶媒体に保存することができる。また、前述の変換コードを、キーボードを介してユーザが入力する、またはユーザの生物学的特質から得ることにより、アドレス変換スキームへの安易なアクセスをさらに防ぐことができる。
【００６６】
以上、本発明を最も実用的で好適と考えられる実施形態に関連付けて記述したが、本発明は開示した実施形態に限定されるものでは無く、最も広い解釈の精神と範囲内に含まれる様々な構成を含むことを意図するもので、このような改良と等価な構成のすべてを包含するものであるものと理解される。
【図面の簡単な説明】
【００６７】
【図１】本発明の一つ実施形態における主機能ブロックを示す図である。
【図２】本発明の別の好適な実施形態における主機能ブロックを示す図である。
【図３】本発明のさらに別の好適な実施形態における主機能ブロックを示す図である。
【図４】本発明の好適な実施形態における、所定のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
【図５】本発明の好適な実施形態における、別のアドレス変換規則を使用して構成された保護域アドレスマッピング表を示す。
【図６】ソースデータを暗号化アルゴリズムを使用して暗号化し、暗号化データを復号化アルゴリズムを使用してソースデータに復号する例を模式的に示す。
【図７】本発明の好適な実施形態において、システム指定アクセス領域初期アドレス・シーケンスが、どの様にアクセス領域カスタムアドレス・シーケンスに変換されるかを模式的に示す。
【図８】本発明によるデジタル情報保護方法の別の実施形態における準備操作フロー図である。
【図９】好適な実施形態における実際のアクセス操作のフロー図である。
【図１０】好適な実施形態における第１アドレス変換を説明する模式図である。
【図１１】好適な実施形態における第２アドレス変換を説明する模式図である。
【図１２】好適な実施形態における第３アドレス変換を説明する模式図である。
【図１３】本発明によるデジタル情報保護方法のさらに別の実施形態におけるフロー図である。
【図１４】本好適実施形態におけるアドレス変換を説明する模式図である。
【図１】
2009025812.tif 000003
【図２】
2009025812.tif 000004
【図３】
2009025812.tif 000005
【図４】
2009025812.tif 000006
【図５】
2009025812.tif 000007
【図６】
2009025812.tif 000008
【図７】
2009025812.tif 000009
【図８】
2009025812.tif 000010
【図９】
2009025812.tif 000011
【図１０】
2009025812.tif 000012
【図１１】
2009025812.tif 000013
【図１２】
2009025812.tif 000014
【図１３】
2009025812.tif 000015
【図１４】
2009025812.tif 000016
【外国語明細書】
[Title of invention]DIGITAL INFORMATION PROTECTING METHOD AND APPARATUS, AND COMPUTER ACCESSIBLE RECORDING MEDIUM
[Detailed Description of the Invention]
[Field of the Invention]
【０００１】
The invention relates to a data protecting method and apparatus, more particularly to a method and apparatus for protecting digital information, which can prevent unauthorized access to digital information.
[Background of the Invention]
【０００２】
With the advance of computer technology, almost all government organizations, research centers, academic institutes, and companies now use computers to prepare documents and establish files. In addition, with the fast development of computer peripheral storage equipment, they are now used to store important documents, file data, technical data, confidential data, and backup copies of the data, etc. Use of storage devices to store documents or files not only can shorten the time to create and locate data, but also can reduce use of paper and increase the lifetime of stored data. Moreover, since portable storage devices are easy to store, convenient to carry, and compact, users are accustomed to using portable storage devices to store data and backup data. However, the convenience provided by portable storage devices increases risks of leakage of data stored in a computer. To overcome the aforesaid drawback, various methods of protecting data using encryption have been proposed. Nonetheless, since encrypted data may still be cracked by processing the encrypted data in a number of computers and doing a large number of calculations, how to enhance data security so that protected data cannot be recovered after being stolen is a subject of primary concern.
[Description of the Invention]
[Problem(s) to be Solved by the Invention]
【０００３】
SUMMARY OF THE INVENTION
Therefore, an object of the present invention is to provide a digital information protecting method so that the protected digital information cannot be easily recomposed and recovered.
[Means for Solving the Problem]
【０００４】
According to one aspect of the invention, a method for protecting digital information comprises:
(A) converting a protected address range into a plurality of address blocks based on a preset conversion unit, and generating an address block rearranging rule using the address blocks as a parameter;
(B) when it is desired to load data into an address batch of the protected address range, converting the address batch into a plurality address blocks based on the conversion unit; and
(C) locating rearranged addresses of the address blocks in the protected address range according to the address block rearranging rule, and loading the data into the rearranged addresses.
【０００５】
According to another aspect of the invention, a method for protecting digital information comprises:
(A) dividing a protected address range into a plurality of first conversion batches, converting an address range of each of the first conversion batches into a plurality of first address blocks based on a first conversion unit, and generating a first address block rearranging rule for rearranging the first address blocks using the first address blocks as a parameter; 
(B) dividing the protected address range into a plurality of second conversion batches, converting an address range of each of the second conversion batches into a plurality of second address blocks based on a preset second conversion unit, and generating a second address block rearranging rule for rearranging the second address blocks using the second address blocks as a parameter; 
(C) dividing the protected address range into at least one third conversion batch, converting an address range of said at least one third conversion batch into a plurality of third address blocks based on a preset third conversion unit, and generating a third address block rearranging rule for rearranging the third address blocks using the third address blocks as a parameter; and
(D) when it is desired to load data into an address batch of the protected address range, determining the first conversion batch to which the address batch belongs, converting the address batch into a plurality of address blocks based on the first conversion unit, locating rearranged addresses of the address blocks in the protected address range according to the first, second and third address block rearranging rules, and loading the data into the rearranged addresses thus located.
【０００６】
BRIEF DESCRIPTION OF THE DRAWINGS
Other features and advantages of the present invention will become apparent in the following detailed description of the preferred embodiments with reference to the accompanying drawings, of which:
Figure 1 is a diagram showing primary function blocks of a preferred embodiment of the present invention; 
Figure 2 is a diagram showing primary function blocks of another preferred embodiment of the present invention;
Figure 3 is a diagram showing primary function blocks of still another preferred embodiment of the present invention; 
Figure 4 illustrates a protected zone address mapping table constructed using a set address conversion rule in the preferred embodiment of the present invention; 
Figure 5 illustrates a protected zone address mapping table constructed using another set address conversion rule in the preferred embodiment of the present invention;
Figure 6 schematically illustrates an example of encrypting source data using an encryption algorithm and decrypting encrypted data into the source data using a decryption algorithm;
Figure 7 schematically illustrates how a system-specified access domain default address sequence is converted into an access domain customized address sequence in the preferred embodiment of the present invention;
Figure 8 is a preparation operation flowchart of another preferred embodiment of a digital information protecting method according to the present invention;
Figure 9 is an actual access operation flowchart of the preferred embodiment; 
Figure 10 is a schematic diagram to illustrate a first address conversion in the preferred embodiment;
Figure 11 is a schematic diagram to illustrate a second address conversion in the preferred embodiment; 
Figure 12 is a schematic diagram to illustrate a third address conversion in the preferred embodiment;
Figure 13 is a flowchart to illustrate still another preferred embodiment of a digital information protecting method according to the present invention; and
Figure 14 is a schematic diagram to illustrate address conversion in the preferred embodiment.
[Best Mode of Carrying Out the Invention]
【０００７】
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Before the present invention is described in greater detail, it should be noted that like elements are denoted by the same reference numerals throughout the disclosure.
【０００８】
Figure 1 shows a primary function block diagram of the first preferred embodiment of this invention, in which a hardware system 10 comprises a computer 11 that includes a data encryption/decryption module 20 and a storage space address conversion module 25, and peripheral storage equipment 12 that includes a storage device 30. Figure 2 shows a primary function block diagram of the second preferred embodiment of the present invention, in which the hardware system 10 comprises a computer 11 that includes a data encryption/decryption module 20, and peripheral storage equipment 12 that includes a storage space address conversion module 25 and a storage device 30. Figure 3 shows a primary function block diagram of the third preferred embodiment of the present invention, in which the hardware system 10 includes a computer 11, and peripheral storage equipment 12 that includes a data encryption/decryption module 20, a storage space address conversion module 25, and a storage device 30.
【０００９】
The storage space address conversion module 25 provides the following functions: (1) setting an address conversion rule 60 according to an address conversion key 95 and a protected zone default address sequence 70, and using the address conversion rule 60 to construct a protected zone address mapping table 65, which converts the protected zone default address sequence 70 into a protected zone customized address sequence 75; and (2) using the protected zone address mapping table 65 to obtain an access domain customized address sequence 85 corresponding to an access domain default address sequence 80; or according to the address conversion rule 60, performing calculations to obtain the access domain customized address sequence 85 corresponding to the access domain default address sequence 80.
【００１０】
The data encryption/decryption module 20 provides the following functions: (1) encrypting source data 50 into encrypted data 55 according to an encryption code 90 and an encryption algorithm 40; and (2) decrypting the encrypted data 55 into the source data 50 according to a decryption code 92 and a decryption algorithm 45.
【００１１】
When data is to be stored in a protected zone of the storage device 30, the data encryption/decryption module 20 is used to encrypt the source data 50 into the encrypted data 55, and the storage space address conversion module 25 is then used to obtain the access domain customized address sequence 85 to which the system-specified access domain default address sequence 80 corresponds. Subsequently, the encrypted data 55 is stored in storage positions corresponding to the access domain customized address sequence 85. On the other hand, when data is to be read, the storage space address conversion module 25 is used to obtain the access domain customized address sequence 85 to which the system-specified access domain default address sequence 80 corresponds, and the encrypted data 55 is then read from the storage positions corresponding to the access domain customized address sequence 85. Subsequently, the encryption/decryption module 20 is used to decrypt the encrypted data 55 into the source data 50.
【００１２】
The foregoing gives an outline of the primary functions of the present invention. An initialization process employing a digital information protecting apparatus of the present invention is described as follows:
【００１３】
The storage space address conversion module 25 is used to decide the address conversion rule 60 according to the address conversion key 95 and the protected zone default address sequence 70 (Pi, i=0, 1, …, n) of a zone to be protected in the storage device 30. The address conversion rule 60 is used to construct the protected zone address mapping table 65, which converts the protected zone default address sequence 70 (Pi, i=0, 1, …, n) into the protected zone customized address sequence 75 (Si, i=0, 1, …, n). The address conversion rule 60 is realized by employing a function which uses the address conversion key 95 and the protected zone default address sequence  70 (Pi, i=0, 1, …, n) as parameters, and the function must satisfy a one-to-one mapping condition in the definition region (Pi, i=0, 1, …, n) to the value region (Si, i=0, 1, …, n). Several schemes of generating the function are set forth below for the purpose of illustration:
【００１４】
(A) Using only the protected zone address range as parameter. Referring to Figure 4, the protected zone default address sequence 70 is (0, 1, …, 1000), and the range of the addresses therein is therefore 0〜1000. The address conversion rule 60 can be set as:
f(x)=1000-x.
【００１５】
Therefore, the protected zone default address sequence 70 (0, 1, …, 1000) is converted into the protected zone customized address sequence 75 (1000, 999, …, 0) according to the address conversion rule 60.
【００１６】
(B) Using the address conversion key 95 and the protected zone address range as parameters. Referring to Figure 5, the protected zone default address sequence 70 is (0, 1, …, 499), and the address conversion key 95 is "a1K9", i.e., the address conversion ASCII character code is 97-49-75-57. The character code sequence is extended using 128, which is not in use, thereby forming a character code sequence of 97-49-75-57-128-128-128-128…. The address conversion rule 60 is thus set to be:
96−x if 0≦x＜97
145−x＋97 if 97≦x＜146
f（x）＝    220−x＋146 if 146≦x＜221
277−x＋221 if 221≦x＜278
405−x＋278 if 278≦x＜406
499−x＋406 if 406≦x＜500
【００１７】
Therefore, the address conversion rule 60 is used to convert the protected zone default address sequence 70 (0, 1, …, 96…, 145…, 220, …, 227, …, 499) into the protected zone customized address sequence 75 (96, 95, …, 0…, 97…, 146, …, 221, …, 406).
【００１８】
The procedure and steps employed by the digital information protecting apparatus to store data in the protected zones of the storage device 30 are described as follows:
【００１９】
1. The data encryption/decryption module 20 is used to encrypt the source data 50 (Di, i=0, 1, …, m) into the encrypted data 55 (Ri, i=0, 1, …, k). The total length of the source data 50 is greater than or equal to the total length of the encrypted data 55. The data to be stored does not have recognizable continuity so that correct and complete reading of the stored data with non-recognizable continuity can be prevented, thereby enhancing protection of the stored data. This will be illustrated using the following encryption algorithm:
【００２０】
The encryption code 90 is set to be "SSun," and the encryption ASCII character code thereof will be 0x53−0x53−0x75−0x6E. Using a symmetrical algorithm, the encryption algorithm 40 is set to be:
Xi ＝ Xi〜Xi-1 if i≠0
Xi〜0x5353756E if i＝0
where i is 8 to 0, "〜" represents an "exclusive or" operation, and Xi has a length unit of 32 bits.
【００２１】
Referring to Figure 6, the encryption algorithm 40 is used to encrypt the source data 50 (0x645BCF98, 0x6839274D, 0x4B652188, …, 0x7890123E) into the encrypted data 55 (0x3708BAF6, 0x0C62E8D5, 0x235C06C5, …, 0x5EA5B9CC).
【００２２】
2. Using the storage space address conversion module 25, and according to the protected zone address mapping table 65 or by directly using the address conversion rule 60, the system-specified access domain default address sequence 80 (Ui, i＝0, 1…, x) is converted into the access domain customized address sequence 85 (Vi, i＝0, 1, …, x), which is subsequently stored sequentially. Referring to Figure 7, the address conversion rule 60 and the protected zone address mapping table 65 are the same as those shown in Figure 4. The system-specified access domain default address sequence 80 (1, 2, 4, 6, 7, 996) is converted into the access domain customized address sequence 85 (999, 998, 996, 994, 993, 4). Therefore, the encrypted data 55 (Ri, i＝0, 1, 2, …, k) will be stored at storage positions to which the access domain customized address sequence 85 (999, 998, 996, 994, 993, 4) correspond.
【００２３】
The procedure and steps involved when reading the data in the protected zones of the storage device 30 are described as follows:
【００２４】
1. Using the storage space address conversion module 25, and according to the protected zone address mapping table 65 or by directly using the address conversion rule 60, the system-specified access domain default address sequence 80 (Ui, i＝0, 1, …, x) is converted into the access domain customized address sequence 85 (Vi, i＝0, 1, …, x). Referring to Figure 7, the address conversion rule 60 and the protected zone address mapping table 65 are the same as those shown in Figure 4, and the access domain default address sequence 80 (1, 2, 4, 6, 7, 996) that is specified by the system to be read is converted into the access domain customized address sequence 85 (999, 998, 996, 994, 993, 4). Therefore, the encrypted data 55 (Ri, i＝0, 1, …, k) is read from the storage positions corresponding to the access domain customized address sequence 85 (999, 998, 996, 994, 993, 4).
【００２５】
2. After reading the encrypted data (Ri, i＝0, 1, …, k) according to the access domain customized address sequence 85 (Vi, i＝0, 1, …, x), the encrypted data 55 (Ri, i＝0, 1, …, k) is decrypted into the source data 50 (Di, i＝0, 1, …, m) using the data encryption/decryption module 20 and according to the decryption code 92 and the decryption algorithm 45. This will be illustrated using the following decryption algorithm:
【００２６】
The decryption code 92 is set to be "SSun," and the decryption ASCII character code thereof will be 0x53−0x53−0x75−0x6E. Employing a symmetrical algorithm, the decryption algorithm 45 is set to be:
Xi ＝     Xi〜0x5353756E if i＝0
Xi〜Xi-1 if i≠0
where i is 0 to 8, "〜" represents an "exclusive or" operation, and Xi has a length unit of 32 bits.
【００２７】
Referring to Figure 6, the encrypted data 55 (0x3708baf6, 0x0c62e8d5, 0x235c06c5, …, 0x5ea5b9cc) is decrypted into the source data 50 (0x645bcf98, 0x6839274d, 0x4b652188, …, 0x7890123e) using the decryption algorithm 45.
【００２８】
Figures 8 and 9 show another preferred embodiment of the digital information protecting method according to the present invention. This embodiment is implemented in the form of a computer software program stored in a computer accessible recording medium of a digital information protecting apparatus (such as a computer system) so as to protect digital information stored in a storage device, such as a hard disk. The procedure and steps of executing digital information protection through the computer software program of this embodiment will be described below with reference to Figures 8 and 9.
【００２９】
It is first supposed that the size of each storage address is 1 byte, and the basic storage unit of the storage device is 512 bytes (i.e., 1 sector). The protected address range of the storage device is from the 2048th to the 20973568th byte, which is a total of 20971520 bytes.
【００３０】
In this embodiment, the program is divided into a preparation operation as shown in Figure 8 and an actual access operation as shown in Figure 9. In the preparation operation shown in Figure 8, three address conversion rules are first generated through the program according to three different conversion units. Three address conversions are then performed on the address to be accessed in the subsequent actual access operation (as shown in Figure 9) according to the three address conversion rules thus generated.
【００３１】
Preparation operation (see Figure 8)
1. First address conversion
In step 11 of Figure 1, with 1024 bytes as a conversion batch (hereinafter referred to as the first conversion batch), the program divides protected addresses of 20971520 bytes into 20480 (20971520 bytes/1024 bytes) first conversion batches, i.e., 0〜1023, 1024〜2047, 2048〜3071, …. Then, with 4 bits as one conversion unit (hereinafter referred to as the first conversion unit), the address range of each of the first conversion batches is converted into 2048 (1024 bytes/4 bits) address blocks (hereinafter referred to as the first address blocks) as shown in Figure 3. Using the first one of the first conversion batches 0〜1023 as an example, the first address blocks can be represented as an address sequence [0, 1, 2, 3, …, 2047]. Subsequently, step 12 is carried out, in which an address block rearranging rule (hereinafter referred to as the first address block rearranging rule) is generated using the address range [0, 1, 2, 3, …, 2047] as a parameter. For example, an irreproducible random number sequence arranging scheme is used. Information, such as utilization rate of a computer processor, hard disk access speed, network access data amount, etc., within a period of time is acquired so as to generate a random number sequence, and the range of the random number sequence is adjusted to 0〜2047, e.g., [231, 1038, 3, 49, 26, 322, …]. Thereafter, the ith address in the address sequence is exchanged with the address at the ith position in the random number sequence. For example, the 0th address in the address sequence, i.e., "0," is exchanged with the address at the 0th position in the random number sequence, i.e., "231." The 1st address in the address sequence, i.e., "1," is exchanged with the address at the 1st position in the random number sequence, i.e., "1038." Accordingly, an address block conversion table (hereinafter referred to as the first address block conversion table) [231, 1038, 73, 27,…] as shown in Figure 10 is generated. The first address block conversion table of the second one of the first conversion batches is a translation (addition) of the numerical values of the first one of the first address block conversion tables with 2048, so on and so forth. Thus, the respective first address block conversion tables of all the first conversion batches (20480 batches) can be obtained.
【００３２】
Since the aforesaid random number sequence cannot be reproduced, the program must permit storage of the random number sequence or the first address block conversion tables to facilitate future use of the same for address conversion to access data.
【００３３】
2. Second address conversion
In step 13, with 81920 bytes as one conversion batch (hereinafter referred to as the second conversion batch), as shown in Figure 11, the program divides the 20971520 bytes of the protected addresses into 256 (20971520 bytes/81920 bytes) second conversion batches, i.e., 0〜81919, 81920〜163839, 163840〜245759, …. Subsequently, using 640 bytes as one conversion unit (hereinafter referred to as the second conversion unit), the address range of each of the second conversion batches is converted into 128 (81920 bytes/640 bytes) address blocks (hereinafter referred to as the second address blocks), as shown in Figure 11. Using the first one of the second conversion batches 0〜81919 as an example, the converted second address blocks can be represented as an address sequence [0, 1, 2, 3, …127]. Thereafter, step 14 is carried out to generate an address block rearranging rule (hereinafter referred to as the second address block rearranging rule) using the address range [0, 1, 2, 3,…, 127] as a parameter. For example, an encryption sequence arranging scheme, which employs a data encryption standard (DES for short) to rearrange the address sequence [0, 1, 2, 3, …, 127], is used. First, the address sequence [0, 1, 2, 3, …] is expressed in binary form as a binary number sequence [0000000, 0000001, 0000010, 0000011, …]. Subsequently, using a DES calculation process, the binary number sequence [0000000, 0000001, 0000010, 0000011, …] is encrypted using a code, e.g., "1h%j9〜&f", into [0101000, 1000100, 1100000, 0011000,…], which, when expressed in decimal form, becomes [40, 68, 96, 24, …]. Thereafter, the ith address in the address sequence is exchanged with the address at the ith position in the number sequence. For example, the 0th address in the address sequence, i.e., "0," is exchanged with the address at the 0th position in the number sequence, i.e., "40". The 1st address in the address sequence, "1," is exchanged with the address at the 1st position in the number sequence, i.e., "68". In this way, an address block conversion table (hereinafter referred to as the second address block conversion table) [40, 68, 101, 8, …] as shown in Figure 11 can be obtained. The second address block conversion table of the second one of the second conversion batches is a translation (addition) of the numerical values of the first one of the second address block conversion tables with 128, so on and so forth. Thus, the respective second address block conversion tables of all the second conversion batches (256 batches) can be obtained.
【００３４】
Furthermore, since the aforesaid number sequence is generated using an encryption process, the program must permit storage of the encryption code to facilitate future use of the same for address conversion to access data.
【００３５】
3. Third address conversion
In step 15, the program sets the conversion batch for a third conversion (hereinafter referred to as the third conversion batch) to be 20971520 bytes (i.e., size of the range of the protected addresses) and, with 81920 bytes as one conversion unit (hereinafter referred to as the third conversion unit), the third conversion batch of 20971520 bytes is converted into 256 (20971620 bytes/81920 bytes) address blocks (hereinafter referred to as the third address blocks). Therefore, the converted third address blocks can be expressed as an address sequence [0, 1, 2, 3, …, 255]. Subsequently, step 16 is carried out to generate an address block rearranging rule (hereinafter referred to as the third address block rearranging rule) using the address range [0, 1, 2, 3, …, 255] as a parameter. For example, a reproducible random number sequence arranging scheme can be used, which employs a computer function Rand with a seed, e.g., 27498, and the random number sequence is adjusted to be one in a range from 0 to 255, e.g., [12, 187, 3, 49, 26, 244, …]. Thereafter, the ith address in the address sequence is exchanged with the address at the ith position in the random number sequence. For example, the 0th address in the address sequence, i.e., "0," is exchanged with the address at the 0th position in the random number sequence, i.e., "12". The 1st address in the address sequence is exchanged with the address at the 1st position in the random number sequence, i.e., "187". In this manner, an address conversion table (hereinafter referred to as the third address conversion table) [12, 187, 36, 28,…], as shown in Figure 12, can be obtained.
【００３６】
In addition, since the aforesaid random number sequence is generated using the reproducible random number sequence arranging scheme, the program must permit storage of the seed value of the computer function Rand so as to facilitate future use of the same for address conversion to access data.
【００３７】
Therefore, in step 21 of Figure 9, when the program receives from an operating system of the computer a request to write data onto a storage device, e.g., to write data to the 2043rd〜2057th byte-address batch of the storage device 30, since some of the addresses onto which the data is to be written are in a non-protected range, i.e., the 2043rd〜2047th bytes, the program will first cause writing of data (by directly executing a data writing operation) to the non-protected range, before causing writing of data to the protected range, i.e., the 2048th〜2057th bytes.
【００３８】
Furthermore, since the data in this embodiment has to be encrypted before storage, and since the amount of data that is processed during each decryption/encryption is 8 bytes, the program needs to adjust the write range to the 2048th〜2063rd bytes (i.e., an integer multiple of 8 bytes), and encrypt and write the data in two operations. In addition, since the area, i.e., the 2048th〜2055th bytes, to which data is written for the first time is a data area that needs to be updated entirely, the program does not need to first execute data reading. The write operation can be executed directly after encryption of the data. 
【００３９】
For example, if the data to be written is:
0x75,0x52,0x21,0x67,0x45,0x9A,0xB5,0xC3,
the encrypted data resulting from DES encryption of the data using an encryption code [9dY2aB] is:
0x9D,0xC5,0xF7,0x11,0x0A,0x83,0x17,0x44.
【００４０】
Therefore, before writing the data to the storage device 30, in order to protect the encrypted data, the program according to this invention permits three address conversions to be performed on the address range, i.e., the 2048th〜2055th bytes, to which data is written for the first time, according to the first, second and third address block rearranging rules generated above, so as to find the write addresses for the encrypted data.
【００４１】
Actual access operation (see Figure 9)
1. First address conversion 
Initially, in step 22, the program determines the first conversion batch to which the address batch 2048〜2055 belongs, and learns that the address batch 2048〜2055 belongs to the aforesaid first one of the first conversion batches, i.e., 0〜1023 bytes. Therefore, the write address range, i.e., the 2048th〜2055th bytes (a total of 8 bytes), is converted into sixteen address blocks based on the first conversion unit (i.e., 4 bits), which are expressed as an address sequence [0, 1, 2, …, 15]. Subsequently, step 23 is performed to locate the rearranged address sequence [231, 1038, 73, 23, …](hereinafter referred to as the first address sequence) to which the address sequence [0, 1, 2, …, 15] corresponds based on the first address block conversion table generated in accordance with the first address block rearranging rule.
【００４２】
2. Second address conversion
First, in step 24, the program determines the second conversion batch to which the values in the first address sequence belong. Supposing all the values in the first address sequence [231, 1038, 73, 23, …] after conversion fall within 0〜1280 (1280=640 bytes/4 bits), it can be known that the 0〜1280 address batch belongs to the first one of the second conversion batches in the second address conversion, and is located within the address range of the first one of the second address blocks, i.e., [0], in the second block address sequence [0, 1, 2, …, 128]. In step 24, the program learns from the second address block conversion table generated based on the second address block rearranging rule that the value in the second address block conversion table [40, 68, 101, 8, …] to which the first one of the second address blocks, [0], corresponds is [40]. Therefore, the addresses in the first address sequence are translated to the address range of the fortieth second address block, i.e., 51200 (40×1280 bytes) is added to each of the values in the first address sequence [231, 1038, 73, 23, …], in which the address range of each of the second blocks is 1280 bytes. Thus, a second address sequence [51431, 52238, 51203, 51202, …] can be obtained.
【００４３】
3. Third address conversion 
Similarly, in step 25, the program first determines the third conversion batch to which the values in the second address sequence [51431, 52238, 51203, 51202, …] belong, and finds that all the values in the second address sequence [51431, 52238, 51203, 51202, …] fall within 0〜163840 (163840=81920 bytes/4 bits), i.e., the range of the first one of the third address blocks, i.e., [0], in the third address block sequence [0, 1, 2, 3, …, 256] of the third conversion batch. Moreover, it can be known from the third address block conversion table [12, 187, 36, 28, …] generated based on the third address block rearranging rule that the value in the third address block conversion table [12, 187, 36, 28, …] to which the first one of the third address blocks, i.e., [0], corresponds is [12]. Therefore, the addresses of the second address sequence are translated to the address range of the twelfth one of the third address blocks of the third conversion batch, i.e., 1966080(12×163840 bytes) is added to each of the values in the second address sequence [231, 1038, 73, 23, …], in which the address range of each of the third address blocks is 163840 bytes. Thus, a third address sequence [2017511, 2018318, 2017283, 2017282, …] can be obtained.
【００４４】
Finally, in step 26, the program converts the addresses in the third address sequence into the addresses to which data is to be actually written in the storage device 30 based on a storage unit of the storage device. For example, assuming that the storage unit of the storage device 30 is 512 bytes (1 sector), the addresses in the third address sequence which correspond to the write addresses of the storage device are [1970.xx, 1971.xx, 1970.xx, 1970.xx, …], respectively, in which 1970.xx means 2017511/1024(512 bytes/4 bits)=1970…231 (remainder), i.e., the 231st address of the 1970 sector.
【００４５】
Subsequently, after the encrypted 8-byte data is divided into 16 data blocks in write units of 4 bits, the data is written to the write address [1970.xx, 1971.xx, 1970.xx, 1970.xx, …] of the storage device 30 in sequence (i.e., each data block is stored in the first four bits or last four bits of each write address).
【００４６】
After completing the first data writing, the program processes the second data writing. Since the data in the 2058th〜2063rd bytes of the 2056th〜2063rd bytes of the second data writing range is not to be updated, the program must first read the data on the 2056th〜2063rd bytes, decrypt the data, update the data in the 2056th〜2057th bytes, and encrypt all the data once again. Thereafter, the rearranged addresses (i.e., the third addresses) of the 2056th〜2063rd byte-address batch after address conversion are found according to the above-described method, and are converted into actual write addresses of the storage device 30. Subsequently, the encrypted data is written to the storage device 30.
【００４７】
From the foregoing description, it is apparent that in the digital information protecting apparatus of this embodiment, the protected address range of the storage device undergoes multiple conversions (three conversions in this embodiment, but may be two conversions or just one basic conversion) using different conversion rules to be remapped to different addresses, so that the data written to the protected address range can be scattered and distributed to non-consecutive addresses in the protected address range. Thus, even if the data stored in the storage device is stolen, the scattered data cannot be recomposed into the original encrypted data, thereby affording full and strong protection to the data stored in the storage device.
【００４８】
Figure 13 shows another preferred embodiment of the digital information protecting method according to the present invention, which is applied to a server end and a client end that transmit data over a wired or a wireless network so as to provide protection to segments of data transmitted by a transmitting end (the server end or the client end). Therefore, the digital information protecting method of this embodiment is realized in the form of a computer software program in a computer accessible recording medium of a digital information protecting device (such as a computer system) disposed at the server end and/or the client end so as to protect digital information transmitted to the server end from the client end, and/or digital information transmitted to the client end from the server end.
【００４９】
Using an example where the preset data unit is 1 byte and the unit data amount transmitted is 8 bytes, when the server end and the client end need to transmit data to each other, a communication connection has to be established first. After the communication connection is established, identity authentication, protected zone begin and end signal communication, storage space address conversion rule and code communication, data encryption/decryption and code communication are performed. The identity authentication procedure is described briefly hereinbelow using a conventional authentication method.
【００５０】
During identity authentication, each of the server end and the client end has its own public-key infrastructure (PKI). The client end will first generate a random sequence signal as an identity authentication value. For example, with a current utilization rate of the CPU as a seed value, eight consecutive bytes, such as [32, 145, 204, 9, 158, 3, 222, 68], are acquired using a Rand function, and values of two consecutive 16 bytes are acquired using the Rand function as the protected zone begin signal, such as [129, 33, 56, 188, 7, 8, 251, 2, 139, 193, 6, 88, 27, 18, 201, 12], and the end signal, such as [42, 111, 2, 38, 107, 248, 51, 72, 10, 31, 176, 238, 9, 45, 35, 142]. Moreover, an address conversion rule is set using a preset conversion scheme (to be described hereinafter), and an address conversion code is set to be the values of four consecutive bytes, such as [13, 213, 6, 88], which are acquired using the Rand function. A preset DES (digital encryption standard) is used for data encryption/decryption. The encryption code is values of eight consecutive bytes acquired using the Rand function, e.g., [6, 23, 145, 231, 255, 9, 83, 121].
【００５１】
Therefore, after the client end has established and set the transmission begin and end signals, and the address conversion rule and conversion code, such data is encrypted with a public key of the server end which was obtained from certificate authorities or pre-stored in the client end, and is transmitted to the server end.
【００５２】
After the server end has received the aforesaid data, the server end decrypts the received data using a private key thereof, encrypts the identity authentication value (random sequence signal) obtained from decryption with a public key of the client end which was obtained from the certificate authorities or pre-stored in the server end, and transmits the same to the client end.
【００５３】
After the client end has received the confirmation data from the server end, the client end decrypts the data with a private key thereof, and compares the identity authentication value (random sequence signal) obtained from decryption with the identity authentication value generated previously so as to confirm the identity of the server end.
【００５４】
The same confirmation procedure is initiated and confirmed at the server end but in a reverse direction from the server end to the client end. Thereafter, each of the client end and the server end can send the protected zone begin signal thereof, and protect the data using data encryption and the address conversion rule before transmission. When the server end or client end receives the protect zone begin signal from the counterparty, the received data must be converted using a scheme specified in a communication procedure, and the data must be decrypted to obtain the correct data.
【００５５】
In addition, when transmitting a protected data string, the number of bytes of effective data sent must be recorded in a field at the beginning of the string, and the amount of data transmitted must be an integer multiple of the unit data amount of 8 bytes, deficiency being compensated for by a random number or any other arbitrary number. For example, when data of 59 bytes is to be transmitted, the first two bytes of the data string must be used to record the number 59, and three bytes of blank data must be added to the end of the data string (i.e., 59+2+3=64) to constitute eight sets of 8-byte data.
【００５６】
The step of encryption is the same as that described hereinabove, and will not be repeated herein for the sake of brevity. Suppose these eight sets of data are encrypted into 〔0x23, 0x43, 0xF6, 0xA8, 0x07, 0x8D, 0x51, 0x92〕〔…〕〔…〕〔…〕〔…〕〔…〕〔…〕〔…〕.
【００５７】
The digital information protection method of this embodiment is as shown in step 61 of Figure 13. First, as shown in Figure 14, the program permits conversion of a protected address range to be protected, i.e., the 8-byte address range of each data set of this embodiment at a preset conversion unit, e.g., 2 bits, into 32 address blocks (8 bytes/2 bits). Subsequently, in step 62, the program uses the address blocks as a parameter to generate an address block rearranging rule which, in this embodiment, employs a modified congruential method (see D.E.Knuth, The Art of Computer Programming, Vol., 2: Seminumerial Algorithms, Chapter 3, Addison-Wesley, 1969) as the random sequence generating method, in which according to a preset address conversion code [13, 213, 6, 88], a prime number Prm1 is selected to be the thirteenth prime number, i.e., 443, from 373 (a randomly selected value, which should not be too large, in order that a computed value of a prime number calculating equation [Rm[i+1]=MOD(Mult….)] that is decided after successively selecting the prime numbers [443, 1871, 401, 947] will not be greater than a numerical value range of the processor). Prime number Prm2 is the 213rd prime number, 1871, from 373. Pls is the 6th prime number, 401, from 373. The initial value Rm[0] of the random number sequence is the 88th prime number, 947, from 373.
【００５８】
The random number sequence values are calculated as follows:
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, …]. A total of 32 values are acquired.
【００５９】
The values of Rm are each divided by 32 to obtain remainders Rma: [19, 19, 20, 28, 5, 18, 3, 24, 17, 14, 15, 17, 26, …], a total of 32 values.
【００６０】
Subsequently, value of the Rma[i]th address is stored at the [i]th address in sequence. If the value of Rma[i] has already been used, an incremented value (incremented progressively to a value that has never been used before and that is a remainder of 32) of Rma[i] is stored at the [i]th address. Thus, an address block conversion table RM as shown in Figure 14 can be obtained, which is [19, 20, 21, 28, 5, 18, 3, 24, 17, 14, 15, 22, 26…].
【００６１】
Therefore, after the aforesaid address conversion rule and the address block conversion table RM have been constructed, in step 63, when it is desired to load the first set of encrypted data into an address batch (i.e., the 8-byte protected address range), the 8-byte address space is first converted into 32 address blocks using 2 bits as one conversion unit. Thereafter, based on the address block conversion table RM, the addresses of the address blocks in the address batch are rearranged. Subsequently, the first set of encrypted data is split into 32 data blocks using 2 bits as one storage unit, which are expressed in the decimal system into [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]. In step 65, the 32 data blocks are stored in sequence into the rearranged 32 address blocks. Therefore, as shown in Figure 14, the first set of encrypted data, after being stored in the rearranged 32 address blocks, become [3, 2, 0, 2, 0, 3, 3, 2, 0, 2, 0, 3, 0…]. Similarly, the second to eight sets of encrypted data are rearranged using the aforesaid address conversion scheme, and the data are thereafter transmitted in the above-described manner.
【００６２】
It is apparent from the foregoing that, in this embodiment, by providing a digital information protecting apparatus at the transmitting end to convert the address batch (i.e., the aforesaid protected address range) taken up by the unit data amount to be transmitted into a plurality of address blocks based on a conversion unit, by generating an address conversion rule based on the address blocks, and by generating an address conversion table from the rule, before transmission of the data, the address batches occupied by the data are converted into a plurality of address blocks based on the conversion unit, and the addresses of the address blocks are rearranged according to the previously generated address conversion rule or the address conversion table. The data is thereafter loaded into the rearranged address blocks in sequence to form a data sequence, and is subsequently transmitted. In this way, since the data has been sufficiently scattered prior to transmission, the encrypted data cannot be recomposed into the original encrypted data even if intercepted during the process of transmission, thereby providing complete and strong protection during the process of transmission.
【００６３】
In addition, it is noted that although the digital information protecting method is realized in the form of a computer program software adapted to be stored in a computer system, the method of the present invention can also be implemented using an integrated circuit, an electronic circuit, or a once-programmable electronic circuit (or programmable logic circuit) that may or may not include a central processor, and that has logical computation capability.
【００６４】
Furthermore, in order to prevent unauthorized access to the address conversion scheme which may result in cracking of the encrypted data, the multiple (three) conversion procedures executed by the first preferred embodiment can be implemented and controlled by different devices. For instance, the code inputted by the user can be used as the conversion code in the first address conversion, the conversion table read from the chip card inserted into the computer system by the user is used to execute the second address conversion, and the network server controls and executes the third address conversion. Such a control scheme can be applied in the aforesaid preparation operation and actual access operation.
【００６５】
Furthermore, the address conversion rule, the address conversion table, or the conversion code generated in the above-described embodiments can be stored in a readable (or writable) storage medium that utilizes a magnetic property, optics, integrated circuit, electronic circuit, or electromagnetic waves, such as a magnetic card, CD, DVD, Smart Card, RamDisk, chip card, RF device, and IRED device. Certainly, the aforesaid conversion code may be inputted by the user via a keyboard or acquired from biological attributes of the user to thereby further prevent easy access to the address conversion scheme.
【００６６】
While the present invention has been described in connection with what are considered the most practical and preferred embodiments, it is understood that this invention is not limited to the disclosed embodiments but is intended to cover various arrangements included within the spirit and scope of the broadest interpretation so as to encompass all such modifications and equivalent arrangements.
【Claim 1】
A method for protecting digital information, characterized by:
(A) converting a protected address range into a plurality of address blocks based on a preset conversion unit, and generating an address block rearranging rule using the address blocks as a parameter;
(B) when it is desired to load data into an address batch of the protected address range, converting the address batch into a plurality address blocks based on the conversion unit; and
(C) locating rearranged addresses of the address blocks in the protected address range according to the address block rearranging rule, and loading the data into the rearranged addresses.
【Claim 2】
The method for protecting digital information according to claim 1, characterized in that the protected address range is a storage address space of a storage device (30), and in step (C), prior to loading the data into the rearranged addresses, each of the rearranged addresses is converted into an actual write address of the storage device (30) according to a storage unit of the storage device (30).
【Claim 3】
The method for protecting digital information according to claim 1, characterized in that the conversion unit is one of 1 byte, 4 bits and 2 bits.
【Claim 4】
The method for protecting digital information according to claim 1, characterized in that, in step (A), an irreproducible random sequence arranging scheme is used as the address block rearranging rule, and includes utilizing operational information of internal hardware of a computer (11) to generate a random number sequence ranging from 0 to the number of the address blocks, and exchanging an ith address block with an address block having an ith position in the random number sequence to thereby generate an address conversion table, and wherein, in step (C), the rearranged addresses of the address blocks in the protected address range are located based on the address conversion table. 
【Claim 5】
The method for protecting digital information according to claim 1, characterized in that, in step (A), an address conversion key (95) inputted externally is accepted, and the address block rearranging rule is constructed using a number of the address blocks and the address conversion key (95). 
【Claim 6】
The method for protecting digital information according to claim 5, further characterized in that, in step (A), the address block rearranging rule is to use an encryption arranging scheme which includes utilizing a data encryption standard that uses the address conversion key (95) as an encryption code (90), encrypting a number sequence that is a binary expression of an address sequence constituted by the address blocks, expressing the encrypted binary number sequence in decimal to become an address block sequence, and exchanging an ith address block with an address block having an ith position in the address block sequence to thereby generate an address conversion table.
【Claim 7】
The method for protecting digital information according to claim 6, further characterized in that, in step (C), the rearranged addresses of the address blocks in the protected address range are located according to the address conversion table.
【Claim 8】
The method for protecting digital information according to claim 5, further characterized in that, in step (A), the address block rearranging rule is to use a reproducible random sequence arranging scheme which includes utilizing a computer function Rand with a seed to generate a random number sequence ranging from 0 to the number of the address blocks, and exchanging an ith address block with an address block having an ith position in the random number sequence to thereby generate an address conversion table.
【Claim 9】
The method for protecting digital information according to claim 8, further characterized in that, in step (C), the rearranged addresses of the address blocks in the protected address range are located according to the address conversion table.
【Claim 10】
The method for protecting digital information according to claim 1, characterized in that, in step (B), the data is encrypted data that is encrypted using an encryption algorithm and an encryption code (90). 
【Claim 11】
A method for protecting digital information, characterized by:
(A) dividing a protected address range into a plurality of first conversion batches, converting an address range of each of the first conversion batches into a plurality of first address blocks based on a first conversion unit, and generating a first address block rearranging rule for rearranging the first address blocks using the first address blocks as a parameter; 
(B) dividing the protected address range into a plurality of second conversion batches, converting an address range of each of the second conversion batches into a plurality of second address blocks based on a preset second conversion unit, and generating a second address block rearranging rule for rearranging the second address blocks using the second address blocks as a parameter; 
(C) dividing the protected address range into at least one third conversion batch, converting an address range of said at least one third conversion batch into a plurality of third address blocks based on a preset third conversion unit, and generating a third address block rearranging rule for rearranging the third address blocks using the third address blocks as a parameter; and
(D) when it is desired to load data into an address batch of the protected address range, determining the first conversion batch to which the address batch belongs, converting the address batch into a plurality of address blocks based on the first conversion unit, locating rearranged addresses of the address blocks in the protected address range according to the first, second and third address block rearranging rules, and loading the data into the rearranged addresses thus located.
【Claim 12】
The method for protecting digital information according to claim 11, characterized in that step (D) includes: 
(D1) according to the first address block rearranging rule, locating a rearranged first address of each of the address blocks in the first conversion batch; 
(D2) determining the second conversion batch to which each of the rearranged first addresses belongs, and locating a rearranged second address of each of the rearranged first addresses in the second conversion batch to which the respective rearranged first address belongs according to the second address block rearranging rule; and 
(D3) determining the third conversion batch to which each of the rearranged second addresses belongs, and locating a rearranged third address of each of the rearranged second addresses in the third conversion batch to which the respective rearranged second address belongs according to the third address block rearranging rule, and loading the data into the rearranged third addresses.
【Claim 13】
The method for protecting digital information according to claim 12, further characterized in that the protected address range is a storage address space of a storage device (30), and step (D3) includes: prior to loading the data into the rearranged third addresses, each of the rearranged third addresses is converted into an actual write address of the storage device (30) according to a storage unit of the storage device (30), and the data is stored in the actual write addresses thus converted.
【Claim 14】
The method for protecting digital information according to claim 12, further characterized in that the first address block rearranging rule is to use an irreproducible random sequence arranging scheme which includes utilizing operational information of computer internal hardware to generate a random number sequence within the range of the number of the first address blocks of each of the first conversion batches, and exchanging an ith first address block with a first address block having an ith position in the random number sequence to thereby generate a first address block conversion table. 
【Claim 15】
The method for protecting digital information according to claim 14, further characterized in that, in step (D1), the rearranged first address of each of the address blocks in the first conversion batch is located based on the first address conversion table.
【Claim 16】
The method for protecting digital information according to claim 12, further characterized in that the second address block rearranging rule is to use a data encryption standard and an address conversion key (95) to generate a random number sequence within the range of the second address blocks of each of the second conversion batches, and to exchange an ith second address block with a second address block having an ith position in the random number sequence to thereby generate a second address block conversion table.
【Claim 17】
The method for protecting digital information according to claim 16, further characterized in that, in step (D2), the rearranged second address of each of the rearranged first addresses in the second conversion batch is located based on the second address block conversion table. 
【Claim 18】
The method for protecting digital information according to claim 12, further characterized in that, the third address block rearranging rule is to use a reproducible random sequence arranging scheme which includes utilizing a computer function Rand with a seed to generate a random number sequence within the range of the third address blocks of said at least one third conversion batch, and exchanging an ith third address block with a third address block having an ith position in the random number sequence, thereby generating a third address block conversion table. 
【Claim 19】
The method for protecting digital information according to claim 18, further characterized in that, in step (D3), the rearranged third address of each of the rearranged second addresses in the third conversion batch is located based on the third address block conversion table. 
【Claim 20】
The method for protecting digital information according to claim 16, further characterized in that the address conversion key (95) is inputted externally.
【Claim 21】
The method for protecting digital information according to claim 18, further characterized in that the seed value is inputted externally.
【Claim 22】
The method for protecting digital information according to claim 11, characterized in that the data is encrypted data that is encrypted using an encryption algorithm and an encryption code (90).
【Claim 23】
A computer accessible recording medium, which has a digital information protecting program recorded therein, the program being readable and executable to cause a computer (11) to execute steps of a method for protecting digital information, the method being characterized by: 
(A) converting a protected address range into a plurality of address blocks based on a preset conversion unit, and generating an address block rearranging rule using the address blocks as a parameter;
(B) when it is desired to load data into an address batch of the protected address range, converting the address batch into a plurality address blocks based on the conversion unit; and
(C) locating rearranged addresses of the address blocks in the protected address range according to the address block rearranging rule, and loading the data into the rearranged addresses.
【Claim 24】
A computer accessible recording medium, which has a digital information protecting program recorded therein, the program being readable and executable to cause a computer (11) to execute steps of a method for protecting digital information, the method being characterized by: 
(A) dividing a protected address range into a plurality of first conversion batches, converting an address range of each of the first conversion batches into a plurality of first address blocks based on a first conversion unit, and generating a first address block rearranging rule for rearranging the first address blocks using the first address blocks as a parameter; 
(B) dividing the protected address range into a plurality of second conversion batches, converting an address range of each of the second conversion batches into a plurality of second address blocks based on a preset second conversion unit, and generating a second address block rearranging rule for rearranging the second address blocks using the second address blocks as a parameter; 
(C) dividing the protected address range into at least one third conversion batch, converting an address range of said at least one third conversion batch into a plurality of third address blocks based on a preset third conversion unit, and generating a third address block rearranging rule for rearranging the third address blocks using the third address blocks as a parameter; and
(D) when it is desired to load data into an address batch of the protected address range, determining the first conversion batch to which the address batch belongs, converting the address batch into a plurality of address blocks based on the first conversion unit, locating rearranged addresses of the address blocks in the protected address range according to the first, second and third address block rearranging rules, and loading the data into the rearranged addresses thus located.
【Claim 25】
A digital information protecting apparatus, which is loaded with a digital information protecting program, said digital information protecting apparatus being capable of reading and executing said digital information protecting program to perform steps of a method for protecting digital information, the method being characterized by:
(A) converting a protected address range into a plurality of address blocks based on a preset conversion unit, and generating an address block rearranging rule using the address blocks as a parameter;
(B) when it is desired to load data into an address batch of the protected address range, converting the address batch into a plurality address blocks based on the conversion unit; and
(C) locating rearranged addresses of the address blocks in the protected address range according to the address block rearranging rule, and loading the data into the rearranged addresses.
【Claim 26】
A digital information protecting apparatus, which is loaded with a digital information protecting program, said digital information protecting apparatus being capable of reading and executing said digital information protecting program to perform steps of a method for protecting digital information, the method being characterized by:
(A) dividing a protected address range into a plurality of first conversion batches, converting an address range of each of the first conversion batches into a plurality of first address blocks based on a first conversion unit, and generating a first address block rearranging rule for rearranging the first address blocks using the first address blocks as a parameter; 
(B) dividing the protected address range into a plurality of second conversion batches, converting an address range of each of the second conversion batches into a plurality of second address blocks based on a preset second conversion unit, and generating a second address block rearranging rule for rearranging the second address blocks using the second address blocks as a parameter; 
(C) dividing the protected address range into at least one third conversion batch, converting an address range of said at least one third conversion batch into a plurality of third address blocks based on a preset third conversion unit, and generating a third address block rearranging rule for rearranging the third address blocks using the third address blocks as a parameter; and
(D) when it is desired to load data into an address batch of the protected address range, determining the first conversion batch to which the address batch belongs, converting the address batch into a plurality of address blocks based on the first conversion unit, locating rearranged addresses of the address blocks in the protected address range according to the first, second and third address block rearranging rules, and loading the data into the rearranged addresses thus located.
1.ABSTRACT OF THE DISCLOSURE
A method for protecting digital information includes: converting a protected address range into a plurality of address blocks based on a preset conversion unit, and generating an address block rearranging rule using the address blocks as a parameter; when it is desired to load data into an address batch of the protected address range, converting the address batch into a plurality address blocks based on the conversion unit; and locating rearranged addresses of the address blocks in the protected address range according to the address block rearranging rule, and loading the data into the rearranged addresses. Thus, the data can be stored in the address batch scatteredly, and the protected data cannot be recomposed into the original correct data when stolen.
2.Representative Drawing
Figure 13
【図１】
2009025812.tif 000017
【図２】
2009025812.tif 000018
【図３】
2009025812.tif 000019
【図４】
2009025812.tif 000020
【図５】
2009025812.tif 000021
【図６】
2009025812.tif 000022
【図７】
2009025812.tif 000023
【図８】
2009025812.tif 000024
【図９】
2009025812.tif 000025
【図１０】
2009025812.tif 000026
【図１１】
2009025812.tif 000027
【図１２】
2009025812.tif 000028
【図１３】
2009025812.tif 000029
【図１４】
2009025812.tif 000030