(57)【要約】      （修正有）【課題】電子キー保護システム及びその方法を提供する。【解決手段】電子キー保護システム１０は、複数のハッシュ関数を定義する定義モジュール２００と、電子キーを複数のセグメントに分割し、電子キーの各々のセグメントに対して１つのテーブルユニットを作成し、テーブルユニットは、第一データ及び第二データを備え、第一データはセグメントを含み、第二データは第一データが含むセグメントであるデータの位数を明示する作成モジュール２１０と、定義したハッシュ関数で電子キーの各々のセグメントに対して計算して、各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスを得る計算モジュール２２０と、各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスに基づいて各々のセグメントのテーブルユニットをハッシュテーブルに書き込む格納モジュール２３０とを備える。【選択図】図２
2012059258.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置の中で動作する電子キー保護システムであって、
複数のハッシュ関数を定義する定義モジュールと、
電子キーを複数のセグメントに分割し、前記電子キーの各々のセグメントに対して１つのテーブルユニットを作成し、前記テーブルユニットは、第一データ及び第二データを備え、前記第一データは、前記セグメントを含み、前記第二データは、前記第一データが含むセグメントであるデータの位数を明示する作成モジュールと、
定義したハッシュ関数で電子キーの各々のセグメントに対して計算して、各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスを得る計算モジュールと、
各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスに基づいて各々のセグメントのテーブルユニットをハッシュテーブルに書き込む格納モジュールと、
を備えることを特徴とする電子キー保護システム。
【請求項２】
電子キーを使用しようとする時、定義したハッシュ関数をランダムに選択して電子キーの各々のセグメントのハッシュアドレスを計算し、計算したハッシュアドレスに基づいて前記ハッシュテーブルから各々のセグメントのテーブルユニットを獲得し、前記テーブルユニットから対応するセグメントを抽出して電子キーに合成する抽出モジュールをさらに備えることを特徴とする請求項１に記載の電子キー保護システム。
【請求項３】
前記第一データの位数が固定し、前記セグメントは、前記第一データの低位に位置することを特徴とする請求項２に記載の電子キー保護システム。
【請求項４】
前記計算モジュールは、計算したハッシュアドレスの衝突が発生する際、直接アドレス指定方式によって前記衝突を解決することを特徴とする請求項１に記載の電子キー保護システム。
【請求項５】
複数のハッシュ関数を定義するステップと、
電子キーを複数のセグメントに分割し、前記電子キーの各々のセグメントに対して１つのテーブルユニットを作成し、前記テーブルユニットは、第一データ及び第二データを備え、前記第一データは、前記セグメントを含み、前記第二データは、前記第一データが含むセグメントであるデータの位数を明示するステップと、
定義したハッシュ関数で電子キーの各々のセグメントに対して計算して、各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスを得るステップと、
各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスに基づいて各々のセグメントのテーブルユニットをハッシュテーブルに書き込むステップと、
を備えることを特徴とする電子キー保護方法。
【請求項６】
電子キーを使用しようとする時、定義したハッシュ関数をランダムに選択して電子キーの各々のセグメントのハッシュアドレスを計算するステップと、
計算したハッシュアドレスに基づいて前記ハッシュテーブルから各々のセグメントのテーブルユニットを獲得し、前記テーブルユニットから対応するセグメントを抽出して電子キーに合成するステップと、
をさらに備えることを特徴とする請求項５に記載の電子キー保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報保護システム及びその方法に関するものであり、特に電子キー保護システム及びその方法に関するものである。
【背景技術】
【０００２】
ＢＤ又はＨＤ  ＤＶＤのような光ディスクの中のマルチメディアデータを正確に読み取るために、ソフトウェアプレーヤーはライセンス管理者が提供する電子キー（ライセンスキーと称する）を使用して、光ディスク読取装置と互いに認証する。しかしながら、不法にソフトウェアプレーヤーのデバッグメソッドを使用することで、ライセンスキーを入手する可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、前記課題を解決し、電子キーの安全性を高めることができる電子キー保護システム及びその方法を提供することである。
【課題を解決するための手段】
【０００４】
本発明に係る電子キー保護システムは、データ処理装置の中で動作する。複数のハッシュ関数を定義する定義モジュールと、電子キーを複数のセグメントに分割し、前記電子キーの各々のセグメントに対して１つのテーブルユニットを作成し、前記テーブルユニットは、第一データ及び第二データを備え、前記第一データは、前記セグメントを含み、前記第二データは、前記第一データが含むセグメントであるデータの位数を明示する作成モジュールと、定義したハッシュ関数で電子キーの各々のセグメントに対して計算して、各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスを得る計算モジュールと、各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスに基づいて各々のセグメントのテーブルユニットをハッシュテーブルに書き込む格納モジュールと、を備える。
【０００５】
本発明に係る電子キー保護方法は、複数のハッシュ関数を定義するステップと、電子キーを複数のセグメントに分割し、前記電子キーの各々のセグメントに対して１つのテーブルユニットを作成し、前記テーブルユニットは、第一データ及び第二データを備え、前記第一データは、前記セグメントを含み、前記第二データは、前記第一データが含むセグメントであるデータの位数を明示するステップと、定義したハッシュ関数で電子キーの各々のセグメントに対して計算して、各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスを得るステップと、各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスに基づいて各々のセグメントのテーブルユニットをハッシュテーブルに書き込むステップと、を備える。
【発明の効果】
【０００６】
従来の技術に比べて、本発明の電子キー保護システム及びその方法は、電子キーを複数のセグメントに分割し、セグメントを含むテーブルユニットがハッシュテーブルにランダムに分散するように記憶され、分散のルールは、自分で定義したハッシュ関数によって確定する。電子キーを使用しようとする時、定義したハッシュ関数をランダムに選択して電子キーを抽出する。不法に使用者がデバッグ機能を使用してソフトウェアプレーヤーから電子キーを窃盗するリスクは低くなり、且つ電子キーを抽出する複雑度が低くなる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態に係る電子キー保護システムの応用環境を示す図である。
【図２】図１に示す電子キー保護システムの機能ブロック図である。
【図３】本発明の実施形態に係る電子キー保護方法のフローチャートである。
【図４】電子キーをセグメントに分割することを示す図である。
【図５】（Ａ）〜（Ｄ）は、図４に示されている第一〜第四セグメントに対して作成したテーブルユニットを示す図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照して、本発明の実施形態について説明する。
【０００９】
図１は、本発明の実施形態に係る電子キー保護システムの応用環境を示す図である。前記電子キー保護システム１０は、データ処理装置１１（例えば、サーバ又はコンピューター）の中で動作する。前記データ処理装置１１は、記憶装置１２及びプロセッサー１３を備える。前記記憶装置１２は、前記電子キー保護システム１０のプログラム命令及び前記電子キー保護システム１０が動作中に生成したデータを記憶する。前記プロセッサー１３は、前記電子キー保護システム１０のプログラム命令を実行するため、電子キーの安全性を高める。例えば、電子キーは、１０１００００１１１０１１００１０１００のような数字列であり、データ（例えば、画像又は音声データ）に対して保護することに用いられる。本実施形態において、前記電子キーは、光ディスクの情報を保護することに用いられるライセンスキーである。前記ライセンスキーは、光ディスク読取装置と互いに認証することに用いられるか、又はマルチメディアデータを正確に復号化できるテーマ電子キーを計算する。前記電子キーは、他の用途を有する電子キーであることができ、例えば、ファイルを復号化する電子キーでもよい。
【００１０】
図２は、図１に示す電子キー保護システムの機能ブロック図である。前記電子キー保護システム１０は、定義モジュール２００と、作成モジュール２１０と、計算モジュール２２０と、格納モジュール２３０と、抽出モジュール２４０と、を備える。前記定義モジュール２００、前記作成モジュール２１０、前記計算モジュール２２０、前記格納モジュール２３０は、電子キーを使用する前、前記電子キーをハッシュ（ｈａｓｈ）テーブルに記憶する。前記抽出モジュール２４０は、電子キーを使用する時、前記ハッシュテーブルから前記電子キーを抽出する。以下、各々のモジュールに対して詳しい説明する。
【００１１】
前記定義モジュール２００は、複数のハッシュ関数（ｈａｓｈ  ｆｕｎｃｔｉｏｎｓ）を定義することに用いられる。定義したハッシュ関数は、ランダム関数である。本実施形態において、前記定義モジュール２００は、第一ハッシュ関数、第二ハッシュ関数及び第三ハッシュ関数を定義する。ハッシュ関数を定義する時、高複雑度を原則として、即ち、電子キーの復号化難度を増加することによって前記電子キーの安全性を高める。
【００１２】
前記作成モジュール２１０は、電子キーを複数のセグメント（ｓｅｇｍｅｎｔ）に分割し、各々のセグメントの位数は限定されない。図４を参照すると、電子キーは、１０１００００１１１０１１００１０１００のような２０位の数字列であり、低位から高位に至る順序に、前記電子キーを四つのセグメントに分割し、第一セグメントは、低４位のデータ０１００を含み、第二セグメントは、中間６位のデータ０１１００１を含み、第三セグメントは、中間３位のデータ１１１を含み、第四セグメントは、高７位のデータ１０１００００を含む。前記作成モジュール２１０は、電子キーの各々のセグメントに対して１つのテーブルユニットを作成することにも用いられる。前記テーブルユニットは、第一データ及び第二データを備える。前記第一データは、前記セグメントを含み、前記第二データは、前記第一データが含むセグメントであるデータの位数を明示する。本実施形態において、前記第一データの位数（例えば、８位）は固定される。前記セグメントは、前記第一データの低位に位置する。前記第一データのセグメント以外の位数は、ランダム値である。図４に示されている第一〜第四セグメントに対して作成したテーブルユニットを示す図５（Ａ）〜（Ｄ）である。各々のセグメントのテーブルユニットの第一データは８位であり、セグメントが前記第一データの低位に位置する。例えば、第一セグメントの第二データは４であり、前記第一データの低４位は、第一セグメントであり、他の４位は、ランダム値である。
【００１３】
前記計算モジュール２２０は、定義したハッシュ関数で電子キーの各々のセグメントに対して計算して、各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスを得る。例えば、第一ハッシュ関数で電子キーの各々のセグメントに対して計算して、第一セグメントのハッシュアドレスが７であり、第二セグメントのハッシュアドレスが３であり、第三セグメントのハッシュアドレスが５であり、第四セグメントのハッシュアドレスが１１であるという情報を得る。第二ハッシュ関数で電子キーの各々のセグメントに対して計算して、第一セグメントのハッシュアドレスが４であり、第二セグメントのハッシュアドレスが８であり、第三セグメントのハッシュアドレスが２であり、第四セグメントのハッシュアドレスが１０であるという情報を得る。第三ハッシュ関数で電子キーの各々のセグメントに対して計算して、第一セグメントのハッシュアドレスが１であり、第二セグメントのハッシュアドレスが９であり、第三セグメントのハッシュアドレスが１３であり、第四セグメントのハッシュアドレスが６であるという情報を得る。本実施形態において、計算したハッシュアドレスに衝突（即ち、各々のセグメントに対して計算して同じハッシュアドレスを得る）が発生すれば、直接アドレス指定方式等によって前記衝突を解決する。
【００１４】
前記格納モジュール２３０は、各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスに基づいて、各々のセグメントのテーブルユニットをハッシュテーブルに書き込む。例えば、前記第一ハッシュ関数に対応する各々のセグメントのハッシュアドレスに基づいて、前記第一セグメントのテーブルユニットをハッシュテーブルのハッシュアドレスが７である位置に書き込み、前記第二セグメントのテーブルユニットをハッシュテーブルのハッシュアドレスが３である位置に書き込み、前記第三セグメントのテーブルユニットをハッシュテーブルのハッシュアドレスが５である位置に書き込み、前記第四セグメントのテーブルユニットをハッシュテーブルのハッシュアドレスが１１である位置に書き込む。前記第二ハッシュ関数に対応する各々のセグメントのハッシュアドレスに基づいて、前記第一セグメントのテーブルユニットをハッシュテーブルのハッシュアドレスが４である位置に書き込み、前記第二セグメントのテーブルユニットをハッシュテーブルのハッシュアドレスが８である位置に書き込み、前記第三セグメントのテーブルユニットをハッシュテーブルのハッシュアドレスが２である位置に書き込み、前記第四セグメントのテーブルユニットをハッシュテーブルのハッシュアドレスが１０である位置に書き込む。前記第三ハッシュ関数に対応する各々のセグメントのハッシュアドレスに基づいて、前記第一セグメントのテーブルユニットをハッシュテーブルのハッシュアドレスが１である位置に書き込み、前記第二セグメントのテーブルユニットをハッシュテーブルのハッシュアドレスが９である位置に書き込み、前記第三セグメントのテーブルユニットをハッシュテーブルのハッシュアドレスが１３である位置に書き込み、前記第四セグメントのテーブルユニットをハッシュテーブルのハッシュアドレスが６である位置に書き込む。
【００１５】
前記抽出モジュール２４０は、電子キーを使用しようとする時、定義したハッシュ関数をランダムに選択して電子キーの各々のセグメントのハッシュアドレスを計算する。例えば、前記抽出モジュール２４０は、前記第一ハッシュ関数で計算して、第一セグメントのハッシュアドレスが７であり、第二セグメントのハッシュアドレスが３であり、第三セグメントのハッシュアドレスが５であり、第四セグメントのハッシュアドレスが１１であるという情報を得る。前記抽出モジュール２４０は、計算したハッシュアドレスに基づいて前記ハッシュテーブルから各々のセグメントのテーブルユニットを獲得し、前記テーブルユニットから対応するセグメントを抽出して電子キーに合成する。例えば、ハッシュアドレスが７である位置から第一セグメントのテーブルユニットを獲得して前記第一セグメントを抽出し、ハッシュアドレスが３である位置から第二セグメントのテーブルユニットを獲得して前記第二セグメントを抽出し、ハッシュアドレスが５である位置から第三セグメントのテーブルユニットを獲得して前記第三セグメントを抽出し、ハッシュアドレスが１１である位置から第四セグメントのテーブルユニットを獲得して前記第四セグメントを抽出し、且つ前記第一〜第四セグメントを電子キーに合成する。
【００１６】
図３は、本発明の実施形態に係る電子キー保護方法のフローチャートである。ステップＳ３０１〜Ｓ３０５は、電子キーをハッシュテーブルに記憶する。電子キーを使用しようとする時、ステップＳ３０６〜Ｓ３０７を実行して前記ハッシュテーブルから電子キーを抽出する。
【００１７】
ステップＳ３０１において、前記定義モジュール２００は、複数のハッシュ関数を定義する。定義したハッシュ関数は、ランダム関数である。
【００１８】
ステップＳ３０２において、前記作成モジュール２１０は、電子キーを複数のセグメントに分割し、各々のセグメントの位数に限定されない。
【００１９】
ステップＳ３０３において、前記作成モジュール２１０は、電子キーの各々のセグメントに対して１つのテーブルユニットを作成する。前記テーブルユニットは、第一データ及び第二データを備える。前記第一データは、前記セグメントを含み、前記第二データは、前記第一データの中のセグメントであるデータの位数を明示する。
【００２０】
ステップＳ３０４において、前記計算モジュール２２０は、定義したハッシュ関数で電子キーの各々のセグメントに対して計算して、各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスを得る。
【００２１】
ステップＳ３０５において、前記格納モジュール２３０は、各々のハッシュ関数に対応する各々のセグメントのハッシュアドレスに基づいて、各々のセグメントのテーブルユニットをハッシュテーブルに書き込む。
【００２２】
ステップＳ３０６において、電子キーを使用しようとする時、前記抽出モジュール２４０は、定義したハッシュ関数をランダムに選択して電子キーの各々のセグメントのハッシュアドレスを計算する。
【００２３】
ステップＳ３０７において、前記抽出モジュール２４０は、計算したハッシュアドレスに基づいて、前記ハッシュテーブルから各々のセグメントのテーブルユニットを獲得し、前記テーブルユニットから対応するセグメントを抽出して電子キーに合成する。
【００２４】
以上、本発明を実施例に基づいて具体的に説明したが、本発明は、上述の実施例に限定されるものではなく、その要旨を逸脱しない範囲において、種々の変更が可能であることは勿論であって、本発明の技術的範囲は、以下の特許請求の範囲から決まる。
【符号の説明】
【００２５】
１０  電子キー保護システム
１１  データ処理装置
１２  記憶装置
１３  プロセッサー
２００  定義モジュール
２１０  作成モジュール
２２０  計算モジュール
２３０  格納モジュール
２４０  抽出モジュール
【図１】
2012059258.tif 000003
【図２】
2012059258.tif 000004
【図３】
2012059258.tif 000005
【図４】
2012059258.tif 000006
【図５】
2012059258.tif 000007