(57)【要約】【課題】専用のハードウェアを用いることなく、暗号化／複合化の処理時間を短縮し、保護強度の可変性を高めることを課題とする。【解決手段】被暗号情報をフォーマット変換した後、誤り訂正符号を生成し、フォーマット変換後の情報の一部ビットを変更して暗号化情報を作成するように構成される。【選択図】　　　図１
2004048256.tif 000002
【特許請求の範囲】
【請求項１】
被暗号情報のフォーマットを変換する第１のステップと、
前記第１のステップのフォーマット変換で得られた情報に対して、誤り検出訂正機能においてビット誤りを検出訂正する誤り訂正符号を生成する第２のステップと、
前記誤り検出訂正機能の訂正可能範囲内で、前記第１のステップのフォーマット変換で得られた情報の一部ビットを変更し、変更後の情報を暗号化情報とし、該暗号化情報を復号解凍する際の解読情報を、前記第２のステップで生成した誤り訂正符号とする第３のステップと
を有することを特徴とする暗号化方法。
【請求項２】
前記第１のステップ、第２のステップならびに第３のステップからなる一連の処理を複数回繰り返して実行する
ことを特徴とする請求項１記載の暗号化方法。
【請求項３】
前記第１のステップのフォーマット変換は、複数のアルゴリズムの中から択一的に選択されてなる
ことを特徴とする請求項１又は２記載の暗号化方法。
【請求項４】
前記被暗号情報は、複数のブロックに分割され、分割された複数のブロック毎に独立してフォーマット変換、ならびに一部ビットの変更が実行される
ことを特徴とする請求項１又は２記載の暗号化方法。
【請求項５】
前記第１のステップのフォーマット変換は、情報を圧縮する圧縮処理、ビットの配列を変更するスクランブル処理、又は前記圧縮処理とスクランブル処理である
ことを特徴とする請求項１又は２記載の暗号化方法。
【請求項６】
前記第３のステップで変更される一部ビットは、乱数に基づいて決定される
ことを特徴とする請求項１，２又は４記載の暗号化方法。
【請求項７】
システムの制御中枢となり、ソフトウェアにより被暗号情報をフォーマット変換するホストコントローラと、
前記ホストコントローラが実行したフォーマット変換で得られた情報に対して、誤り検出訂正機能においてビット誤りを検出訂正する誤り訂正符号を生成し、前記誤り検出訂正機能の訂正可能範囲内で、前記ホストコントローラが実行したフォーマット変換で得られた情報の一部ビットを変更し、変更後の情報を暗号化情報とし、前記誤り訂正符号を解読情報として前記暗号化情報を復号解凍するＥＣＣ＆暗号／復号ブロックと、
前記ホストコントローラの制御の下に、前記ＥＣＣ＆暗号／復号ブロックで得られた暗号化情報を記憶し、記憶された暗号化情報を前記ＥＣＣ＆暗号／復号ブロックに与える記憶メディアと
を有することを特徴とする暗号化システム。
【請求項８】
被暗号情報のフォーマットを変換し、フォーマット変換で得られた情報に対して、誤り検出訂正機能においてビット誤りを検出訂正する第１の誤り訂正符号を生成し、前記誤り検出訂正機能の訂正可能範囲内で、前記フォーマット変換で得られた情報の一部ビットを変更して得られる暗号化情報と、
前記フォーマット変換で得られた情報に対して生成された第１の誤り訂正符号と、
前記暗号化情報に対して生成された第２の誤り訂正符号と、
前記第１の誤り訂正符号に対して生成された第３の誤り訂正符号とが記憶されることを特徴とする記憶メディア。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ディジタル情報を暗号化する暗号化方法、暗号化システム及び暗号化されたディジタル情報を記憶する記憶メディアに関する。
【０００２】
【従来の技術】
従来、ディジタル情報の暗号化／復号化を高速に実行するには、採用する暗号化のアルゴリズムにもよるが、複雑で膨大なデータ処理を行わなければならないため、極めて大規模な専用のハードウェアを必要としていた。また、専用のハードウェアを用いる場合に、構成が固定化されるため、暗号化されたディジタル情報を不正解読から保護する保護強度は、採用する暗号化アルゴリズムに依存し、柔軟に保護強度をシステムの要求仕様に応じて可変にして最適化することが困難であった。
【０００３】
一方、マイクロプロセッサを組み込んだ機器においてソフトウェアによりディジタル情報の暗号化を行う場合には、処理内容が複雑かつ膨大になるため、処理するためのプログラムが大規模にならざるを得なかった。さらに、ソフトウェアにより処理するため、専用のハードウェアにより処理する場合に比べて、極めて多くの時間を要し、現実的でなかった。
【０００４】
【発明が解決しようとする課題】
以上説明したように、ディジタル情報における従来の暗号化／復号化において、専用のハードウェアを用いる場合には、構成が大型化するするとともにコストが増大し、容易に導入することが難しかった。また、保護強度を容易かつ柔軟に変更することができず、保護強度の最適化を図ることが困難であるといった不具合を招いていた。
【０００５】
一方、ソフトウェアで処理する場合には、処理プログラムが膨大になるとともに、極めて多くの処理時間を要して非現実的であるといった不具合を招いていた。
【０００６】
そこで、この発明は、上記に鑑みてなされたものであり、その目的とするところは、専用のハードウェアを用いることなく、暗号化／複合化の処理時間を短縮し、保護強度の可変性を高めた暗号化方法、暗号化システム及び記憶メディアを提供することにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、課題を解決する第１の手段は、被暗号情報のフォーマットを変換する第１のステップと、前記第１のステップのフォーマット変換で得られた情報に対して、誤り検出訂正機能においてビット誤りを検出訂正する誤り訂正符号を生成する第２のステップと、前記誤り検出訂正機能の訂正可能範囲内で、前記第１のステップのフォーマット変換で得られた情報の一部ビットを変更し、変更後の情報を暗号化情報とし、該暗号化情報を復号解凍する際の解読情報を、前記第２のステップで生成した誤り訂正符号とする第３のステップとを有することを特徴とする。
【０００８】
第２の手段は、システムの制御中枢となり、ソフトウェアにより被暗号情報をフォーマット変換するホストコントローラと、前記ホストコントローラが実行したフォーマット変換で得られた情報に対して、誤り検出訂正機能においてビット誤りを検出訂正する誤り訂正符号を生成し、前記誤り検出訂正機能の訂正可能範囲内で、前記ホストコントローラが実行したフォーマット変換で得られた情報の一部ビットを変更し、変更後の情報を暗号化情報とし、前記誤り訂正符号を解読情報として前記暗号化情報を復号解凍するＥＣＣ＆暗号／復号ブロックと、前記ホストコントローラの制御の下に、前記ＥＣＣ＆暗号／復号ブロックで得られた暗号化情報を記憶し、記憶された暗号化情報を前記ＥＣＣ＆暗号／復号ブロックに与える記憶メディアとを有することを特徴とする。
【０００９】
第３の手段は、被暗号情報のフォーマットを変換し、フォーマット変換で得られた情報に対して、誤り検出訂正機能においてビット誤りを検出訂正する第１の誤り訂正符号を生成し、前記誤り検出訂正機能の訂正可能範囲内で、前記フォーマット変換で得られた情報の一部ビットを変更して得られる暗号化情報と、前記フォーマット変換で得られた情報に対して生成された第１の誤り訂正符号と、前記暗号化情報に対して生成された第２の誤り訂正符号と、前記第１の誤り訂正符号に対して生成された第３の誤り訂正符号とが記憶されることを特徴とする。
【００１０】
【発明の実施の形態】
以下、図面を用いてこの発明の実施形態を説明する。
【００１１】
図１はこの発明の一実施形態に係る暗号化方法の手順を示す図である。この実施形態は、暗号化しようとするオリジナルデータに、簡易な暗号化として、圧縮とスクランブルといったフォーマット変換を施し、誤り検出訂正機能の１つである、例えばリードソロモンの手法に基づく４シンボル（１シンボル＝１０ビット）の誤り検出訂正機能のＥＣＣ（ｅｒｒｏｒ　ｃｏｒｒｅｃｔｉｎｇ　ｃｏｄｅ　）機能を用いて、フォーマット変換されたデータに、ｎビットのビット誤り（データ変更）を加えて暗号化するようにしている。
【００１２】
図１において、まず、暗号化の対象となる被暗号情報のオリジナルデータＤＡＴＡを所定の圧縮アルゴリズムにより圧縮して、圧縮データＤＡＴＡ１　を生成する（ステップＳ１１）。次に、圧縮データＤＡＴＡ１　を所定のスクランブルアルゴリズムによりスクランブルをかけ、スクランブルデータＤＡＴＡ２　を生成する（ステップＳ１２）。このように、オリジナルデータＤＡＴＡに対して簡易な暗号化として圧縮とスクランブルを施してフォーマット変換する。このフォーマット変換は、ソフトウェアにより処理する。また、圧縮ならびにスクランブルのアルゴリズムは、それぞれ複数用意され、用意された中から任意に選択できるものとする。選択した圧縮又はスクランブルのアルゴリズムを識別するために、それぞれのアルゴリズムの識別子を圧縮キイＰ＿ＫＥＹ　、スクランブルキイＳ＿ＫＥＹ　とする。
【００１３】
また、フォーマット変換として、圧縮とスクランブルの双方を行わず、いずれか一方だけを行うようにしてもよい。さらに、圧縮あるいはスクランブル処理は、採用するアルゴリズムよって比較的小型な構成で実現できるのであれば、ハードウェアにより処理するようにしてもよい。
【００１４】
次に、フォーマット変換されたデータＤＡＴＡ２　に対して、上記ＥＣＣ機能においてビット誤りを自動訂正する機能を備えたＥＣＣ符号を生成する（ステップＳ１３）。生成したＥＣＣ符号をコンテンツ（オリジナルデータ）毎にユニークなコンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹとする。次に、データＤＡＴＡ２　のデータフィールドに対してランダムに、ｎビットのビット誤り（ｎ＝最大で４シンボル＝４０ビット）を意図的に行う（ステップＳ１４）。これにより、オリジナルデータＤＡＴＡを暗号化して、暗号化データＤＡＴＡ３　を生成する。ここで、ランダムなデータフィールドの選択は、乱数を介在させ、例えばフリーランさせたバイナリ・カウンタのカウント値を用いて乱数を発生させる。
【００１５】
このような暗号化手順において、データのオーナー（アクセス権所有者）は暗号解読キイとして、圧縮キイＰ＿ＫＥＹ　、スクランブルキイＳ＿ＫＥＹ　、コンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹを用いる。圧縮キイＰ＿ＫＥＹ　、スクランブルキイＳ＿ＫＥＹ　は、この暗号化手順を実現するシステムの機器固有のシステムキイとして使用され、コンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹは、コンテンツ毎にユニークなキイとして使用される。
【００１６】
上記暗号化の手順において、フォーマット変換を行わずに、オリジナルデータに対して直接ビット誤りを加えた場合には、容易にオリジナルデータの類推、復元解凍が可能となる。このため、この実施形態においては、オリジナルデータのフォーマット変換として、圧縮とスクランブルを行い、データの保護強度が低下することを防止している。
【００１７】
上記暗号化の手順におけるフォーマット変換の圧縮データは、数ビットのエラーが発生すると、エラーが発生したビット位置以降のデータの解凍復元ができなくなる。これを利用して、圧縮データに対してビットエラーを付加することで解凍キイが無い場合の不正な解凍復元の難易度を高めることができる。さらに、データの保護強度を高める目的で、フォーマット変換されたデータにランダムにビット誤りを付加する前処理として、圧縮データにバイト単位でバイトアドレスを付加し、バイトアドレスの並び順にスクランブルをかける。この後、スクランブルが施されたデータに４シンボル（＝４０ビット）のビットエラーを付加するが、１シンボルは連続した１０ビットとなる。
【００１８】
ここで、例えば１６バイトのデータにスクランブルをかけずに連続した１０ビットのビット誤りを付加すると、ビット誤りが付加された２バイトの部分は必ず連続アドレスとなり、元のデータに対して４個所のアドレス領域が変更されたことになる。これに対して、元のデータにバイト単位でスクランブルをかけると、アドレスの不連続な１６バイトのデータにビット誤りを付加することができるため、上述した変更アドレスの領域を８個所に分散させることができる。さらに、元のデータに４ビット単位でスクランブルをかけた場合には、変更アドレス領域は１２個所に分散させることが可能となり、１ビット単位でスクランブルをかけると変更アドレス領域は４０個所に分散させることができるようになる。この結果、スクランブル前の圧縮データのアドレスで見ると、４０ビットのビット誤り（データ変更）を圧縮データのアドレス全域にわたって分散させることができる。
【００１９】
このように、上記実施形態では、ソフトウェアによりフォーマット変換を行い、ＥＣＣ機能をハードウェアにより実現しているので、構成の小型化、処理時間の短縮を達成することができる。また、ＥＣＣ機能は既存のハードウェアを使用して実現できるので、専用のハードウェアを用意する必要はなくなる。また、フォーマット変換の圧縮ならびにスクランブルを複数用意して選択できるようにし、かつ、ＥＣＣ機能の能力を変更することで、不正解読の保護強度を、容易かつ柔軟に変更することができる。
【００２０】
さらに、乱数を用いる暗号化アルゴリズムを採用しているので、不正解読のためのデータ補正パターンが膨大になるため、暗号保護強度の極めて高い、高信頼性の暗号化を実現できる。また、暗号化システムにおいて、既存のＥＣＣ符号生成器、復号器のハードウェア資源、あるいはソフトウェア資源を備えるものであれば、これを流用して強度の高い暗号化、復号化機能を付加できるので、システムのコストパフォーマンスを著しく向上できる。
【００２１】
上記の実施形態では、オリジナルのデータにビット誤りを付加する前に圧縮、スクランブル処理を行っているが、数ビットのビット誤りでデータの復元が困難となるフォーマットの変換手法であれば、他のフォーマット変換でもよく、例えば、排他的論理和を使ったアルゴリズムによる単純な暗号化などが挙げられる。
【００２２】
また、上記実施形態で説明した暗号化の一連の手順を、複数回繰り返し行うようにしてもよい。すなわち、暗号化されたデータＤＡＴＡ３　をオリジナルデータＤＡＴＡとして再び同じ処理を行う。この場合には、ハードウェアやソフトウェアの変更を何ら加えることなく、繰り返す回数に応じてデータの保護強度を高めることができる。
【００２３】
図２は図１に示す暗号化方法により暗号化された暗号化データ（ＤＡＴＡ３　）を復元解凍する復元手順を示す図である。
【００２４】
図２において、まずコンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹを用いて暗号化されたデータＤＡＴＡ３　のビット誤りを訂正し、ビット誤りが訂正されたデータＤＥＴＡ２　を得る（ステップＳ２１）。次に、スクランブルキイＳ＿ＫＥＹ　を用いてデータＤＡＴＡ２　のスクランブルを解除（デスクランブル）し、スクランブルが解除されたデータＤＡＴＡ１　を得る（ステップＳ２２）。続いて、圧縮キイＰ＿ＫＥＹ　を用いてデータＤＡＴＡ１　の圧縮を解凍し、オリジナルデータＤＡＴＡ　を得る（ステップＳ２３）。
【００２５】
図３は図１に示す暗号化方法で得られた暗号化データを様々な記憶メディア３１、例えばフラッシュメモリカード等に保存する手順を示す図である。この実施形態の特徴とするところは、図１に示す暗号化方法により暗号化データＤＡＴＡ３　を記憶メディア３１に保存するために、暗号化データＤＡＴＡ３　ならびにそのＥＣＣ符号となるコンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹのそれぞれに対して、ＥＣＣ符号を生成し（ステップＳ３１，Ｓ３２）、暗号化データＤＡＴＡ３　のＥＣＣ符号ＥＣＣ＿ＣＯＤＥ（ＤＡＴＡ）とコンテンツユニークキイのＥＣＣ符号ＥＣＣ＿ＣＯＤＥ（ＫＥＹ）　を得る。そして、暗号化データＤＡＴＡ３　、コンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹ、ＥＣＣ符号ＥＣＣ＿ＣＯＤＥ（ＤＡＴＡ）ならびにＥＣＣ符号ＥＣＣ＿ＣＯＤＥ（ＫＥＹ）を記憶メディア３１に保存する。
【００２６】
このような実施形態にあっては、暗号化データＤＡＴＡ３　及び／又はコンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹが、例えばデータ化け等により変化した場合であっても、記憶メディア３１に保存されたＥＣＣ符号を用いて復元することが可能となり、記憶メディアに保存する際のデータの保護を図ることができる。
図４は図３に示す手順で記憶メディアに保存されたデータを読み出して復元解凍する際の手順を示す図である。
【００２７】
図４において、記憶メディア３１に保存された暗号化データＤＡＴＡ３　ならびにコンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹが、例えばＤＡＴＡ３’　、Ｅ＿ＣＯＤＥ＿ＫＥＹ’に変化したとすると、記憶メディア３１から読み出された暗号化データＤＡＴＡ３’　は、対応するＥＣＣ符号ＥＣＣ＿ＣＯＤＥ（ＤＡＴＡ）を用いてビット誤りが訂正され（ステップＳ４１）、保存される前の正しい暗号化データＤＡＴＡ３　が得られ、記憶メディア３１から読み出されたコンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹ’　は、対応するＥＣＣ符号ＥＣＣ＿ＣＯＤＥ（ＫＥＹ）　を用いてビット誤りが訂正され（ステップＳ４２）、保存される前の正しいコンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹが得られる。その後は、図２に示す復号解凍の手順と同様である。
【００２８】
図５はこの発明の他の実施形態に係る暗号化方法の手順を示す図である。
【００２９】
この実施形態の特徴とするところは、図１に示す実施形態に比べて、図１に示すステップ１１の圧縮処理、ステップ１２のスクランブル処理、ならびにステップＳ１４のビット誤りの付加において、それそれのデータを複数、例えば４個のブロックに分割し、それぞれのブロック毎に独立してそれぞれの処理を行うようにしたことにある。
【００３０】
ここで、４シンボルのビット誤り（データ変更）がデータの特定のバイトアドレス領域に集中し、かつそのアドレスがデータの末端である場合を考える。このような暗号化データを正規のキイ無しで復号解凍しようとした場合に、圧縮キイ、スクランブルキイの全組み合わせを与えることで、コンテンツユニークキイがなくともデータの末端アドレス領域を除く大半のデータが復号されてしまい、保護強度が劣化する。
【００３１】
このような劣化を防ぐことを目的として、この実施形態が提案されている。例えばオリジナルデータのサイズを５１２バイトとした場合に、このデータを１ブロック１２８バイトとして４ブロックに分割し、ブロック毎にデータを圧縮し（ステップＳ５１）、圧縮して得られたデータＤＡＴＡ１　に対してブロック毎にスクランブルをかける（ステップＳ５２）。続いて、得られたデータの４ブロックをマージしたデータＤＡＴＡ２　のＥＣＣ符号Ｅ＿ＣＯＤＥ＿ＫＥＹを求める（ステップＳ５３）。次に、データＤＡＴＡ２　に対して、ブロック毎にランダムに１シンボル（＝１０ビット）分のビット誤りを加えて、４ブロックのデータ全体で４シンボルのビット誤りを加え、暗号化データＤＡＴＡ３　を得る（ステップＳ５４）。
【００３２】
このような実施形態にあっては、ビット誤りのデータ変更領域が分割された４つのブロックに分散されているため、先に述べたようにコンテンツユニークキイがない状態でデータ末尾以外のデータが不正に復号解凍される現象を防止することができる。また、図１の実施形態と同様に図５に示す手順を複数回繰り返して実行することにより、データの保護強度をさらに高めることができる。
【００３３】
図６は図３、図４の実施形態に示す暗号化／復号化方法を実施する一実施形態に係る暗号化システムの構成を示す図である。
【００３４】
図６において、この実施形態の暗号化システムは、ホストコントローラ６１、ＥＣＣ＆暗号復号ブロック６２ならびに記憶メディア６３を備えて構成されている。ホストコントローラ６１は、例えばＣＰＵやメモリを備えたマイクロコンピュータシステムで構成され、ＥＣＣ＆暗号／復号ブロックと記憶メディア６３を制御する制御中枢として機能し、ソフトウェアによりオリジナルデータのフォーマット変換を行う。ホストコントローラ６１は、ライトプロテクト信号（ＷＰ）、アドレスラッチイネーブル信号（ＡＬＥ）、コマンドラッチイネーブル信号（ＣＬＥ）、リードイネーブル信号（ＲＥ）、ライトイネーブル信号（ＷＥ）を用いてＥＣＣ＆暗号／復号ブロック６１ならびに記憶メディア６３の動作を制御し、Ｉ／Ｏバス６４を介してデータ、アドレス、コマンドがホストコントローラ６１、ＥＣＣ＆暗号／復号ブロック６２、記憶メディア６３間で入出力される。
【００３５】
ＥＣＣ＆暗号／復号ブロック６２は、図３、図４に示すフォーマット変換処理以外の処理を実行する。記憶メディア６３は、例えばフラッシュメモリ、スマートメディア、メモリスティック等様々な形態のものが適用可能である。
【００３６】
この実施形態では、コンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹも暗号化データとペアで記憶メディア６３に格納される。また、圧縮キイＰ＿ＫＥＹ　、スクランブルキイＳ＿ＫＥＹ　のシステムキイは、システム毎にユニークなので、システム側が保持し、非公開とする。コンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹのアクセス権は、アプリケーションレベルで保護機構を設け、一般的にはコンテンツユニークキイＥ＿ＣＯＤＥ＿ＫＥＹをアクセスするための他のキイを別途準備する。
【００３７】
【発明の効果】
以上説明したように、この発明によれば、被暗号化情報をフォーマット変換した後、誤り訂正符号を生成し、フォーマット変換後の情報の一部ビットを変更して暗号化情報を作成するようにしたので、専用のハードウェアを用いることなく、暗号化／複合化の処理時間を短縮し、保護強度を容易かつ柔軟に変更することができる。
【図面の簡単な説明】
【図１】この発明の一実施形態に係る暗号化方法の手順を示す図である。
【図２】図１に示す手順で暗号化された暗号化データを復号する手順を示す図である。
【図３】図１に示す手順で暗号化された暗号化データを記憶メディアに保存する手順を示す図である。
【図４】図３で示す手順で記憶メディアに保存されたデータを読み出して復号する手順を示す図である。
【図５】この発明の他の実施形態に係る暗号化方法の手順を示す図である。
【図６】図３、図４の実施形態に示す暗号化／復号化方法を実施する一実施形態に係る暗号化システムの構成を示す図である。
【符号の説明】
Ｓ１１〜Ｓ１４，Ｓ２１〜Ｓ２３，Ｓ３１〜Ｓ３２，Ｓ４１〜Ｓ４２，Ｓ５１〜Ｓ５４　処理ステップ
３１，６３　記憶メディア
６１　ホストコントローラ
６２　ＥＣＣ＆暗号／復号ブロック
【図１】
2004048256.tif 000003
【図２】
2004048256.tif 000004
【図３】
2004048256.tif 000005
【図４】
2004048256.tif 000006
【図５】
2004048256.tif 000007
【図６】
2004048256.tif 000008