(57)【特許請求の範囲】
【請求項１】
計算機のＣＰＵバスを介さずに入力したデータを記録媒体に記録する前に暗号化する装置のために、データ暗号化鍵を生成し記録する、該計算機のＣＰＵバスに接続されて使用される外部記憶装置であって、
予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための記憶手段と、
暗号化対象となるデータの識別情報を生成するための手段と、
前記データの暗号化に用いるデータ暗号化鍵を生成するための手段と、
前記データ暗号化鍵を前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化するための手段と、
前記データ暗号化鍵を前記データ暗号化鍵自身で暗号化するための手段と、
前記識別情報と、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録するための記録手段と、
前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、前記暗号化する装置との間で、一時鍵を共有するための手段と、
共有した前記一時鍵で前記データ暗号化鍵を復号するための手段と、
前記一時鍵で復号された前記データ暗号化鍵を、前記計算機のＣＰＵバスを介して、前記暗号化する装置へ出力するための手段とを備え、
前記共有するための手段は、
前記計算機のＣＰＵバスを介して、前記暗号化する装置から、前記複数のマスター鍵のうちのいずれかのマスター鍵で暗号化された一時鍵及び前記一時鍵自身で暗号化された一時鍵を入力し、
入力した前記いずれかのマスター鍵で暗号化された一時鍵を、前記記憶手段に記録されているいずれかのマスター鍵で復号して得られる第１の鍵候補と、入力した前記一時鍵自身で暗号化された一時鍵を、該第１の鍵候補で復号して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべき一時鍵とすることを特徴とする外部記憶装置。
【請求項２】
計算機のＣＰＵバスを介さずに入力したデータを記録媒体に記録する前に暗号化する装置のために、データ暗号化鍵を生成し記録する、該計算機のＣＰＵバスに接続されて使用される外部記憶装置であって、
予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための記憶手段と、
暗号化対象となるデータの識別情報を生成するための手段と、
前記データの暗号化に用いるデータ暗号化鍵を生成するための手段と、
前記データ暗号化鍵を前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化するための手段と、
前記データ暗号化鍵を前記データ暗号化鍵自身で暗号化するための手段と、
前記識別情報と、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録するための記録手段と、
前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、前記暗号化する装置との間で、一時鍵を共有するための手段と、
前記データ暗号化鍵を前記複数のマスター鍵のうちのいずれかのマスター鍵で復号するための手段と、
前記データ暗号化鍵を前記データ暗号化鍵自身で復号するための手段と、
共有した前記一時鍵で、前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵を復号するための手段と、
共有した前記一時鍵で、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を復号するための手段と、
前記一時鍵で復号された、前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵と、前記一時鍵で復号された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを、前記計算機のＣＰＵバスを介して、前記暗号化する装置へ出力するための手段とを備え、
前記共有するための手段は、
前記計算機のＣＰＵバスを介して、前記暗号化する装置から、前記複数のマスター鍵のうちのいずれかのマスター鍵で暗号化された一時鍵及び前記一時鍵自身で暗号化された一時鍵を入力し、
入力した前記いずれかのマスター鍵で暗号化された一時鍵を、前記記憶手段に記録されているいずれかのマスター鍵で復号して得られる第１の鍵候補と、入力した前記一時鍵自身で暗号化された一時鍵を、該第１の鍵候補で復号して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべき一時鍵とすることを特徴とする外部記憶装置。
【請求項３】
前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、前記予め定められた複数のマスター鍵の全部又は一部を外部から秘匿した形で記憶するための手段を有し且つ識別情報及び該識別情報に対応するデータ暗号化鍵で暗号化されたデータを記録した前記記録媒体から読み出され前記計算機のＣＰＵバスを介して与えられた該データ暗号化鍵で暗号化されたデータを復号する装置との間で、一時鍵を共有するための手段と、
前記記録媒体から読み出された識別情報を、前記計算機のＣＰＵバスを介して入力するための手段と、
前記記録手段に識別情報と対応付けて記録されている、前記予め定められた複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵のうちから、入力した前記識別情報に対応するものを求めるための手段と、
求められた前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部を、前記復号する装置との間で共有した前記一時鍵でそれぞれ暗号化するための手段と、
求められた前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を、前記復号する装置との間で共有した前記一時鍵で暗号化するための手段と、
前記一時鍵でそれぞれ暗号化された、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部と、前記一時鍵で暗号化された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを、前記計算機のＣＰＵバスを介して、前記暗号化する装置へ出力するための手段とをさらに備え、
前記復号する装置との間で、一時鍵を共有するための手段は、
前記計算機のＣＰＵバスを介して、前記復号する装置から、前記複数のマスター鍵のうちのいずれかのマスター鍵で復号された一時鍵及び前記一時鍵自身で復号された一時鍵を入力し、
入力した前記いずれかのマスター鍵で復号された一時鍵を、前記記憶手段に記録されているいずれかのマスター鍵で暗号化して得られる第１の鍵候補と、入力した前記一時鍵自身で復号された一時鍵を、該第１の鍵候補で暗号化して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべき一時鍵とすることを特徴とする請求項１または２に記載の外部記憶装置。
【請求項４】
計算機のＣＰＵバスを介さずに入力されたデータを、記録媒体に記録する前に暗号化する暗号化ユニット装置であって、
予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための記憶手段と、
前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、暗号化対象となるデータの識別番号と該データの暗号化に用いるデータ暗号化鍵を生成し該識別番号と所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録する装置との間で、一時鍵を共有するための手段と、
前記計算機のＣＰＵバスを介して、前記記録する装置から、該記録する装置により生成されたデータ暗号化鍵であって、前記一時鍵で復号されたものを入力するための手段と、
入力した前記一時鍵で復号された前記データ暗号化鍵を、共有した前記一時鍵で暗号化して、前記データ暗号化鍵を求めるための手段と、
暗号化対象となるデータを、前記計算機のＣＰＵバスを介さずに入力するための手段と、
求めた前記データ暗号化鍵を用いて、入力した前記データを暗号化するための手段とを備え、
前記共有するための手段は、
前記一時鍵を生成し、
生成した前記一時鍵を、前記記憶手段に記憶されているいずれかのマスター鍵で暗号化するとともに、該一時鍵自身で一時鍵を暗号化し、
前記いずれかのマスター鍵で暗号化された一時鍵及び前記一時鍵自身で暗号化された一時鍵を、前記計算機のＣＰＵバスを介して、前記外部記憶装置へ出力することを特徴とする暗号化ユニット装置。
【請求項５】
計算機のＣＰＵバスを介さずに入力されたデータを、記録媒体に記録する前に暗号化する暗号化ユニット装置であって、
予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための記憶手段と、
前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、暗号化対象となるデータの識別番号と該データの暗号化に用いるデータ暗号化鍵を生成し該識別番号と所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録する装置との間で、一時鍵を共有するための手段と、
前記計算機のＣＰＵバスを介して、前記記録する装置から、該記録する装置により生成されたデータ暗号化鍵であって、前記複数のマスター鍵のうちのいずれかのマスター鍵で暗号化され、さらに、前記一時鍵で復号されたものと、前記データ暗号化鍵自身で暗号化され、さらに、前記一時鍵で復号されたものとを入力するための手段と、
入力した、前記一時鍵で復号された、前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵と、前記一時鍵で復号された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを、それぞれ、共有した前記一時鍵で暗号化して、前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵と、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを求めるための手段と、
求められた前記いずれかのマスター鍵で復号されたデータ暗号化鍵を、前記記憶手段に記録されているいずれかのマスター鍵で暗号化して得られる第１の鍵候補と、求められた前記一時鍵自身で復号されたデータ暗号化鍵を、該第１の鍵候補で暗号化して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべきデータ暗号化鍵とするための手段と、
暗号化対象となるデータを、前記計算機のＣＰＵバスを介さずに入力するための手段と、
求めた前記データ暗号化鍵を用いて、入力した前記データを暗号化するための手段とを備え、
前記共有するための手段は、
前記一時鍵を生成し、
生成した前記一時鍵を、前記記憶手段に記憶されているいずれかのマスター鍵で暗号化するとともに、該一時鍵自身で一時鍵を暗号化し、
前記いずれかのマスター鍵で暗号化された一時鍵及び前記一時鍵自身で暗号化された一時鍵を、前記計算機のＣＰＵバスを介して、前記外部記憶装置へ出力することを特徴とする暗号化ユニット装置。
【請求項６】
暗号化されて記録媒体に記録されたデータを復号する、計算機のＣＰＵバスに接続されて使用される復号化ユニット装置であって、
予め定められた複数のマスター鍵の全部又は一部を外部から秘匿した形で記憶するための記憶手段と、
前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、暗号化対象となったデータの識別番号と前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録している装置との間で、一時鍵を共有するための手段と、
前記計算機のＣＰＵバスを介して、前記記録している装置から、復号対象となる暗号化データの識別情報に対応するデータ暗号化鍵であって、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部を、さらに、前記一時鍵でそれぞれ暗号化されたものと、前記データ暗号化鍵自身で暗号化され、さらに、前記一時鍵で暗号化されたものとを、入力するための手段と、
入力した、前記一時鍵でそれぞれ暗号化された、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部を、共有した前記一時鍵でそれぞれ復号して、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部を求めるための手段と、
入力した、前記一時鍵で暗号化された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を、共有した前記一時鍵で復号して、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を求めるための手段と、
前記記憶手段に記憶されている前記複数のマスター鍵と、求めた前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部および前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とをもとにして、データ暗号化鍵を求めるための手段と、
前記記録媒体から読み出された前記データ暗号化鍵で暗号化されたデータを、前記計算機のＣＰＵバスを介して入力するための手段と、
求めた前記データ暗号化鍵を復号鍵として、入力した前記データ暗号化鍵で暗号化されたデータを復号するための手段とを備え、
前記共有するための手段は、
前記一時鍵を生成し、
生成した前記一時鍵を、前記記憶手段に記憶されているいずれかのマスター鍵で復号するとともに、該一時鍵自身で一時鍵を復号し、
前記いずれかのマスター鍵で復号された一時鍵及び前記一時鍵自身で復号された一時鍵を、前記計算機のＣＰＵバスを介して、前記外部記憶装置へ出力することを特徴とする復号化ユニット装置。
【請求項７】
前記データ暗号化鍵を求めるための手段は、求めた前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵を、前記記憶手段に記録されているいずれかのマスター鍵を復号鍵として復号して得られる第１の鍵候補と、求めた前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を、該第１の鍵候補で復号して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべきデータ暗号化鍵とするものであることを特徴とする請求項６に記載の復号化ユニット装置。
【請求項８】
前記記録媒体から読み出された暗号化されたデータを復号して得られたもとのデータにある変換処理を施した後に、前記計算機のＣＰＵバスを介さずに外部に出力するための手段をさらに備えたことを特徴とする請求項６または７に記載の復号化ユニット装置。
【請求項９】
計算機のＣＰＵバスに接続された外部記憶装置と暗号化ユニット装置を用いて、該計算機のＣＰＵバスを介さずに外部から入力されたデータを記録媒体に記録する前に暗号化する暗号化システムであって、
前記外部記憶装置は、
予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための第１の記憶手段と、
暗号化対象となるデータの識別情報を生成するための手段と、
前記データの暗号化に用いるデータ暗号化鍵を生成するための手段と、
前記データ暗号化鍵を前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化するための手段と、
前記データ暗号化鍵を前記データ暗号化鍵自身で暗号化するための手段と、
前記識別情報と、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録するための記録手段と、
前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、前記暗号化ユニット装置との間で、一時鍵を共有するための手段と、
共有した前記一時鍵で前記データ暗号化鍵を復号するための手段と、
前記一時鍵で復号された前記データ暗号化鍵を、前記計算機のＣＰＵバスを介して、前記暗号化ユニット装置へ出力するための手段とを備え、
前記暗号化ユニット装置は、
予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための第２の記憶手段と、
前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、前記外部記憶装置との間で、前記一時鍵を共有するための手段と、
前記計算機のＣＰＵバスを介して、前記外部記憶装置から、該外部記憶装置により生成されたデータ暗号化鍵であって、前記一時鍵で復号されたものを入力するための手段と、
入力した前記一時鍵で復号された前記データ暗号化鍵を、共有した前記一時鍵で暗号化して、前記データ暗号化鍵を求めるための手段と、
暗号化対象となるデータを、前記計算機のＣＰＵバスを介さずに入力するための手段と、
求めた前記データ暗号化鍵を用いて、入力した前記データを暗号化するための手段とを備え、
前記暗号化ユニット装置が備える前記共有するための手段は、
前記共有するための手段は、
前記一時鍵を生成し、
生成した前記一時鍵を、前記第２の記憶手段に記憶されているいずれかのマスター鍵で暗号化するとともに、該一時鍵自身で一時鍵を暗号化し、
前記いずれかのマスター鍵で暗号化された一時鍵及び前記一時鍵自身で暗号化された一時鍵を、前記計算機のＣＰＵバスを介して、前記外部記憶装置へ出力するものであり、
前記外部記憶装置が備える前記共有するための手段は、
前記計算機のＣＰＵバスを介して、前記暗号化ユニット装置から、前記複数のマスター鍵のうちのいずれかのマスター鍵で暗号化された一時鍵及び前記一時鍵自身で暗号化された一時鍵を入力し、
入力した前記いずれかのマスター鍵で暗号化された一時鍵を、前記第１の記憶手段に記録されているいずれかのマスター鍵で復号して得られる第１の鍵候補と、入力した前記一時鍵自身で暗号化された一時鍵を、該第１の鍵候補で復号して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべき一時鍵とするものであることを特徴とする暗号化システム。
【請求項１０】
計算機のＣＰＵバスに接続された外部記憶装置と暗号化ユニット装置を用いて、該計算機のＣＰＵバスを介さずに外部から入力されたデータを記録媒体に記録する前に暗号化する暗号化システムであって、
前記外部記憶装置は、
予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための第１の記憶手段と、
暗号化対象となるデータの識別情報を生成するための手段と、
前記データの暗号化に用いるデータ暗号化鍵を生成するための手段と、
前記データ暗号化鍵を前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化するための手段と、
前記データ暗号化鍵を前記データ暗号化鍵自身で暗号化するための手段と、
前記識別情報と、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録するための手段と、
前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、前記暗号化ユニット装置との間で、一時鍵を共有するための手段と、
前記データ暗号化鍵を前記複数のマスター鍵のうちのいずれかのマスター鍵で復号するための手段と、
前記データ暗号化鍵を前記データ暗号化鍵自身で復号するための手段と、
共有した前記一時鍵で、前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵を復号するための手段と、
共有した前記一時鍵で、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を復号するための手段と、
前記一時鍵で復号された、前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵と、前記一時鍵で復号された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを、前記計算機のＣＰＵバスを介して、前記暗号化ユニット装置へ出力するための手段とを備え、
前記暗号化ユニット装置は、
予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための第２の記憶手段と、
前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、前記外部記憶装置との間で、前記一時鍵を共有するための手段と、
前記計算機のＣＰＵバスを介して、前記外部記憶装置から、該外部記憶装置により生成されたデータ暗号化鍵であって、前記複数のマスター鍵のうちのいずれかのマスター鍵で暗号化され、さらに、前記一時鍵で復号されたものと、前記データ暗号化鍵自身で暗号化され、さらに、前記一時鍵で復号されたものとを入力するための手段と、
入力した、前記一時鍵で復号された、前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵と、前記一時鍵で復号された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを、それぞれ、共有した前記一時鍵で暗号化して、前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵と、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを求めるための手段と、
求められた前記いずれかのマスター鍵で復号されたデータ暗号化鍵を、前記第２の記憶手段に記録されているいずれかのマスター鍵で暗号化して得られる第１の鍵候補と、求められた前記一時鍵自身で復号されたデータ暗号化鍵を、該第１の鍵候補で暗号化して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべきデータ暗号化鍵とするための手段と、
暗号化対象となるデータを、前記計算機のＣＰＵバスを介さずに入力するための手段と、
求めた前記データ暗号化鍵を用いて、入力した前記データを暗号化するための手段とを備え、
前記暗号化ユニット装置が備える前記共有するための手段は、
前記共有するための手段は、
前記一時鍵を生成し、
生成した前記一時鍵を、前記第２の記憶手段に記憶されているいずれかのマスター鍵で暗号化するとともに、該一時鍵自身で一時鍵を暗号化し、
前記いずれかのマスター鍵で暗号化された一時鍵及び前記一時鍵自身で暗号化された一時鍵を、前記計算機のＣＰＵバスを介して、前記外部記憶装置へ出力するものであり、
前記外部記憶装置が備える前記共有するための手段は、
前記計算機のＣＰＵバスを介して、前記暗号化ユニット装置から、前記複数のマスター鍵のうちのいずれかのマスター鍵で暗号化された一時鍵及び前記一時鍵自身で暗号化された一時鍵を入力し、
入力した前記いずれかのマスター鍵で暗号化された一時鍵を、前記第１の記憶手段に記録されているいずれかのマスター鍵で復号して得られる第１の鍵候補と、入力した前記一時鍵自身で暗号化された一時鍵を、該第１の鍵候補で復号して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべき一時鍵とするものであることを特徴とする暗号化システム。
【請求項１１】
計算機のＣＰＵバスに接続された外部記憶装置と復号化ユニット装置を用いて、記録媒体に記録された暗号化されたデータを復号する復号化システムであって、
前記外部記憶装置は、
予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための第１の記憶手段と、
暗号化の際に生成された暗号化対象となったデータの識別情報と前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録するための記録手段と、
前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、前記復号化ユニット装置との間で、一時鍵を共有するための手段と、
前記記録媒体から読み出された識別情報を、前記計算機のＣＰＵバスを介して入力するための手段と、
前記記録手段に識別情報と対応付けて記録されている、前記予め定められた複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵のうちから、入力した前記識別情報に対応するものを求めるための手段と、
求められた前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部を、共有した前記一時鍵でそれぞれ暗号化するための手段と、
求められた前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を、共有した前記一時鍵で暗号化するための手段と、
前記一時鍵でそれぞれ暗号化された、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部と、前記一時鍵で暗号化された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを、前記計算機のＣＰＵバスを介して、前記暗号化ユニット装置へ出力するための手段とを備え、
前記復号化ユニット装置は、
予め定められた複数のマスター鍵の全部又は一部を外部から秘匿した形で記憶するための第２の記憶手段と、
前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、前記外部記憶装置との間で、前記一時鍵を共有するための手段と、
前記計算機のＣＰＵバスを介して、前記外部記憶装置から、前記一時鍵でそれぞれ暗号化された、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部と、前記一時鍵で暗号化された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを、入力するための手段と、
入力した、前記一時鍵でそれぞれ暗号化された、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部を、共有した前記一時鍵でそれぞれ復号して、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部を求めるための手段と、
入力した、前記一時鍵で暗号化された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を、共有した前記一時鍵で復号して、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を求めるための手段と、
前記第２の記憶手段に記憶されている前記複数のマスター鍵と、求めた前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部および前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とをもとにして、データ暗号化鍵を求めるための手段と、
前記記録媒体から読み出された前記データ暗号化鍵で暗号化されたデータを、前記計算機のＣＰＵバスを介して入力するための手段と、
求めた前記データ暗号化鍵を復号鍵として、入力した前記データ暗号化鍵で暗号化されたデータを復号するための手段とを備え、
前記復号化ユニットの備える前記共有するための手段は、
前記一時鍵を生成し、
生成した前記一時鍵を、前記第２の記憶手段に記憶されているいずれかのマスター鍵で復号するとともに、該一時鍵自身で一時鍵を復号し、
前記いずれかのマスター鍵で復号された一時鍵及び前記一時鍵自身で復号された一時鍵を、前記計算機のＣＰＵバスを介して、前記外部記憶装置へ出力するものであり、
前記外部記憶装置の備える前記共有するための手段は、
前記計算機のＣＰＵバスを介して、前記復号化ユニット装置から、前記複数のマスター鍵のうちのいずれかのマスター鍵で復号された一時鍵及び前記一時鍵自身で復号された一時鍵を入力し、
入力した前記いずれかのマスター鍵で復号された一時鍵を、前記第１の記憶手段に記録されているいずれかのマスター鍵で暗号化して得られる第１の鍵候補と、入力した前記一時鍵自身で復号された一時鍵を、該第１の鍵候補で暗号化して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべき一時鍵とするものであることを特徴とする復号化システム。
【請求項１２】
計算機のＣＰＵバスに接続された、予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための第１の記憶手段を備えた外部記憶装置と、予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための第２の記憶手段を備えた暗号化ユニット装置とを用いて、該計算機のＣＰＵバスを介さずに外部から入力されたデータを記録媒体に記録する前に暗号化する暗号化方法であって、
前記外部記憶装置において、暗号化対象となるデータの識別情報を生成するためのステップと、
前記外部記憶装置において、前記データの暗号化に用いるデータ暗号化鍵を生成するためのステップと、
前記外部記憶装置において、前記データ暗号化鍵を前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化するためのステップと、
前記外部記憶装置において、前記データ暗号化鍵を前記データ暗号化鍵自身で暗号化するためのステップと、
前記外部記憶装置において、前記識別情報と、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録手段に記録するためのステップと、
前記外部記憶装置と前記暗号化ユニット装置との間で、前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、一時鍵を共有するための共有ステップと、
前記外部記憶装置において、共有した前記一時鍵で前記データ暗号化鍵を復号するためのステップと、
前記外部記憶装置において、前記一時鍵で復号された前記データ暗号化鍵を、前記計算機のＣＰＵバスを介して、前記暗号化ユニット装置へ出力するためのステップと、
前記暗号化ユニット装置において、前記計算機のＣＰＵバスを介して、前記外部記憶装置から、該外部記憶装置により生成されたデータ暗号化鍵であって、前記一時鍵で復号されたものを入力するステップと、
前記暗号化ユニット装置において、入力した前記一時鍵で復号された前記データ暗号化鍵を、共有した前記一時鍵で暗号化して、前記データ暗号化鍵を求めるためのステップと、
前記暗号化ユニット装置において、暗号化対象となるデータを、前記計算機のＣＰＵバスを介さずに入力するためのステップと、
前記暗号化ユニット装置において、求めた前記データ暗号化鍵を用いて、入力した前記データを暗号化するためのステップとを有し、
前記共有ステップでは、
前記暗号化ユニット装置において、前記一時鍵を生成し、
前記暗号化ユニット装置において、生成した前記一時鍵を、前記記憶手段に記憶されているいずれかのマスター鍵で暗号化するとともに、該一時鍵自身で一時鍵を暗号化し、
前記暗号化ユニット装置において、前記いずれかのマスター鍵で暗号化された一時鍵及び前記一時鍵自身で暗号化された一時鍵を、前記計算機のＣＰＵバスを介して、前記外部記憶装置へ出力し、
前記外部記憶装置において、前記計算機のＣＰＵバスを介して、前記前記暗号化ユニット装置から、前記複数のマスター鍵のうちのいずれかのマスター鍵で暗号化された一時鍵及び前記一時鍵自身で暗号化された一時鍵を入力し、
前記外部記憶装置において、入力した前記いずれかのマスター鍵で暗号化された一時鍵を、前記第１の記憶手段に記録されているいずれかのマスター鍵で復号して得られる第１の鍵候補と、入力した前記一時鍵自身で暗号化された一時鍵を、該第１の鍵候補で復号して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべき一時鍵とすることを特徴とする暗号化方法。
【請求項１３】
計算機のＣＰＵバスに接続された、予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための第１の記憶手段を備えた外部記憶装置と、予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための第２の記憶手段を備えた暗号化ユニット装置とを用いて、該計算機のＣＰＵバスを介さずに外部から入力されたデータを記録媒体に記録する前に暗号化する暗号化方法であって、
前記外部記憶装置において、暗号化対象となるデータの識別情報を生成するためのステップと、
前記外部記憶装置において、前記データの暗号化に用いるデータ暗号化鍵を生成するためのステップと、
前記外部記憶装置において、前記データ暗号化鍵を前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化するためのステップと、
前記外部記憶装置において、前記データ暗号化鍵を前記データ暗号化鍵自身で暗号化するためのステップと、
前記外部記憶装置において、前記識別情報と、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録手段に記録するためのステップと、
前記外部記憶装置と前記暗号化ユニット装置との間で、前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、前記暗号化ユニット装置との間で、前記一時鍵を共有するための共有ステップと、
前記外部記憶装置において、前記データ暗号化鍵を前記複数のマスター鍵のうちのいずれかのマスター鍵で復号するためのステップと、
前記外部記憶装置において、前記データ暗号化鍵を前記データ暗号化鍵自身で復号するためのステップと、
前記外部記憶装置において、共有した前記一時鍵で、前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵を復号するためのステップと、
前記外部記憶装置において、共有した前記一時鍵で、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を復号するためのステップと、
前記外部記憶装置において、前記一時鍵で復号された、前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵と、前記一時鍵で復号された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを、前記計算機のＣＰＵバスを介して、前記暗号化ユニット装置へ出力するためのステップと、
前記暗号化ユニット装置において、前記計算機のＣＰＵバスを介して、前記外部記憶装置から、該外部記憶装置により生成されたデータ暗号化鍵であって、前記複数のマスター鍵のうちのいずれかのマスター鍵で暗号化され、さらに、前記一時鍵で復号されたものと、前記データ暗号化鍵自身で暗号化され、さらに、前記一時鍵で復号されたものとを入力するためのステップと、
前記暗号化ユニット装置において、入力した、前記一時鍵で復号された、前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵と、前記一時鍵で復号された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを、それぞれ、共有した前記一時鍵で暗号化して、前記いずれかのマスター鍵で暗号化されたデータ暗号化鍵と、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを求めるためのステップと、
前記暗号化ユニット装置において、求められた前記いずれかのマスター鍵で復号されたデータ暗号化鍵を、前記第２の記憶手段に記録されているいずれかのマスター鍵で暗号化して得られる第１の鍵候補と、求められた前記一時鍵自身で復号されたデータ暗号化鍵を、該第１の鍵候補で暗号化して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべきデータ暗号化鍵とするためのステップと、
前記暗号化ユニット装置において、暗号化対象となるデータを、前記計算機のＣＰＵバスを介さずに入力するためのステップと、
求めた前記データ暗号化鍵を用いて、入力した前記データを暗号化するためのステップとを有し、
前記共有ステップでは、
前記暗号化ユニット装置において、前記一時鍵を生成し、
前記暗号化ユニット装置において、生成した前記一時鍵を、前記記憶手段に記憶されているいずれかのマスター鍵で暗号化するとともに、該一時鍵自身で一時鍵を暗号化し、
前記暗号化ユニット装置において、前記いずれかのマスター鍵で暗号化された一時鍵及び前記一時鍵自身で暗号化された一時鍵を、前記計算機のＣＰＵバスを介して、前記外部記憶装置へ出力し、
前記外部記憶装置において、前記計算機のＣＰＵバスを介して、前記前記暗号化ユニット装置から、前記複数のマスター鍵のうちのいずれかのマスター鍵で暗号化された一時鍵及び前記一時鍵自身で暗号化された一時鍵を入力し、
前記外部記憶装置において、入力した前記いずれかのマスター鍵で暗号化された一時鍵を、前記第１の記憶手段に記録されているいずれかのマスター鍵で復号して得られる第１の鍵候補と、入力した前記一時鍵自身で暗号化された一時鍵を、該第１の鍵候補で復号して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべき一時鍵とすることを特徴とする暗号化方法。
【請求項１４】
計算機のＣＰＵバスに接続された、予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための第１の記憶手段と暗号化の際に生成された暗号化対象となったデータの識別情報と前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録するための記録手段とを備えた外部記憶装置と、予め定められた複数のマスター鍵の全部又は一部を外部から秘匿した形で記憶するための第２の記憶手段を備えた復号化ユニット装置を用いて、記録媒体に記録された暗号化されたデータを復号する復号化方法であって、
前記外部記憶装置と前記復号化ユニット装置との間で、前記計算機のＣＰＵバスを介して、秘密の情報に基づく鍵共有のための情報の受け渡しを行うことによって、一時鍵を共有するための共有ステップと、
前記外部記憶装置において、前記記録媒体から読み出された識別情報を、前記計算機のＣＰＵバスを介して入力するためのステップと、
前記外部記憶装置において、前記記録手段に識別情報と対応付けて記録されている、前記予め定められた複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵のうちから、入力した前記識別情報に対応するものを求めるためのステップと、
前記外部記憶装置において、求められた前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部を、共有した前記一時鍵でそれぞれ暗号化するためのステップと、
前記外部記憶装置において、求められた前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を、共有した前記一時鍵で暗号化するためのステップと、
前記外部記憶装置において、前記一時鍵でそれぞれ暗号化された、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部と、前記一時鍵で暗号化された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを、前記計算機のＣＰＵバスを介して、前記暗号化ユニット装置へ出力するためのステップと、
前記復号化ユニット装置において、前記計算機のＣＰＵバスを介して、前記外部記憶装置から、前記一時鍵でそれぞれ暗号化された、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部と、前記一時鍵で暗号化された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とを、入力するためのステップと、
前記復号化ユニット装置において、入力した、前記一時鍵でそれぞれ暗号化された、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部を、共有した前記一時鍵でそれぞれ復号して、前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部を求めるためのステップと、
前記復号化ユニット装置において、入力した、前記一時鍵で暗号化された、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を、共有した前記一時鍵で復号して、前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵を求めるためのステップと、
前記復号化ユニット装置において、前記第２の記憶手段に記憶されている前記複数のマスター鍵と、求めた前記複数のマスター鍵のうちの所定数のマスター鍵でそれぞれ暗号化されたデータ暗号化鍵の全部又は一部および前記データ暗号化鍵自身で暗号化されたデータ暗号化鍵とをもとにして、データ暗号化鍵を求めるためのステップと、
前記復号化ユニット装置において、前記記録媒体から読み出された前記データ暗号化鍵で暗号化されたデータを、前記計算機のＣＰＵバスを介して入力するためのステップと、
前記復号化ユニット装置において、求めた前記データ暗号化鍵を復号鍵として、入力した前記データ暗号化鍵で暗号化されたデータを復号するためのステップとを有し、
前記共有ステップでは、
前記復号化ユニットにおいて、前記一時鍵を生成し、
前記復号化ユニットにおいて、生成した前記一時鍵を、前記第２の記憶手段に記憶されているいずれかのマスター鍵で復号するとともに、該一時鍵自身で一時鍵を復号し、
前記復号化ユニットにおいて、前記いずれかのマスター鍵で復号された一時鍵及び前記一時鍵自身で復号された一時鍵を、前記計算機のＣＰＵバスを介して、前記外部記憶装置へ出力し、
前記外部記憶装置において、前記計算機のＣＰＵバスを介して、前記復号化ユニット装置から、前記複数のマスター鍵のうちのいずれかのマスター鍵で復号された一時鍵及び前記一時鍵自身で復号された一時鍵を入力し、
前記外部記憶装置において、入力した前記いずれかのマスター鍵で復号された一時鍵を、前記記憶手段に記録されているいずれかのマスター鍵で暗号化して得られる第１の鍵候補と、入力した前記一時鍵自身で復号された一時鍵を、該第１の鍵候補で暗号化して得られる第２の鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を、求めるべき一時鍵とすることを特徴とする復号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル化された文書、音声、画像、プログラムなどのデータをネットワークを介して通信を行うシステムあるいは前記ディジタルデータを記録保存し、読み出しするシステムのための外部記憶装置、暗号化ユニット装置、復号化ユニット装置、暗号化システム、復号化システム、暗号化方法及び復号化方法に関する。
【０００２】
【従来の技術】
現在、計算機が広範に普及しており、種々の分野で情報を電子化して処理し、あるいは情報を電子化して記録装置に保存することが通常行われるようになっている。また、ネットワーク環境も益々整ってきており、情報を電子化して通信することも通常行われるようになってきている。さらには、文書情報だけでなく、音声や画像などのデータを電子化して扱う技術も急速に進歩してきている。
【０００３】
ところで、電子化して扱う情報には、もちろん企業秘密や個人情報のように秘匿性を要する情報が含まれる。また、著作権に係る情報のように扱いに注意を要する情報も含まれる。
【０００４】
そこで、情報を電子化して扱う際に、暗号化を行っておき、正当な者だけがこれを復号できるようにする技術が良く使われている。
【０００５】
例えば、データを暗号化して記録媒体に保存し、また記録媒体から暗号化データを読み出して復号し元のデータを取り出す暗号システムでは、予め暗号化と復号に用いる秘密鍵を定めておき、この秘密鍵を用いて保存、読み出しが行われる。このシステムによれば、秘密鍵を用いることができる者だけが保存された暗号化データを復号することができ、秘密鍵が解読されない限り、秘密鍵を用いることができない第三者が暗号化されたデータを不正に解読することはできない。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記システムでは、もし第三者の不正な攻撃により秘密鍵が解読されると、すべての暗号化データが解読されるばかりでなく、解読により得たデータ（プレインデータ）を自由にコピーすることが可能となってしまう。
【０００７】
また、秘密鍵が解読されなくても、他の暗号化システムにも同一の秘密鍵を内蔵するような場合には、暗号化データをそのままコピーすることにより、簡単に海賊版の作成ができてしまう。
【０００８】
さらに、秘密鍵が暴かれたことが発覚した場合、該当する暗号化システムの秘密鍵を更新する必要があり繁雑であるだけでなく、秘密鍵の更新後には当該暴かれた秘密鍵が復号にも使用できなくなるような更新形態をとるシステムにおいては、秘密鍵の更新後は当該暴かれた秘密鍵で暗号化されていたデータを復号することができなくなり、正当な者も元の内容を得ることができなくなってしまう不具合がある。
【０００９】
本発明は、上記事情を考慮してなされたものであり、第三者による不正なコピーを防止することができる外部記憶装置、暗号化ユニット装置、復号化ユニット装置、暗号化システム、復号化システム、暗号化方法及び復号化方法を提供することを目的とする。
【００１０】
また、本発明は、第三者が鍵情報を取得しあるいは暗号化データを解読することを困難にする外部記憶装置、暗号化ユニット装置、復号化ユニット装置、暗号化システム、復号化システム、暗号化方法及び復号化方法を提供することを目的とする。
【００１１】
さらに、本発明は、鍵情報の更新手続きを不要とする外部記憶装置、暗号化ユニット装置、復号化ユニット装置、暗号化システム、復号化システム、暗号化方法及び復号化方法を提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明は、計算機のＣＰＵバスを介さずに入力したデータ（デジタル化されたデータ；例えば、文書、音声、画像、プログラムなど）を所定の記録媒体に記録する前に暗号化する装置のために、データ暗号化鍵を生成し記録する、計算機のＣＰＵバスに接続されて使用される処理機能を有する外部記憶装置（例えば、ＩＣカード）であって、予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための手段と、暗号化対象となるデータの識別情報を生成するための手段と、前記データの暗号化に用いるデータ暗号化鍵を生成するための手段と、前記識別情報と、前記マスター鍵のうちの所定数のもの（例えば、任意に選んだ１つのマスター鍵、あるいは任意に選んだ複数のマスター鍵、あるいは全てのマスター鍵）で夫々暗号化したデータ暗号化鍵およびデータ暗号化鍵自身で暗号化したデータ暗号化鍵とを対応付けて記録するための手段と、前記計算機のＣＰＵバスを介して前記暗号化する装置に前記データ暗号化鍵を外部から取得されることなく安全に伝えるための手段とを備えたことを特徴とする。
【００１３】
本発明は、上記構成において、自装置内に識別情報と対応して記録されている、前記予め定められた複数のマスター鍵のうちの所定数のもので夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵のうちから、識別情報とこれに対応するデータ暗号化鍵で暗号化されたデータが記録された前記記録媒体から読み出され前記ＣＰＵバスを介して与えられた識別情報に対応するものを求めるための手段と、前記予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための手段を有し前記記録媒体から読み出され前記ＣＰＵバスを介して与えられた暗号化されたデータを復号する装置に、該ＣＰＵバスを介して、求められた前記予め定められた複数のマスター鍵のうちの所定数のもので夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵を外部から取得されることなく安全に伝えるための手段とをさらに備えたことを特徴とする。
【００１４】
本発明は、計算機のＣＰＵバスを介さずに入力されたデータを、所定の記録媒体に記録する前に暗号化する暗号化ユニット装置であって、暗号化対象となるデータの識別番号と該データの暗号化に用いるデータ暗号化鍵を生成し該識別番号と所定数のマスター鍵で夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録する装置から、前記計算機のＣＰＵバスを介して、生成されたデータ暗号化鍵を外部から取得されることなく安全に受け取るための手段と、受け取った前記データ暗号化鍵を用いて前記暗号化対象となるデータを暗号化するための手段とを備えたことを特徴とする。本発明は、暗号化されて所定の記録媒体に記録されたデータを復号する、計算機のＣＰＵバスに接続されて使用される復号化ユニット装置であって、予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための手段と、暗号化対象となったデータの識別番号と所定数のマスター鍵で夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とを対応付けて記録している装置から、前記計算機のＣＰＵバスを介して、復号対象となる暗号化データの識別情報に対応する所定数のマスター鍵で夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵を、外部から取得されることなく安全に受け取るための手段と、自装置内に記憶されている前記複数のマスター鍵と受け取った前記所定数のマスター鍵で夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とをもとにして、データ暗号化鍵を求めるための手段と、求められた前記データ暗号化鍵を復号鍵として、前記記録媒体から読み出され前記ＣＰＵバスを介して与えられた暗号化されたデータを復号するための手段とを備えたことを特徴とする。
【００１５】
好ましくは、前記データ暗号化鍵を求めるための手段は、前記受け取ったいずれかのマスター鍵で暗号化されたデータ暗号化鍵を自装置内に記録されているいずれかのマスター鍵を復号鍵として復号して得られる鍵候補と、この鍵候補を復号鍵として前記受け取ったデータ暗号化鍵自身で暗号化されたデータ暗号化鍵を復号して得られる鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を求めるべきデータ暗号化鍵とするものである。
【００１６】
好ましくは、前記記録媒体から読み出された暗号化されたデータを復号して得られたもとのデータに所定の変換処理を施した後に、前記計算機のＣＰＵバスを介さずに外部に出力するための手段をさらに備えても良い。
【００１７】
本発明は、計算機のＣＰＵバスに接続された処理機能を有する外部記憶装置と暗号化ユニット装置を用いてＣＰＵバスを介さずに外部から入力されたデータを所定の記録媒体に記録する前に暗号化する暗号化システムであって、前記外部記憶装置は、予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための手段と、暗号化対象となるデータの識別情報を生成するための手段と、前記データの暗号化に用いるデータ暗号化鍵を生成するための手段と、前記識別情報と、前記マスター鍵のうちの所定数のもので夫々暗号化したデータ暗号化鍵およびデータ暗号化鍵自身で暗号化したデータ暗号化鍵とを対応付けて記録するための手段と、前記計算機のＣＰＵバスを介して前記暗号化ユニット装置に前記データ暗号化鍵を外部から取得されることなく安全に伝えるための手段とを備え、前記暗号化ユニット装置は、前記外部記憶装置から前記計算機のＣＰＵバスを介して、生成された前記データ暗号化鍵を外部から取得されることなく安全に受け取るための手段と、受け取った前記データ暗号化鍵を用いて前記暗号化対象となるデータを暗号化するための手段とを備えたことを特徴とする。
【００１８】
好ましくは、前記伝えるための手段および前記受け取るための手段は、それぞれ、前記計算機のＣＰＵバスを介した情報のやり取りにより協調して行われる所定の鍵共有手順により所定の一時鍵を外部から取得されることなく共有するための手段を備えるとともに、前記伝えるための手段は、生成された前記データ暗号化鍵を共有した前記一時鍵で復号して出力するための手段を備え、前記受け取るための手段は、与えられた前記一時鍵で復号されたデータ暗号化鍵を共有した前記一時鍵で暗号化するための手段を備えるようにしても良い。
【００１９】
本発明は、計算機のＣＰＵバスに接続された処理機能を有する外部記憶装置と復号化ユニット装置を用いて所定の記録媒体に記録された暗号化されたデータを復号する復号化システムであって、前記外部記憶装置は、予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための手段と、暗号化の際に生成された暗号化対象となったデータの識別情報と前記マスター鍵のうちの所定数のもので夫々暗号化したデータ暗号化鍵およびデータ暗号化鍵自身で暗号化したデータ暗号化鍵とを対応付けて記録するための手段と、自装置内に識別情報と対応して記録されている、前記予め定められた複数のマスター鍵のうちの所定数のもので夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵のうちから、識別情報とこれに対応するデータ暗号化鍵で暗号化されたデータが記録された前記記録媒体から読み出され前記ＣＰＵバスを介して与えられた識別情報に対応するものを求めるための手段と、求められた前記予め定められた複数のマスター鍵のうちの所定数のもので夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵を外部から取得されることなく安全に伝えるための手段とを備え、前記復号化ユニット装置は、予め定められた複数のマスター鍵を外部から秘匿した形で記憶するための手段と、前記外部記憶装置から前記計算機のＣＰＵバスを介して、前記所定数のマスター鍵で夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵を、外部から取得されることなく安全に受け取るための手段と、自装置内に記憶されている前記複数のマスター鍵と受け取った前記所定数のマスター鍵で夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とをもとにして、データ暗号化鍵を求めるための手段と、求められた前記データ暗号化鍵を復号鍵として、前記記録媒体から読み出され前記ＣＰＵバスを介して与えられた暗号化されたデータを復号するための手段とを備えたことを特徴とする。
【００２０】
好ましくは、前記伝えるための手段および前記受け取るための手段は、それぞれ、前記計算機のＣＰＵバスを介した情報のやり取りにより協調して行われる所定の鍵共有手順により所定の一時鍵を外部から取得されることなく共有するための手段を備えるとともに、前記伝えるための手段は、生成された前記データ暗号化鍵を共有した前記一時鍵で暗号化して出力するための手段を備え、前記受け取るための手段は、与えられた前記一時鍵で復号されたデータ暗号化鍵を共有した前記一時鍵で復号するための手段を備えるようにしても良い。
【００２１】
好ましくは、前記データ暗号化鍵を求めるための手段は、前記受け取ったいずれかのマスター鍵で暗号化されたデータ暗号化鍵を自装置内に記録されているいずれかのマスター鍵を復号鍵として復号して得られる鍵候補と、この鍵候補を復号鍵として前記受け取ったデータ暗号化鍵自身で暗号化されたデータ暗号化鍵を復号して得られる鍵候補とが一致するものを探し求め、該一致が得られたときの鍵候補を求めるべきデータ暗号化鍵とするものである。
【００２２】
好ましくは、前記記録媒体から読み出された暗号化されたデータを復号して得られたもとのデータに所定の変換処理を施した後に、前記計算機のＣＰＵバスを介さずに外部に出力するための手段をさらに備えても良い。
【００２３】
本発明は、計算機のＣＰＵバスに接続された処理機能を有する外部記憶装置と暗号化ユニット装置を用いてＣＰＵバスを介さずに外部から入力されたデータを所定の記録媒体に記録する前に暗号化する暗号化方法であって、前記外部記憶装置にて、暗号化対象となるデータの識別情報を生成するとともに、該データの暗号化に用いるデータ暗号化鍵を生成し、該識別情報と、外部から秘匿した形で記憶された予め定められた複数のマスター鍵のうちの所定数のもので夫々暗号化したデータ暗号化鍵およびデータ暗号化鍵自身で暗号化したデータ暗号化鍵とを対応付けて自装置内の所定の記録領域に記録し、前記外部記憶装置から前記計算機のＣＰＵバスを介して前記暗号化ユニット装置に前記データ暗号化鍵を外部から取得されることなく安全に伝え、前記暗号化ユニット装置にて、受け取った前記データ暗号化鍵を用いて前記暗号化対象となるデータを暗号化することを特徴とする。
【００２４】
本発明は、計算機のＣＰＵバスに接続された処理機能を有する外部記憶装置と復号化ユニット装置を用いて所定の記録媒体に記録された暗号化されたデータを復号する復号化方法であって、前記外部記憶装置にて、暗号化の際に生成され自装置内の所定の記憶領域に、暗号化対象となったデータの識別情報と対応付けられて記録されている、外部から秘匿した形で自装置内に記憶された予め定められた複数のマスター鍵のうちの所定数のもので夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵のうちから、識別情報とこれに対応するデータ暗号化鍵で暗号化されたデータが記録された前記記録媒体から読み出され前記ＣＰＵバスを介して与えられた識別情報に対応するものを求め、前記外部記憶装置から前記計算機のＣＰＵバスを介して前記復号化ユニット装置に、求められた前記予め定められた複数のマスター鍵のうちの所定数のもので夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化したデータ暗号化鍵を外部から取得されることなく安全に伝え、前記復号化ユニット装置にて、外部から秘匿した形で自装置内に記憶されている予め定められた複数のマスター鍵と受け取った前記所定数のマスター鍵で夫々暗号化されたデータ暗号化鍵およびデータ暗号化鍵自身で暗号化されたデータ暗号化鍵とをもとにして、データ暗号化鍵を求め、求められた前記データ暗号化鍵を復号鍵として、前記記録媒体から読み出され前記ＣＰＵバスを介して与えられた暗号化されたデータを復号することを特徴とする。
【００２５】
本発明によれば、データを暗号化したデータ暗号化鍵を所定のマスター鍵とデータ暗号化鍵自身でそれぞれ暗号化した上で、データに付与した識別情報に対応して外部記憶装置内に記録しておくことにより、この外部記憶装置と上記の暗号化に用いたマスター鍵を持つ復号化ユニットとを用いなければ復号を行うことができない。したがって、ＣＰＵバスから直接に他の記録媒体に記録するなどして記録媒体の複製を作って頒布しても他の者は復号をすることができない。
【００２６】
また、本発明によれば、暗号化されたデータ暗号化鍵を、例えば共有化した一時鍵を用いてさらに暗号化するなどして、外部記憶装置と暗号化ユニット装置との間あるいは外部記憶装置と復号化ユニット装置との間でＣＰＵバスを介して共有するため、ＣＰＵバスからこれらの情報を記録することは無意味である
また、本発明によれば、データを暗号化するデータ暗号化鍵自体も、またデータ暗号化鍵を共有化するために用いる一時鍵も、毎回変わるため、第３者により暗号を解読することは極めて困難である。
【００２７】
したがって、本発明によれば、第３者による不正なコピーを防止することが可能となる。
【００２８】
また、本発明によれば、鍵情報の更新手続きが不要となる。
【００２９】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【００３０】
本実施形態では、データを暗号化して記録媒体に記録し、また記録媒体から暗号化データを読み出し復号するシステムを例にとって説明する。
【００３１】
本実施形態では、暗号化の操作をＥｙ（ｘ）と表す。ここで、ｘは暗号化の対象となるデータであり、ｙは暗号化に用いる暗号鍵である。また、復号化の操作をＤｙ（ｚ）と表す。ここで、ｚは復号化の対象となるデータであり、ｙは復号化に用いる復号鍵である。
【００３２】
本実施形態では、あるデータをまず復号化し、その後、復号化されたデータを暗号化してもとのデータに戻すことがある。これは、暗号の性質上、データの復号化に暗号化と同等の作用があることに基づいている。つまり、復号化したデータをもとに戻すためには復号化に用いた鍵がわからなければならず、鍵が判れば復号化したデータを暗号化することにより最初に復号化したデータが得られる。この操作は、暗号鍵をｘとしデータをｙとすれば、
Ｅｘ（Ｄｘ（ｙ））＝ｙ
で表される。
【００３３】
本実施形態に係るシステムは、パーソナル・コンピュータなどの計算機（以下、ＰＣ）内に備えられたＣＰＵ（図示せず）のＣＰＵバスに接続され、全体的な処理の流れの制御はプログラムで実現される。本実施形態では、データの入出力はＣＰＵバス以外の例えばＩ／Ｏポート等を通じて行われるが、ディスクドライブ装置（図示せず）とユニットとの間、ユニットとユニットとの間でのデータ転送には、ＣＰＵバスが用いられる。従って、ＣＰＵバス上を流れるデータには、暗号化（あるいは暗号化に先だって行う復号化）を施している。
【００３４】
本実施形態は、概略的には、一纏まりのデータを暗号化する際に、データの暗号化に用いるデータ暗号化鍵Ｓｋ１と識別情報ＩＤの対を生成し、ＩＤとＳｋ１を暗号化した形でＩＣカード等の内部にデータベースとして記録しておくとともに、記録媒体にはＩＤとＳｋ１で暗号化したデータを記録し、再生時には記録媒体から読み出したＩＤの情報をもとにデータベースからＳｋ１を求め、Ｓｋ１を復号鍵として記録媒体に記録された暗号化データを復号するものである。
【００３５】
第１の実施形態ではＣＰＵを介したＩＣカード等とユニットと間で鍵を共有する１つの例を、第２，３の実施形態ではＣＰＵを介したＩＣカード等とユニット間で鍵を共有する他の１つの例を示す。また、第３の実施形態は第２の実施形態の構成の一部を簡素化したものである。
【００３６】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るデータの暗号化に用いるシステムの構成を示すブロック図である。なお、図１の鍵共有回路３０ｂ，３０ｃの内部構成の一例を図２に示す。また、図３に本システムの暗号化の際の手順を、図４に鍵共有手順の一例を示す。
【００３７】
図５は、本発明の第１の実施形態に係るデータの復号に用いるシステムの構成を示すブロック図である。なお、図５の鍵共有回路３０ａ，３０ｃの内部構成の一例を図６に示す。また、図７に本システムの復号の際の手順を、図４に鍵共有手順の一例を示す。
【００３８】
図１に示すように、本実施形態に係るシステムは、処理機能を有する外部記憶装置（例えばＩＣカード；以下ではＩＣカードとする）１００と暗号化ユニット１２６と復号化ユニット２０３を備えている。また、ＩＣカード１００と暗号化ユニット１２６と復号化ユニット２０３は、ＰＣのＣＰＵバス１１６に接続されている。なお、ＩＣカード１００は使用時のみ接続し、それ以外では取り外して保管しておくのが望ましい。
【００３９】
また、ＣＰＵバス１１６にはディスクドライブ装置（図示せず）が接続されており、ディスクドライブ装置により記録媒体１２７への読み書きが行われる。
【００４０】
図１および図５に示すように、ＩＣカード１００は、暗号化に用いる部分として、データ暗号鍵生成回路１０３、ＩＤ生成回路１０５、暗号化回路１０７ａ，１０７ｂ、復号化回路１１０ｅを備え、復号に用いる部分として、暗号化回路２０９ｂ，２０９ｃを備え、暗号化と復号の両方に用いる部分としてＩＤ／鍵情報記憶回路２００、鍵共有回路３０ｃを備えている。上記構成部分は、独立した１つのＩＣチップとして形成され、ＩＣカード内に封止されているものとする。
【００４１】
暗号化ユニット１２６は、鍵共有回路３０ｂ、暗号化回路１１９ｂ，１１９ｅを備えている。暗号化ユニット１２６は、独立した１つのＩＣチップとして形成されるものとする。
【００４２】
復号化ユニット２０３は、鍵共有回路３０ａ、復号化回路２１２ｂ〜２１２ｆ、鍵判定回路（図示せず）を備えている。復号化ユニット２０３は、独立した１つのＩＣチップとして形成されるものとする。
【００４３】
ＩＣカード１００内には、後述する複数のマスター鍵Ｍｋｓ（図中１０２ｃ）が登録されている（作り込まれている）。
【００４４】
また、復号化ユニット２０３内には、ＩＣカード１００と同一の複数のマスター鍵Ｍｋｓ（図中１０２ｃ）が登録されている（作り込まれている）。
【００４５】
なお、万一、マスター鍵が破られたことが発覚した場合、それ以降、ＩＣカード１００には、その破られたものを除いてマスター鍵が作り込まれる。ただし、復号化ユニット２０３については、その破られたものを除いてマスター鍵が作り込まれても良いし、そうしなくても良い。また、破られたマスター鍵が作り込まれているＩＣカード１００は、その破られたものを除いてマスター鍵が作り込まれている新しいもので更新するのが望ましい。ただし、復号化ユニット２０３は、破られたマスター鍵が作り込まれているものをそのまま使用しても構わない。なお、全体の制御は図示しない制御部が司るものとする。制御部は例えばプログラムを当該ＰＣのＣＰＵで実行することにより実現することができる。
【００４６】
データＤａｔａは、暗号化して記録する対象となる入力データであり、例えばＰＣのＩ／Ｏポートから入力される映像、音声、テキストなどのマルチメディア・データである。
【００４７】
ＩＤは、本実施形態では、一纏まりのデータ毎（例えばタイトル毎）に与えられる識別番号である。なお、ＩＤは、ディスク毎に与えるようにしても良いし、ディスクの片面毎あるいは複数のディスクからなる組毎に与えるようにしても良いし、上記の一纏まりのデータをさらに細分化した部分毎（例えばチャプター毎あるいは曲毎など）に与えるようにしても良い。
【００４８】
Ｓｋ１は、データの暗号化および復号に用いるデータ暗号鍵（共通鍵暗号方式における共通鍵）であり、ＩＤと対で生成される。
【００４９】
Ｍｋｓ（ｓ＝１〜ｎ、ｎは２以上の整数）は、マスター鍵（共通鍵暗号方式における共通鍵）の鍵束である。マスター鍵は、例えばメーカ毎に所定個数づつが割り当てられる。この場合、マスター鍵は、メーカ間で重複のないように割り当てられる。ここでは、一例として、ｓ＝１，…１０（ｓ＝１０）とすると、Ｍｋ１，Ｍｋ２，…，Ｍｋ１０のマスター鍵が、ＩＣカード１００、復号化ユニット２０３のそれぞれに作り込まれる。
【００５０】
前述したように、マスター鍵の鍵束は、利用者が外部から取得できないように、ＩＣカード内に封止されたチップ、復号化ユニットのチップそれぞれにおいて、利用者が意図的に取り出せないようにチップ内部の秘匿された領域に記録されているものとする。
【００５１】
Ｓｋｔは、ＣＰＵバス１１６上に情報を流す際に、該情報を暗号化あるいは復号（暗号化に先だって行う復号）するための、その都度変化する一時鍵（共通鍵暗号方式における共通鍵）である。
【００５２】
ＩＤ生成回路１０５は、ＩＤ番号を生成する。ＩＤ番号は、１から順番に発番するようにしても良いが、好ましくはランダムに発番する方が良い。後者の場合、生成されるＩＤが全て異なるようにするために、例えばＩＤ生成回路１０５を乱数発生器を用いて構成する方法が考えられる。なお、なお、重複発番する可能性のある乱数等を用いる場合には、生成したＩＤが既発番のものと同じであるかどうかチェックし、重複して発番されたことが分かったならば、そのＩＤは破棄し、別のＩＤを生成し直すようにすると好ましい。
【００５３】
データ暗号鍵生成回路１０３は、ＩＤと対になるデータ暗号鍵Ｓｋ１を生成する。データ暗号鍵生成回路１０３は、例えば鍵長分の乱数発生器で構成しても良い。また、乱数を発生するにあたって、例えば時計（図示せず）からの時間情報を用いるようにしても良い。なお、全てのビットが０や１になる可能性のある乱数で鍵を生成する場合は、全てのビットが０や１になることがないようにチェック処理等をする必要がある。
【００５４】
ＩＤ／鍵情報記憶回路２００は、後述するようにＩＤとＥＭｋｉ（Ｓｋ１）とＥＳｋ１（Ｓｋ１）とを対応づけて記憶するためのものでる（ここで、ｉは１〜ｎのうちのいずれか）。
【００５５】
鍵共有回路３０ａ，３０ｂ，３０ｂは、少なくとも論理的に同一の構成を有し、後述する手順により相手側回路と相互に情報の受け渡しをして同一の一時鍵（バス鍵）Ｓｋｔを生成し共有する。本実施形態では暗号化の際に暗号化ユニット１２６とＩＣカード１００が鍵共有回路３０ｂと３０ｃを用いて同一の一時鍵Ｓｋｔを外部から知得されることなく安全に共有し、同様に復号の際に復号化ユニット２０３とＩＣカード１００が鍵共有回路３０ａと３０ｃを用いて同一の一時鍵Ｓｋｔを安全に共有する。鍵共有回路３０ａ，３０ｂ，３０ｂは外部からその内部の論理が解析されないようにＩＣチップ内に作り込むものとする。
【００５６】
記録媒体１２７は、暗号化されたＩ／Ｏポートからの入力データを記録するためのものであり、例えばハードディスク、ＭＯ、ＦＤ、１回書き込み可能なＣＤ、ＤＶＤ−ＲＡＭなどを用いることが考えられる。
【００５７】
なお、ディスクドライブ装置内には、記録の際に変調、誤り訂正回路を行い、再生の際に復調、誤り訂正回路を行う変復調／誤り訂正回路が内蔵される場合がある。
【００５８】
また、本実施形態では、復号化ユニット２０３にはディジタルデータＤａｔａをアナログデータに変換するＤ／Ａ変換回路が備えられ、復号化ユニット２０３からはアナログに変換されらデータが出力されるものとする。また、ディジタルデータＤａｔａが復号すべきものである場合にはこれを復号する復号回路をＤ／Ａ変換回路の前に設けるものとする。例えばディジタルデータＤａｔａがＭＰＥＧ方式で圧縮された画像データである場合に、ＭＰＥＧ復号回路を設けるものとする。また、種々の方式で圧縮等されたデータあるいは復号の必要ないデータのいずれも出力できるように、複数種類の復号回路を設け、これを適宜切替て使用し、あるいはこれらを使用しないように構成することも可能である。なお、復号化ユニット２０３からの出力は例えば画像としてディスプレイなどに表示される。
【００５９】
最初に、図１〜図４を参照しながら、暗号化の際の手順について説明する。なお、図４におけるＣＰＵはプログラムで実現した場合の制御部に相当し、ここではＣＰＵすなわち制御部が手順の仲介を行っていることを示している。なお、制御部の仲介なしにユニット間で直接情報のやり取りを行うようにしても構わない。
【００６０】
まず、ＩＣカード１００をＰＣのカードスロットなど（図示せず）に差し込んでおく。また、記録媒体１２７がリムーバブルな媒体である場合には、これをディスクドライブ装置（図示せず）にセットしておく。
【００６１】
ステップＳ１１では、ＩＣカード１００にて、ＩＤ生成回路１０５により入力データに対するＩＤが生成される。また、データ暗号鍵生成回路１０３により入力データを暗号化するための暗号鍵Ｓｋ１が生成される。
【００６２】
ステップＳ１２では、ＩＣカード１００にて、暗号化回路１０７ａによりＳｋ１自身でＳｋ１を暗号化して、ＥＳｋ１（Ｓｋ１）を得るとともに、暗号化回路１０７ｂにより、ｎ個のマスター鍵Ｍｋｓ（ｓ＝１，…，ｎ）のうちから例えばランダムあるいは順番に選んだ１つ（これをＭｋｉとする）でＳｋ１を暗号化して、ＥＭｋｉ（Ｓｋ１）を得る。そして、得られたＩＤとＥＳｋ１（Ｓｋ１）とＥＭｋｉ（Ｓｋ１）とを対応付けてＩＣカード１００内の記憶領域２００に記録しておく。また、生成されたＩＤを記録媒体１２７に記録する。
【００６３】
なお、ＩＤは、ＩＣカード１００からＣＰＵバスを介して直接、ディスクドライブ装置に与えても良いし、ＩＣカード１００からＣＰＵバスを介して暗号化ユニット１２６に与え、暗号化ユニット１２６からＣＰＵバスを介してディスクドライブ装置に与えるようにしても良い。
【００６４】
ステップＳ１３では、暗号化ユニット１２６とＩＣカード１００との間で鍵共有手順により一時鍵Ｓｋｔを共有する。
【００６５】
ここでは、「日経エレクトロニクス  Ｎｏ．６７６  ｐｐ．１３−１４  １９９６．１１．１８」に開示された技術を応用するものとする。
【００６６】
まず、本実施形態における鍵共有手順に用いる図２に示される鍵共有回路３０ｂ，３０ｃの構成について説明する。なお、ここでは図６に示す鍵共有回路３０ａについても併せて説明しておく。
【００６７】
鍵共有回路３０ａは、チャレンジ鍵生成回路３１ａ、認証鍵生成回路３３ａ、比較回路３５ａ、バス鍵生成回路３７ａを備えている。同様に、鍵共有回路３０ｂは、チャレンジ鍵生成回路３１ｂ、認証鍵生成回路３３ｂ、比較回路３５ｂ、バス鍵生成回路３７ｂを備えている。同様に、鍵共有回路３０ｃは、チャレンジ鍵生成回路３１ｃ、認証鍵生成回路３３ｃ、比較回路３５ｃ、バス鍵生成回路３７ｃを備えている。
【００６８】
チャレンジ鍵生成回路３１ａ，３１ｂ，３１ｃは、例えば乱数生成アルゴリズムを用いて、生成の都度変化するチャレンジ鍵を生成する。
【００６９】
認証鍵生成回路３３ａ，３３ｂ，３３ｃは、例えば一方向性関数を用いて、チャレンジ鍵から認証鍵を生成する。
【００７０】
比較回路３５ｂ，３５ｃは、２つの認証鍵が一致するか否か比較する。
【００７１】
バス鍵生成回路３７ａ，３７ｂ，３７ｃは、例えば一方向性関数を利用して、２つの認証鍵からバス鍵、すなわち一時鍵を生成する。
【００７２】
認証鍵生成回路３３ａと認証鍵生成回路３３ｂと認証鍵生成回路３３ｃは、例えば同一のアルゴリズムを用いることにより、同一のチャレンジ鍵に対して同一の認証鍵を生成するものとする。
【００７３】
バス鍵生成回路３７ａとバス鍵生成回路３７ｂとバス鍵生成回路３７ｃは、例えば同一のアルゴリズムを用いることにより、同一の２つの認証鍵から同一のバス鍵を生成するものとする。
【００７４】
次に、図２、図４を参照しながら、暗号化ユニット１２６とＩＣカード１００との間で行われる鍵共有手順について説明する。
【００７５】
まず、鍵共有手順のフェイズ１では、暗号化ユニット１２６にて、チャレンジ鍵生成回路３１ｂによりチャレンジ鍵（Ｃｈａｌｌｅｎｇｅ  Ｋｅｙ）１を生成し、これをＩＣカード１００にも伝える。次に、暗号化ユニット１２６の認証鍵生成回路３３ｂとＩＣカード１００の認証鍵生成回路３３ｃのそれぞれにて、チャレンジ鍵１をもとに認証鍵１（Ｋｅｙ１）を生成し、またＩＣカード１００から暗号化ユニット１２６へ生成した認証鍵１を転送する。そして、暗号化ユニット１２６にて、比較回路３５ｂにより、暗号化ユニット１２６とＩＣカード１００のそれぞれで生成された２つの認証鍵１を比較する。もし一致すれば次のフェイズ２に移行する。もし一致しなければ異常終了となる。
【００７６】
次に、フェイズ２では、ＩＣカード１００にて、チャレンジ鍵生成回路３１ｃによりチャレンジ鍵（Ｃｈａｌｌｅｎｇｅ  Ｋｅｙ）２を生成し、これを暗号化ユニット１２６にも伝える。次に、ＩＣカード１００の認証鍵生成回路３３ｃと暗号化ユニット１２６の認証鍵生成回路３３ｂのそれぞれにて、チャレンジ鍵２をもとに認証鍵２（Ｋｅｙ２）を生成し、また暗号化ユニット１２６からＩＣカード１００へ生成した認証鍵２を転送する。そして、ＩＣカード１００にて、比較回路３５ｃにより、ＩＣカード１００と暗号化ユニット１２６のそれぞれで生成された２つの認証鍵２を比較する。もし一致すれば次のフェイズ３に移行する。もし一致しなければ異常終了となる。
【００７７】
そして、フェイズ３では、暗号化ユニット１２６のバス鍵生成回路３７ｂとＩＣカード１００のバス鍵生成回路３７ｃのそれぞれにて、認証鍵１および認証鍵２をもとにバス鍵（ＢＵＳ  Ｋｅｙ）すなわち一時鍵Ｓｋｔを生成する。
【００７８】
これによって、暗号化ユニット１２６とＩＣカード１００との間で安全に一時鍵Ｓｋｔが共有化される。
【００７９】
ステップＳ１４では、ＩＣカード１００から暗号化ユニット１２６へ、共有化した一時鍵Ｓｋｔを用いてデータ暗号鍵Ｓｋ１を伝える。すなわち、まず、ＩＣカード１００にて、復号化回路１１０ｅによりＳｋｔでＳｋ１を復号して、ＤＳｋｔ（Ｓｋ１）を得る。次に、ＩＣカード１００から暗号化ユニット１２６へ、ＤＳｋｔ（Ｓｋ１）を送る。そして、暗号化ユニット１２６にて、暗号化回路１１９ｂにより、ＳｋｔでＤＳｋｔ（Ｓｋ１）を暗号化して、Ｓｋ１を得る。
【００８０】
ステップＳ１４では、暗号化ユニット１１８にて、暗号化回路１０５ｃにより、Ｓｋ１を暗号鍵として用いて入力データＤａｔａを暗号化して、ＥＳｋ１（Ｄａｔａ）を得る。
【００８１】
ステップＳ１５では、暗号化ユニット１２６にて、暗号化回路１１９ｅにより、Ｓｋ１を暗号鍵として用いて入力データＤａｔａを暗号化して、ＥＳｋ１（Ｄａｔａ）を得る。
【００８２】
ステップＳ１６では、ＥＳｋ１（Ｄａｔａ）を記録媒体１１７に記録する。
【００８３】
なお、１つの記録媒体に複数のＩＤが格納される場合、ＩＤとＥＳｋ１（Ｄａｔａ）とを対応付けて格納する。
【００８４】
次に、図４〜図７を参照しながら、復号の際の手順について説明する。
【００８５】
まず、ＩＣカード１００をＰＣのカードスロットなど（図示せず）に差し込んでおく。また、記録媒体１２７がリムーバブルな媒体である場合には、これをディスクドライブ装置（図示せず）にセットしておく。
【００８６】
ステップＳ２１では、ステップＳ１３と同様にして、復号化ユニット２０３とＩＣカード１００との間で鍵共有手順により一時鍵Ｓｋｔを共有する。
【００８７】
まず、鍵共有手順のフェイズ１では、復号化ユニット２０３にて、チャレンジ鍵生成回路３１ａによりチャレンジ鍵（Ｃｈａｌｌｅｎｇｅ  Ｋｅｙ）１を生成し、これをＩＣカード１００にも伝える。次に、復号化ユニット２０３の認証鍵生成回路３３ａとＩＣカード１００の認証鍵生成回路３３ｃのそれぞれにて、チャレンジ鍵１をもとに認証鍵１（Ｋｅｙ１）を生成し、またＩＣカード１００から復号化ユニット２０３へ生成した認証鍵１を転送する。そして、復号化ユニット２０３にて、比較回路３５ａにより、復号化ユニット２０３とＩＣカード１００のそれぞれで生成された２つの認証鍵１を比較する。もし一致すれば次のフェイズ２に移行する。もし一致しなければ異常終了となる。
【００８８】
次に、フェイズ２では、ＩＣカード１００にて、チャレンジ鍵生成回路３１ｃによりチャレンジ鍵（Ｃｈａｌｌｅｎｇｅ  Ｋｅｙ）２を生成し、これを復号化ユニット２０３にも伝える。次に、ＩＣカード１００の認証鍵生成回路３３ｃと復号化ユニット２０３の認証鍵生成回路３３ａのそれぞれにて、チャレンジ鍵２をもとに認証鍵２（Ｋｅｙ２）を生成し、また復号化ユニット２０３からＩＣカード１００へ生成した認証鍵２を転送する。そして、ＩＣカード１００にて、比較回路３５ｃにより、ＩＣカード１００と復号化ユニット２０３のそれぞれで生成された２つの認証鍵２を比較する。もし一致すれば次のフェイズ３に移行する。もし一致しなければ異常終了となる。
【００８９】
そして、フェイズ３では、復号化ユニット２０３のバス鍵生成回路３７ａとＩＣカード１００のバス鍵生成回路３７ｃのそれぞれにて、認証鍵１および認証鍵２をもとにバス鍵（ＢＵＳ  Ｋｅｙ）すなわち一時鍵Ｓｋｔを生成する。
【００９０】
これによって、復号化ユニット２０３とＩＣカード１００との間で安全に一時鍵Ｓｋｔが共有化される。
【００９１】
ステップＳ２２では、記録媒体１２７に記録されたＩＤをＩＣカード１００へ送る。
【００９２】
ステップＳ２３では、ＩＣカード１００にて、送られたＩＤをもとに、記録領域２００から、対応するＥＭｋｉ（Ｓｋ１）とＥＳｋ１（Ｓｋ１）を取り出す。ステップＳ２４では、復号化ユニット２０３へＥＭｋｉ（Ｓｋ１）とＥＳｋ１（Ｓｋ１）を送ることによって、データ暗号鍵Ｓｋ１を復号化ユニット２０３へ伝えるための処理が行われる。以下、この手順について詳しく説明する。
【００９３】
まず、暗号化回路２０９ｂにより、一時鍵ＳｋｔでＥＭｋｉ（Ｓｋ１）を暗号化して、ＥＳｋｔ（ＥＭｋｉ（Ｓｋ１））を得る。また、暗号化回路２０９ｂにより、一時鍵ＳｋｔでＥＳｋ１（Ｓｋ１）を暗号化して、ＥＳｋｔ（ＥＳｋ１（Ｓｋ１））を得る。そして、ＥＳｋｔ（ＥＭｋｉ（Ｓｋ１））とＥＳｋｔ（ＥＳｋ１（Ｓｋ１））をＣＰＵバス１１６を通して復号化ユニット２０３へ送る。
【００９４】
次に、復号化ユニット２０３にて、復号化回路２１２ｂにより、一時鍵ＳｋｔでＥＳｋｔ（ＥＭｋｉ（Ｓｋ１））を復号して、ＥＭｋｉ（Ｓｋ１）を得る。また、復号化回路２１２ｄにより、一時鍵ＳｋｔでＥＳｋｔ（ＥＳｋ１（Ｓｋ１））を復号して、ＥＳｋ１（Ｓｋ１）を得る。
【００９５】
次に、マスター鍵を１つ選ぶ（これをＭｋｐとする）。
【００９６】
選んだＭｋｐを復号鍵として、復号化回路２１２ｃにより、ＥＭｋｉ（Ｓｋ１）を復号し、
ＤＭｋｐ（ＥＭｋｉ（Ｓｋ１））＝Ｓｋａ
を得る。
【００９７】
次に、復号化回路２１２ｃの出力Ｓｋａを暗号鍵として、復号化回路２１２ｅにより、ＥＳｋ１（Ｓｋ１）を復号し、
ＤＳｋａ（ＥＳｋ１（Ｓｋ１））＝Ｓｋｂ
を得る。
【００９８】
次に、図示しない鍵判定回路により、ＳｋａとＳｋｂとが一致するか否か調べる。ここで、マスター鍵ＭｋｉがＭｋｐであったならば、
Ｓｋａ＝ＤＭｋｐ（ＥＭｋｉ（Ｓｋ１））＝Ｓｋ１
となり、従って、
Ｓｋｂ＝ＤＳｋａ（ＥＳｋ１（Ｓｋ１））＝ＤＳｋ１（ＥＳｋ１（Ｓｋ１））＝Ｓｋ１
となり、ゆえに、
Ｓｋａ＝Ｓｋｂ＝Ｓｋ１
となる。
【００９９】
つまり、鍵判定回路により、ＳｋａとＳｋｂとが一致することがわかった場合には、
Ｍｋｉ＝Ｍｋｐ、かつ、Ｓｋａ＝Ｓｋｂ＝Ｓｋ１であり、
この場合、復号化回路２１２ｅの出力（あるいは復号化回路２１２ｃの出力）は、復号化回路２１２ｆに伝えられる。
【０１００】
一方、鍵判定回路により、ＳｋａとＳｋｂとが一致しないことがわかった場合には、
Ｍｋｉ≠Ｍｋｐであり、ＩＣカード１００にてＳｋ１はこのＭｋｐでは暗号化されておらず、それ以外のマスター鍵で暗号化されたことが判る。
【０１０１】
以降は、ＳｋａとＳｋｂとが一致するまで、復号に用いるマスター鍵Ｍｋｐを変更して、上記の手順を繰り返す。
【０１０２】
以上のような手順を用いて、マスター鍵Ｍｋｉを復号化ユニット２０３側で特定することができるとともに、データ暗号鍵Ｓｋ１をＩＣカード１００から暗号化ユニット１２６へ安全に伝えることが可能となる。
【０１０３】
ステップＳ２５では、記録媒体１２７に記録されたＥＳｋ１（Ｄａｔａ）を復号化ユニット２０３へ送る。
【０１０４】
ステップＳ２７では、復号化ユニット２０３にて、復号化回路２１２ｆにより、Ｓｋ１を復号鍵としてＥＳｋ１（Ｄａｔａ）を復号し、もとの入力データを得る。
【０１０５】
なお、復号対象となるデータの暗号化に用いたＩＣカードと当該ＩＣカード１００とが相違するものである場合、ＩＣカード１００内に対応するＩＤとＥＭｋｉ（Ｓｋ１）とＥＳｋ１（Ｓｋ１）の組が登録されていないので、上記のステップＳ２４にてＭｋｉを特定することもＳｋ１を得ることもできず、結局、対象となる暗号化データを復号することはできない。言い換えると、本実施形態では、記録媒体１２７とこれに暗号化データを記録した際に用いたＩＣカードをセットで用いてのみ復号を行うことができる。
【０１０６】
本実施形態で示した手順は一例であり種々変形することが可能である。
【０１０７】
例えば、図３において、ステップＳ１３の一時鍵の共有は最初に行っても良い。また、ステップＳ１１，Ｓ１２のＩＤの生成、データベースへの登録、記録媒体への記録は、それぞれどのようなタイミングで行っても良い。また、ステップＳ１４はステップＳ１２より先に行っても良い。また、暗号化ユニット内にバッファがあればデータはどのようなタイミングで読み込んでも良い。また、すべてのデータを暗号化してから記録媒体に記録しても良いが、所定の単位ごとに暗号化と記録（あるいは読み込みと暗号化と記録）を繰り返し行っても良い。
【０１０８】
また、例えば図７において、ステップＳ２１の一時鍵の共有は最初に行わなくても良い。復号化ユニット内にバッファがあれば暗号化データはどのようなタイミングで読み込んでも良い。また、すべてのデータを復号してから出力しても良いが、所定の単位ごとに復号と出力（あるいは読み込みと復号と出力）を繰り返し行っても良い。
【０１０９】
上記の暗号化回路や復号化回路で用いる暗号化方式は、すべての部分で同じものを用いても良いし、対になる暗号化回路と復号化回路の組ごとに、用いる暗号化方式を適宜決めても良い（すべて異なるようにすることも可能である）。
【０１１０】
また、上記では暗号化回路や復号化回路は独立した回路として示したが、暗号化回路や復号化回路は暗号化方式が同じであればユニット内あるいはＩＣカード内において１つまたは複数のもので兼用するように構成しても構わない。例えば、暗号化ユニット１２６において暗号化回路１１９ｂと１１９ｅの暗号化方式が同じであれば、それらを１つの回路で構成しても良い。また、例えば、復号化ユニット２０３において復号化回路２１２ｂ〜２１２ｆの暗号化方式がすべて同じであれば、それらを１つの回路で構成しても良いし、あるいは３つの回路（例えば、復号化回路２１２ｂ，２１２ｄに共用する回路、復号化回路２１２ｃ，２１２ｅに共用する回路、復号化回路２１２ｆ）で構成しても良いし、その他にも種々の構成が可能である。また、復号化ユニット２０３において復号化回路２１２ｂ〜２１２ｅの暗号化方式が同じで復号化回路２１２ｆのみ相違するならば、例えば２つの回路で構成することも可能であり、あるいは３つあるいは４つの回路で構成することも可能である。また、ＩＣカード１００についても同様に、暗号化回路１０７ａ，１０７ｂ，２０９ｂ，２０９ｃの４つを適宜共通化することが可能である。
【０１１１】
ところで、ステップＳ１２では、ＩＣカード１００にて、暗号化回路１０７ａによりＳｋ１自身でＳｋ１を暗号化して、ＥＳｋ１（Ｓｋ１）を得るとともに、暗号化回路１０７ｂにより、ｎ個のマスター鍵Ｍｋｓ（ｓ＝１，…，ｎ）のうちから例えばランダムあるいは順番に選んだ１つ（これをＭｋｉとする）でＳｋ１を暗号化して、ＥＭｋｉ（Ｓｋ１）を求め、そして、ＩＤとＥＳｋ１（Ｓｋ１）とＥＭｋｉ（Ｓｋ１）とを対応付けてＩＣカード１００内の記憶領域２００に記録しておいた。
【０１１２】
ここで、万一、マスター鍵が破られたことが発覚し、その破られたものを除いてマスター鍵が作り込まれた復号化ユニット２０３に取り替えた場合、すでにＩＣカード１００に記憶されているＥＭｋｉ（Ｓｋ１）に対応するマスター鍵は復号化ユニット２０３内に存在しないので、対応する暗号化データを復号することができなくなる。
【０１１３】
そこで、上記構成を拡張して、ｎ個のマスター鍵のうちから例えばランダムあるいは順番に選んだｍ個（２≦ｍ≦ｎ）のマスター鍵で夫々Ｓｋ１を暗号化して、ｍ個のＥＭｋｉ（Ｓｋ１）を求め、ＩＤとＥＳｋ１（Ｓｋ１）とｍ個のＥＭｋｉ（Ｓｋ１）をとを対応付けてＩＣカード１００内の記憶領域２００に記録しておいても良い。
【０１１４】
この場合、ステップＳ２４において、復号化ユニット２０３にて、ｍ個のＥＭｋｉ（Ｓｋ１）のうちの１つを選択し、ステップＳ２４の処理を行い、復号化ユニット２０３内のすべてのマスター鍵を用いても鍵判定回路によりＳｋａとＳｋｂとの一致が得られず、マスター鍵Ｍｋｉが特定できなかったならば、ｍ個のＥＭｋｉ（Ｓｋ１）のうちの他の１つを選択し、ステップＳ２４の処理を行う。そして、上記手順を、鍵判定回路によりＳｋａとＳｋｂとの一致が得られるまで繰り返す。
【０１１５】
このようにすれば、ＩＣカード１００内のｍ個のＥＭｋｉ（Ｓｋ１）のうちのいずれかに対応するマスター鍵が破られ、その破られたものを除いてマスター鍵が作り込まれた復号化ユニット２０３に取り替えた場合でも、ｍ個のＥＭｋｉ（Ｓｋ１）のすべてに対応するマスター鍵が破られない限り、対応する暗号化データを復号することができるようになる。
【０１１６】
本実施形態では、暗号化ユニットはＰＣ内に例えば暗号化ボードとして組み込まれＣＰＵバスに接続されるものであったが、暗号化ユニットはディスクドライブ装置内に内蔵されることもある。
【０１１７】
（第２の実施形態）
図８は、本発明の第２の実施形態に係るデータの暗号化に用いるシステムの構成を示すブロック図である。なお、図８の３０５の部分および３０３の部分の詳細と一時鍵生成回路１１７を図９に示す。また、この場合の動作の一例を図１０のフローチャートに示す。
【０１１８】
図１１は、本発明の第２の実施形態に係るデータの復号に用いるシステムの構成を示すブロック図である。なお、図１１の２１５の部分および２１３の部分の詳細と一時鍵生成回路２１０を図１２に示す。また、この場合の動作の一例を図１３のフローチャートに示す。
【０１１９】
図８に示すように、本実施形態に係るシステムは、ＩＣカード１００と暗号化ユニット１２６と復号化ユニット２０３を備えている。また、ＩＣカード１００と暗号化ユニット１２６と復号化ユニット２０３は、ＰＣのＣＰＵバス１１６に接続されている。なお、ＩＣカード１００は使用時のみ接続し、それ以外では取り外して保管しておくのが望ましい。
【０１２０】
また、ＣＰＵバス１１６にはディスクドライブ装置（図示せず）が接続されており、ディスクドライブ装置により記録媒体１２７への読み書きが行われる。
【０１２１】
図８および図９に示すように、ＩＣカード１００は、暗号化に用いる部分として、データ暗号鍵生成回路１０３、ＩＤ生成回路１０５、暗号化回路１０７ａ，１０７ｂ、復号化回路１１０ａ〜１１０ｆ、一時鍵判定回路３１３を備え、復号に用いる部分として、暗号化回路２０９ａ〜２０９ｄ、一時鍵判定回路２１１を備え、暗号化と復号の両方に用いる部分としてＩＤ／鍵情報記憶回路２００を備えている。上記構成部分は、独立した１つのＩＣチップとして形成され、ＩＣカード内に封止されているものとする。
【０１２２】
なお、上記では一時鍵判定回路２１１と一時鍵判定回路３１３は異なる回路としてあるが、その代わりに一時鍵判定回路２１１と一時鍵判定回路３１３を１つの回路で兼用しても構わない。
【０１２３】
暗号化ユニット１２６は、一時鍵生成回路１１７、暗号化回路１１９ａ〜１１９ｇ、鍵判定回路（図示せず）を備えている。暗号化ユニット１２６は、独立した１つのＩＣチップとして形成されるものとする。
【０１２４】
復号化ユニット２０３は、一時鍵生成回路２１０、復号化回路２１２ａ〜２１２ｇ、鍵判定回路（図示せず）を備えている。復号化ユニット２０３は、独立した１つのＩＣチップとして形成されるものとする。
【０１２５】
復号化ユニット２０３内には、後述する複数のマスター鍵Ｍｋｓ（図中１０２ａ）が登録されている（作り込まれている）。
【０１２６】
また、暗号化ユニット１２６内には、復号化ユニット１２６と同一の複数のマスター鍵Ｍｋｓ（図中１０２ｂ）が登録されている（作り込まれている）。
【０１２７】
同様に、ＩＣカード１００内には、復号化ユニット１２６と同一の複数のマスター鍵Ｍｋｓ（図中１０２ｃ）が登録されている（作り込まれている）。
【０１２８】
なお、万一、マスター鍵が破られたことが発覚した場合、それ以降、ＩＣカード１００、暗号化ユニット１２６、復号化ユニット２０３には、その破られたものを除いてマスター鍵が作り込まれる。また、破られたマスター鍵が作り込まれているＩＣカード１００、暗号化ユニット１２６、復号化ユニット２０３は、その破られたものを除いてマスター鍵が作り込まれている新しいものに差し替えるのが望ましい。
【０１２９】
なお、全体の制御は図示しない制御部が司るものとする。制御部は例えばプログラムを当該ＰＣのＣＰＵで実行することにより実現することができる。
【０１３０】
データＤａｔａは、暗号化して記録する対象となる入力データであり、例えばＰＣのＩ／Ｏポートから入力される映像、音声、テキストなどのマルチメディア・データである。
【０１３１】
ＩＤは、本実施形態では、一纏まりのデータ毎（例えばタイトル毎）に与えられる識別番号である。なお、ＩＤは、ディスク毎に与えるようにしても良いし、ディスクの片面毎あるいは複数のディスクからなる組毎に与えるようにしても良いし、上記の一纏まりのデータをさらに細分化した部分毎（例えばチャプター毎あるいは曲毎など）に与えるようにしても良い。
【０１３２】
Ｓｋ１は、データの暗号化および復号に用いるデータ暗号鍵（共通鍵暗号方式における共通鍵）であり、ＩＤと対で生成される。
【０１３３】
Ｍｋｓ（ｓ＝１〜ｎ、ｎは２以上の整数）は、マスター鍵（共通鍵暗号方式における共通鍵）の鍵束である。マスター鍵は、例えばメーカ毎に所定個数づつが割り当てられる。この場合、マスター鍵は、メーカ間で重複のないように割り当てられる。ここでは、一例として、ｓ＝１，…１０（ｓ＝１０）とすると、Ｍｋ１，Ｍｋ２，…，Ｍｋ１０のマスター鍵が、ＩＣカード１００、暗号化ユニット１２６、復号化ユニット２０３のそれぞれに作り込まれる。
【０１３４】
前述したように、マスター鍵の鍵束は、利用者が外部から取得できないように、ＩＣカード内に封止されたチップ、暗号化ユニットのチップ、復号化ユニットのチップそれぞれにおいて、利用者が意図的に取り出せないようにチップ内部の秘匿された領域に記録されているものとする。
【０１３５】
Ｓｋｔは、ＣＰＵバス１１６上に情報を流す際に、該情報を暗号化あるいは復号（暗号化に先だって行う復号）するための、その都度変化する一時鍵（共通鍵暗号方式における共通鍵）である。
【０１３６】
ＩＤ生成回路１０５は、ＩＤ番号を生成する。ＩＤ番号は、１から順番に発番するようにしても良いが、好ましくはランダムに発番する方が良い。後者の場合、生成されるＩＤが全て異なるようにするために、例えばＩＤ生成回路１０５を乱数発生器を用いて構成する方法が考えられる。なお、重複発番する可能性のある乱数等を用いる場合には、生成したＩＤが既発番のものと同じであるかどうかチェックし、重複して発番されたことが分かったならば、そのＩＤは破棄し、別のＩＤを生成し直すようにすると好ましい。
【０１３７】
データ暗号鍵生成回路１０３は、ＩＤと対になるデータ暗号鍵Ｓｋ１を生成する。データ暗号鍵生成回路１０３は、例えば鍵長分の乱数発生器で構成しても良い。また、乱数を発生するにあたって、例えば時計（図示せず）からの時間情報を用いるようにしても良い。なお、全てのビットが０や１になる可能性のある乱数で鍵を生成する場合は、全てのビットが０や１になることがないようにチェック処理等をする必要がある。
【０１３８】
ＩＤ／鍵情報記憶回路２００は、後述するようにＩＤとＥＭｋｉ（Ｓｋ１）とＥＳｋ１（Ｓｋ１）とを対応づけて記憶するためのものでる（ここで、ｉは１〜ｎのうちのいずれか）。
【０１３９】
一時鍵生成回路１１７，２１０は、それぞれ一時鍵Ｓｋｔを生成するためのものであり、その都度生成する。一時鍵生成回路１１７，２１０夫々は、例えば鍵長分の乱数発生器で構成する方法が考えられる。また、乱数を発生するにあたって、例えば時計（図示せず）からの時間情報を用いるようにしても良い。なお、全てのビットが０や１になる可能性のある乱数で鍵を生成する場合は、全てのビットが０や１になることがないようにチェック処理等をする必要がある。
【０１４０】
記録媒体１２７は、暗号化されたＩ／Ｏポートからの入力データを記録するためのものであり、例えばハードディスク、ＭＯ、ＦＤ、１回書き込み可能なＣＤ、ＤＶＤ−ＲＡＭなどを用いることが考えられる。
【０１４１】
なお、ディスクドライブ装置内には、記録の際に変調、誤り訂正回路を行い、再生の際に復調、誤り訂正回路を行う変復調／誤り訂正回路が内蔵される場合がある。
【０１４２】
また、本実施形態では、復号化ユニット２０３にはディジタルデータＤａｔａをアナログデータに変換するＤ／Ａ変換回路が備えられ、復号化ユニット２０３からはアナログに変換されらデータが出力されるものとする。また、ディジタルデータＤａｔａが復号すべきものである場合にはこれを復号する復号回路をＤ／Ａ変換回路の前に設けるものとする。例えばディジタルデータＤａｔａがＭＰＥＧ方式で圧縮された画像データである場合に、ＭＰＥＧ復号回路を設けるものとする。また、種々の方式で圧縮等されたデータあるいは復号の必要ないデータのいずれも出力できるように、複数種類の復号回路を設け、これを適宜切替て使用し、あるいはこれらを使用しないように構成することも可能である。なお、復号化ユニット２０３からの出力は例えば画像としてディスプレイなどに表示される。
【０１４３】
最初に、図８〜図１０を参照しながら、暗号化の際の手順について説明する。まず、ＩＣカード１００をＰＣのカードスロットなど（図示せず）に差し込んでおく。また、記録媒体１２７がリムーバブルな媒体である場合には、これをディスクドライブ装置（図示せず）にセットしておく。
【０１４４】
ステップＳ３１では、ＩＣカード１００にて、ＩＤ生成回路１０５により入力データに対するＩＤが生成される。また、データ暗号鍵生成回路１０３により入力データを暗号化するための暗号鍵Ｓｋ１が生成される。
【０１４５】
ステップＳ３２では、ＩＣカード１００にて、暗号化回路１０７ａによりＳｋ１自身でＳｋ１を暗号化して、ＥＳｋ１（Ｓｋ１）を得るとともに、暗号化回路１０７ｂにより、ｎ個のマスター鍵Ｍｋｓ（ｓ＝１，…，ｎ）のうちから例えばランダムあるいは順番に選んだ１つ（これをＭｋｉとする）でＳｋ１を暗号化して、ＥＭｋｉ（Ｓｋ１）を得る。そして、得られたＩＤとＥＳｋ１（Ｓｋ１）とＥＭｋｉ（Ｓｋ１）とを対応付けてＩＣカード１００内の記憶領域２００に記録しておく。また、生成されたＩＤを記録媒体１２７に記録する。
【０１４６】
なお、ＩＤは、ＩＣカード１００からＣＰＵバスを介して直接、ディスクドライブ装置に与えても良いし、ＩＣカード１００からＣＰＵバスを介して暗号化ユニット１２６に与え、暗号化ユニット１２６からＣＰＵバスを介してディスクドライブ装置に与えるようにしても良い。
【０１４７】
ステップＳ３３では、ＩＣカード１００内で生成したデータ暗号鍵Ｓｋ１をＣＰＵバス１１６を介して復号化ユニット１２６へ送るために用いる一時鍵Ｓｋｔを、暗号化ユニット１２６側にて一時鍵生成回路１１７により生成する。
【０１４８】
ステップＳ３４では、以下に示すような手順を用いて、暗号化ユニット１２６からＩＣカード１００へ、生成された一時鍵Ｓｋｔを伝える。
【０１４９】
Ｓｋｔのプレインデータを取得されないように、Ｓｋｔは、暗号化ユニット１２６内に記録されたマスター鍵Ｍｋｓ（ｓ＝１，…，ｎ）のうちのいずれか（これをＭｋｈとする）で暗号化され、ＥＭｋｈ（Ｓｋｔ）としてＣＰＵバス１１６を通してＩＣカード１００へ送られる。
【０１５０】
ここで、もしマスター鍵が１つだけ存在するのであれば（これをＭｋ０とする）、単に暗号化ユニット１２６にてＭｋ０でＳｋｔを暗号化し、このＥＭｋ０（Ｓｋｔ）をＩＣカード１００へ送り、ＩＣカード１００にてＭｋ０でＥＭｋ０（Ｓｋｔ）を復号することにより、Ｓｋｔを取り出すことができるが、本実施形態では、複数のマスター鍵からなる鍵束のうちの使用したマスター鍵Ｍｋｈを直接的に指し示す識別情報は暗号化ユニット１２６からＩＣカード１００へ伝えないようにし、その代わりに、上記マスター鍵Ｍｋｈを特定可能とする情報を暗号化ユニット１２６からＩＣカード１００へ送り、ＩＣカード１００にて、Ｓｋｔの暗号化に使用されたマスター鍵Ｍｋｈがｎ個のマスター鍵のうちのいずれであるかを特定するとともに、このマスター鍵の特定を通じてＳｋｔを得る。
【０１５１】
以下、図９、図１０を参照しながら、ステップＳ３４のより詳しい手順について説明する。
【０１５２】
まず、暗号化ユニット１２６にて、暗号化回路３０７ａにより、ｎ個のマスター鍵Ｍｋｓ（ｉ＝１，…，ｎ）のうちから例えばランダムあるいは順番に選んだ１つ（これをＭｋｈとする）で一時鍵Ｓｋｔを暗号化して、ＥＭｋｈ（Ｓｋｔ）を得る。また、暗号化回路１１９ｇにより、一時鍵Ｓｋｔ自身を暗号化鍵として用いてＳｋｔを暗号化して、ＥＳｋｔ（Ｓｋｔ）を得る。そして、ＥＭｋｈ（Ｓｋｔ）とＥＳｋｔ（Ｓｋｔ）を、ＣＰＵバス１０６を通してＩＣカード１００へ送る。
【０１５３】
次に、ＩＣカード１００にて、まずマスター鍵を１つ選ぶ（これをＭｋｐとする）。
【０１５４】
選んだＭｋｐを復号鍵として、復号化回路１１０ｃにより、ＥＭｋｈ（Ｓｋｔ）を復号し、
ＤＭｋｐ（ＥＭｋｈ（Ｓｋｔ））＝Ｓｋａ
を得る。
【０１５５】
次に、復号化回路１１０ｃの出力Ｓｋａを復号鍵として、復号化回路１１０ｃにより、ＥＳｋｔ（Ｓｋｔ）を復号し、
ＤＳｋａ（ＥＳｋｔ（Ｓｋｔ））＝Ｓｋｂ
を得る。
【０１５６】
次に、一時鍵判定回路３１３により、ＳｋａとＳｋｂとが一致するか否か調べる。ここで、暗号化ユニット１２６にてＳｋｔを暗号化したマスター鍵ＭｋｈがＭｋｐであったならば、
Ｓｋａ＝ＤＭｋｐ（ＥＭｋｉ（Ｓｋｔ））＝Ｓｋｔ
となり、従って、
Ｓｋｂ＝ＤＳｋａ（ＥＳｋｔ（Ｓｋｔ））＝ＤＳｋｔ（ＥＳｋｔ（Ｓｋｔ））＝Ｓｋｔ
となり、ゆえに、
Ｓｋａ＝Ｓｋｂ＝Ｓｋｔ
となる。
【０１５７】
つまり、一時鍵判定回路３１３により、ＳｋａとＳｋｂとが一致することがわかった場合には、
Ｍｋｈ＝Ｍｋｐ、かつ、Ｓｋａ＝Ｓｋｂ＝Ｓｋｔであり、
この場合、一時鍵判定回路３１３はＳｋａ＝Ｓｋｂ＝Ｓｋｔを出力する。
【０１５８】
一方、一時鍵判定回路３１３により、ＳｋａとＳｋｂとが一致しないことがわかった場合には、
Ｍｋｈ≠Ｍｋｐであり、暗号化ユニット１２６にてＳｋｔはこのＭｋｐでは暗号化されておらず、それ以外のマスター鍵で暗号化されたことが判る。この場合、一時鍵判定回路３１３は出力をしない（あるいは一時鍵判定回路３１３の出力が復号化回路１１０ｄ，１１０ｅには伝えられない）。
【０１５９】
以降は、ＳｋａとＳｋｂとが一致するまで、復号に用いるマスター鍵Ｍｋｐを変更して、上記の手順を繰り返す。例えば、最初にＭｋｐとしてＭｋ１を用いて上記の手順を行ってＳｋａとＳｋｂとが一致しなかった場合に、次にＭｋ２へと更新して再び上記の手順を繰り返すのである。
【０１６０】
以上のような手順を用いて、暗号化ユニット１２６にてどのマスター鍵を用いたのかをＩＣカード１００側で特定することができるとともに、暗号化ユニット１２６とＩＣカード１００との間で一時鍵Ｓｋｔを安全に共有することが可能となる。
【０１６１】
ステップＳ３５では、上記のようにして共有化した一時鍵Ｓｋｔを用いて、ＩＣカード１００内で生成したデータ暗号鍵Ｓｋ１をＣＰＵバス１１６を介して暗号化ユニット１２６へ伝える。
【０１６２】
なおここでは、ＩＣカード１００にてデータ暗号鍵Ｓｋ１を一時鍵Ｓｋｔで復号化し、ＤＳｋｔ（Ｓｋ１）をＩＣカード１００から暗号化ユニット１２６に送り、暗号化ユニット１２６にてＤＳｋｔ（Ｓｋ１）をＳｋｔで暗号化して、Ｓｋ１を得るのではなく、上記のＳｋｔを共有した手順を併用する。
【０１６３】
まず、ＩＣカード１００にて、復号化回路１１０ｂにより、ｎ個のマスター鍵Ｍｋｓ（ｓ＝１，…，ｎ）のうちから例えばランダムあるいは順番に選んだ１つ（これをＭｋｊとする）でデータ暗号鍵Ｓｋ１を暗号化して、ＤＭｋｊ（Ｓｋ１）を得る。また、復号化回路１１０ａにより、Ｓｋ１自身を復号鍵として用いてＳｋ１を復号して、ＤＳｋ１（Ｓｋ１）を得る。
【０１６４】
次に、復号化回路１１０ｅにより、一時鍵ＳｋｔでＤＭｋｊ（Ｓｋ１）を復号して、ＤＳｋｔ（ＤＭｋｊ（Ｓｋ１））を得る。また、復号化回路１１０ｄにより、一時鍵ＳｋｔでＤＳｋ１（Ｓｋ１）を復号して、ＤＳｋｔ（ＤＳｋ１（Ｓｋ１））を得る。そして、ＤＳｋｔ（ＤＭｋｊ（Ｓｋ１））とＤＳｋｔ（ＤＳｋ１（Ｓｋ１））をＣＰＵバス１１６を通して暗号化ユニット１２６へ送る。
【０１６５】
次に、暗号化ユニット１２６にて、暗号化回路１１９ｂにより、一時鍵ＳｋｔでＤＳｋｔ（ＤＭｋｊ（Ｓｋ１））を暗号化して、ＤＭｋｊ（Ｓｋ１）を得る。また、暗号化回路１１９ａにより、一時鍵ＳｋｔでＤＳｋｔ（ＤＳｋ１（Ｓｋ１））を暗号化して、ＤＳｋ１（Ｓｋ１）を得る。
【０１６６】
ここで、ＩＣカード１００にて用いられたマスター鍵が、ｎ個のうちのどのマスター鍵であったかは、暗号化ユニット１２６側ではわからない。そこで、前述したＩＣカード１００にてマスター鍵の特定を通じて一時鍵Ｓｋｔを求める手順と同じ手順により、暗号化ユニット１２６にてマスター鍵の特定を通じてデータ暗号鍵Ｓｋ１を求める。
【０１６７】
まず、暗号化ユニット１２６にて、マスター鍵を１つ選ぶ（これをＭｋｐとする）。
【０１６８】
選んだＭｋｐを暗号鍵として、暗号化回路１１９ｃにより、ＤＭｋｊ（Ｓｋ１）を暗号化し、
ＥＭｋｐ（ＤＭｋｊ（Ｓｋ１））＝Ｓｋａ
を得る。
【０１６９】
次に、暗号化回路１１９ｃの出力Ｓｋａを暗号鍵として、暗号化回路１１９ｄにより、ＤＳｋ１（Ｓｋ１）を暗号化し、
ＥＳｋａ（ＤＳｋ１（Ｓｋ１））＝Ｓｋｂ
を得る。
【０１７０】
次に、図示しない鍵判定回路により、ＳｋａとＳｋｂとが一致するか否か調べる。ここで、ＩＣカード１００にてＳｋ１を復号したマスター鍵ＭｋｊがＭｋｐであったならば、
Ｓｋａ＝ＥＭｋｐ（ＤＭｋｊ（Ｓｋ１））＝Ｓｋ１
となり、従って、
Ｓｋｂ＝ＥＳｋａ（ＤＳｋ１（Ｓｋ１））＝ＥＳｋ１（ＤＳｋ１（Ｓｋ１））＝Ｓｋ１
となり、ゆえに、
Ｓｋａ＝Ｓｋｂ＝Ｓｋ１
となる。
【０１７１】
つまり、鍵判定回路により、ＳｋａとＳｋｂとが一致することがわかった場合には、
Ｍｋｊ＝Ｍｋｐ、かつ、Ｓｋａ＝Ｓｋｂ＝Ｓｋ１であり、
この場合、暗号化回路１１９ｄの出力（あるいは暗号化回路１１９ｃの出力）は、暗号化回路１１９ｅに伝えられる。
【０１７２】
一方、鍵判定回路により、ＳｋａとＳｋｂとが一致しないことがわかった場合には、
Ｍｋｊ≠Ｍｋｐであり、ＩＣカード１００にてＳｋ１はこのＭｋｐでは暗号化されておらず、それ以外のマスター鍵で復号されたことが判る。
【０１７３】
以降は、ＳｋａとＳｋｂとが一致するまで、暗号化に用いるマスター鍵Ｍｋｐを変更して、上記の手順を繰り返す。
【０１７４】
以上のような手順を用いて、ＩＣカード１００にてどのマスター鍵を用いたのかを暗号化ユニット１２６側で特定することができるとともに、ＩＣカード１００内にて生成されたデータ暗号鍵Ｓｋ１をＩＣカード１００から暗号化ユニット１２６へ安全に伝えることが可能となる。
【０１７５】
ステップＳ３６では、暗号化ユニット１２６にて、暗号化回路１１９ｅにより、Ｓｋ１を暗号鍵として用いて入力データＤａｔａを暗号化して、ＥＳｋ１（Ｄａｔａ）を得る。
【０１７６】
ステップＳ３７では、ＥＳｋ１（Ｄａｔａ）を記録媒体１２７に記録する。
【０１７７】
なお、１つの記録媒体に複数のＩＤが格納される場合、ＩＤとＥＳｋ１（Ｄａｔａ）とを対応付けて格納する。
【０１７８】
次に、図１１〜図１３を参照しながら、復号の際の手順について説明する。
【０１７９】
。
【０１８０】
まず、ＩＣカード１００をＰＣのカードスロットなど（図示せず）に差し込んでおく。また、記録媒体１２７がリムーバブルな媒体である場合には、これをディスクドライブ装置（図示せず）にセットしておく。
【０１８１】
ステップＳ４１では、ＩＣカード１００内の記憶領域２００に格納された暗号化されたデータ暗号鍵Ｓｋ１をＣＰＵバス１１６を介して復号化ユニット２０３へ送るために用いる一時鍵Ｓｋｔを、復号化ユニット２０３側にて一時鍵生成回路２１０により生成する。
【０１８２】
ステップＳ４２では、先のステップＳ３４にて用いた手順と同様の手順を利用して、復号化ユニット２０３からＩＣカード１００へ、生成された一時鍵Ｓｋｔを伝える。
【０１８３】
以下、図１２、図１３を参照しながら、ステップＳ４２のより詳しい手順について説明する。
【０１８４】
まず、復号化ユニット２０３にて、復号化回路２１２ａにより、ｎ個のマスター鍵Ｍｋｓ（ｓ＝１，…，ｎ）のうちのいずれか（これをＭｋｈとする）で一時鍵Ｓｋｔを復号して、ＤＭｋｈ（Ｓｋｔ）を得る。また、復号化回路２１２ｇにより、一時鍵Ｓｋｔ自身を暗号化鍵として用いてＳｋｔを暗号化して、ＤＳｋｔ（Ｓｋｔ）を得る。そして、ＤＭｋｈ（Ｓｋｔ）とＤＳｋｔ（Ｓｋｔ）を、ＣＰＵバス１０６を通してＩＣカード１００へ送る。
【０１８５】
次に、ＩＣカード１００にて、まずマスター鍵を１つ選ぶ（これをＭｋｐとする）。
【０１８６】
選んだＭｋｐを暗号鍵として、暗号化回路２０９ｃにより、ＤＭｋｈ（Ｓｋｔ）を暗号化し、
ＥＭｋｐ（ＤＭｋｈ（Ｓｋｔ））＝Ｓｋａ
を得る。
【０１８７】
次に、暗号化回路２０９ｃの出力Ｓｋａを復号鍵として、暗号化回路２０９ｄにより、ＤＳｋｔ（Ｓｋｔ）を暗号化し、
ＥＳｋａ（ＤＳｋｔ（Ｓｋｔ））＝Ｓｋｂ
を得る。
【０１８８】
次に、一時鍵判定回路２１１により、ＳｋａとＳｋｂとが一致するか否か調べる。ここで、暗号化ユニット１２６にてＳｋｔを暗号化したマスター鍵ＭｋｈがＭｋｐであったならば、
Ｓｋａ＝ＥＭｋｐ（ＤＭｋｈ（Ｓｋｔ））＝Ｓｋｔ
となり、従って、
Ｓｋｂ＝ＥＳｋａ（ＤＳｋｔ（Ｓｋｔ））＝ＥＳｋｔ（ＤＳｋｔ（Ｓｋｔ））＝Ｓｋｔ
となり、ゆえに、
Ｓｋａ＝Ｓｋｂ＝Ｓｋｔ
となる。
【０１８９】
つまり、一時鍵判定回路２１１により、ＳｋａとＳｋｂとが一致することがわかった場合には、
Ｍｋｈ＝Ｍｋｐ、かつ、Ｓｋａ＝Ｓｋｂ＝Ｓｋｔであり、
この場合、一時鍵判定回路２１１はＳｋａ＝Ｓｋｂ＝Ｓｋｔを出力する。
【０１９０】
一方、一時鍵判定回路２１１により、ＳｋａとＳｋｂとが一致しないことがわかった場合には、
Ｍｋｈ≠Ｍｋｐであり、復号化ユニット２０３にてＳｋｔはこのＭｋｐでは暗号化されておらず、それ以外のマスター鍵で復号されたことが判る。この場合、一時鍵判定回路２１１は出力をしない（あるいは一時鍵判定回路２１１の出力が復号化回路２０９ｂ，２０９ｃには伝えられない）。
【０１９１】
以降は、ＳｋａとＳｋｂとが一致するまで、暗号化に用いるマスター鍵Ｍｋｐを変更して、上記の手順を繰り返す。
【０１９２】
以上のような手順を用いて、復号化ユニット２０３にてどのマスター鍵を用いたのかをＩＣカード１００側で特定することができるとともに、復号化ユニット２０３とＩＣカード１００との間で一時鍵Ｓｋｔを安全に共有することが可能となる。
【０１９３】
ステップＳ４３では、記録媒体１２７に記録されたＩＤをＩＣカード２００へ送る。
【０１９４】
ステップＳ４４では、ＩＣカード１００にて、送られたＩＤをもとに、記録領域２００から、対応するＥＭｋｉ（Ｓｋ１）とＥＳｋ１（Ｓｋ１）を取り出す。ステップＳ４５では、復号化ユニット１２６へＥＭｋｉ（Ｓｋ１）とＥＳｋ１（Ｓｋ１）を送ることによって、データ暗号鍵Ｓｋ１を復号化ユニット１２６へ伝えるための処理が行われる。
【０１９５】
ここでは、ステップＳ３５にて用いた手順と同様の手順を利用して、ＩＣカード１００から復号化ユニット２０３へＳｋ１を伝える。
【０１９６】
まず、暗号化回路２０９ｂにより、一時鍵ＳｋｔでＥＭｋｉ（Ｓｋ１）を暗号化して、ＥＳｋｔ（ＥＭｋｉ（Ｓｋ１））を得る。また、暗号化回路２０９ｂにより、一時鍵ＳｋｔでＥＳｋ１（Ｓｋ１）を暗号化して、ＥＳｋｔ（ＥＳｋ１（Ｓｋ１））を得る。そして、ＥＳｋｔ（ＥＭｋｉ（Ｓｋ１））とＥＳｋｔ（ＥＳｋ１（Ｓｋ１））をＣＰＵバス１１６を通して復号化ユニット２０３へ送る。
【０１９７】
次に、復号化ユニット２０３にて、復号化回路２１２ｂにより、一時鍵ＳｋｔでＥＳｋｔ（ＥＭｋｉ（Ｓｋ１））を復号して、ＥＭｋｉ（Ｓｋ１）を得る。また、復号化回路２１２ｄにより、一時鍵ＳｋｔでＥＳｋｔ（ＥＳｋ１（Ｓｋ１））を復号して、ＥＳｋ１（Ｓｋ１）を得る。
【０１９８】
次に、マスター鍵を１つ選ぶ（これをＭｋｐとする）。
【０１９９】
選んだＭｋｐを復号鍵として、復号化回路２１２ｃにより、ＥＭｋｉ（Ｓｋ１）を復号し、
ＤＭｋｐ（ＥＭｋｉ（Ｓｋ１））＝Ｓｋａ
を得る。
【０２００】
次に、復号化回路２１２ｃの出力Ｓｋａを暗号鍵として、復号化回路２１２ｅにより、ＥＳｋ１（Ｓｋ１）を復号し、
ＤＳｋａ（ＥＳｋ１（Ｓｋ１））＝Ｓｋｂ
を得る。
【０２０１】
次に、図示しない鍵判定回路により、ＳｋａとＳｋｂとが一致するか否か調べる。ここで、マスター鍵ＭｋｉがＭｋｐであったならば、
Ｓｋａ＝ＤＭｋｐ（ＥＭｋｉ（Ｓｋ１））＝Ｓｋ１
となり、従って、
Ｓｋｂ＝ＤＳｋａ（ＥＳｋ１（Ｓｋ１））＝ＤＳｋ１（ＥＳｋ１（Ｓｋ１））＝Ｓｋ１
となり、ゆえに、
Ｓｋａ＝Ｓｋｂ＝Ｓｋ１
となる。
【０２０２】
つまり、鍵判定回路により、ＳｋａとＳｋｂとが一致することがわかった場合には、
Ｍｋｉ＝Ｍｋｐ、かつ、Ｓｋａ＝Ｓｋｂ＝Ｓｋ１であり、
この場合、復号化回路２１２ｅの出力（あるいは復号化回路２１２ｃの出力）は、復号化回路２１２ｆに伝えられる。
【０２０３】
一方、鍵判定回路により、ＳｋａとＳｋｂとが一致しないことがわかった場合には、
Ｍｋｉ≠Ｍｋｐであり、ＩＣカード１００にてＳｋ１はこのＭｋｐでは暗号化されておらず、それ以外のマスター鍵で暗号化されたことが判る。
【０２０４】
以降は、ＳｋａとＳｋｂとが一致するまで、復号に用いるマスター鍵Ｍｋｐを変更して、上記の手順を繰り返す。
【０２０５】
以上のような手順を用いて、マスター鍵Ｍｋｉを復号化ユニット２０３側で特定することができるとともに、データ暗号鍵Ｓｋ１をＩＣカード１００から暗号化ユニット１２６へ安全に伝えることが可能となる。
【０２０６】
ステップＳ４６では、記録媒体１２７に記録されたＥＳｋ１（Ｄａｔａ）を復号化ユニット２０３へ送る。
【０２０７】
ステップＳ４７では、復号化ユニット２０３にて、復号化回路２１２ｆにより、Ｓｋ１を復号鍵としてＥＳｋ１（Ｄａｔａ）を復号し、もとの入力データを得る。
【０２０８】
なお、復号対象となるデータの暗号化に用いたＩＣカードと当該ＩＣカード１００とが相違するものである場合、ＩＣカード１００内に対応するＩＤとＥＭｋｉ（Ｓｋ１）とＥＳｋ１（Ｓｋ１）の組が登録されていないので、上記のステップＳ４５にてＭｋｉを特定することもＳｋ１を得ることもできず、結局、対象となる暗号化データを復号することはできない。言い換えると、本実施形態では、記録媒体１２７とこれに暗号化データを記録した際に用いたＩＣカードをセットで用いてのみ復号を行うことができる。
【０２０９】
本実施形態で示した手順は一例であり種々変形することが可能である。
【０２１０】
例えば、図１０において、ステップＳ１３の一時鍵の共有は最初に行っても良い。また、ステップＳ３１，Ｓ３２のＩＤの生成、データベースへの登録、記録媒体への記録は、それぞれどのようなタイミングで行っても良い。また、ステップＳ３５は、ステップＳ３３あるいはＳ３４より先に行っても良い。また、ステップＳ３３はＳ３２より先に行っても良い。また、暗号化ユニット内にバッファがあればデータはどのようなタイミングで読み込んでも良い。また、すべてのデータを暗号化してから記録媒体に記録しても良いが、所定の単位ごとに暗号化と記録（あるいは読み込みと暗号化と記録）を繰り返し行っても良い。
【０２１１】
また、例えば図１３において、ステップＳ４１〜ステップＳ４５の順序は適宜入れ替えることが可能である。また、復号化ユニット内にバッファがあれば暗号化データはどのようなタイミングで読み込んでも良い。また、すべてのデータを復号してから出力しても良いが、所定の単位ごとに復号と出力（あるいは読み込みと復号と出力）を繰り返し行っても良い。
【０２１２】
ところで、ステップＳ３２では、ＩＣカード１００にて、暗号化回路１０７ａによりＳｋ１自身でＳｋ１を暗号化して、ＥＳｋ１（Ｓｋ１）を得るとともに、暗号化回路１０７ｂにより、ｎ個のマスター鍵Ｍｋｓ（ｓ＝１，…，ｎ）のうちから例えばランダムあるいは順番に選んだ１つ（これをＭｋｉとする）でＳｋ１を暗号化して、ＥＭｋｉ（Ｓｋ１）を求め、そして、ＩＤとＥＳｋ１（Ｓｋ１）とＥＭｋｉ（Ｓｋ１）とを対応付けてＩＣカード１００内の記憶領域２００に記録しておいた。
【０２１３】
ここで、万一、マスター鍵が破られたことが発覚し、その破られたものを除いてマスター鍵が作り込まれた復号化ユニット２０３に取り替えた場合、すでにＩＣカード１００に記憶されているＥＭｋｉ（Ｓｋ１）に対応するマスター鍵は復号化ユニット２０３内に存在しないので、対応する暗号化データを復号することができなくなる。
【０２１４】
そこで、上記構成を拡張して、ｎ個のマスター鍵のうちから例えばランダムあるいは順番に選んだｍ個（２≦ｍ≦ｎ）のマスター鍵で夫々Ｓｋ１を暗号化して、ｍ個のＥＭｋｉ（Ｓｋ１）を求め、ＩＤとＥＳｋ１（Ｓｋ１）とｍ個のＥＭｋｉ（Ｓｋ１）をとを対応付けてＩＣカード１００内の記憶領域２００に記録しておいても良い。
【０２１５】
この場合、ステップＳ４５において、復号化ユニット２０３にて、ｍ個のＥＭｋｉ（Ｓｋ１）のうちの１つを選択し、ステップＳ４５の処理を行い、復号化ユニット２０３内のすべてのマスター鍵を用いても鍵判定回路によりＳｋａとＳｋｂとの一致が得られず、マスター鍵Ｍｋｉが特定できなかったならば、ｍ個のＥＭｋｉ（Ｓｋ１）のうちの他の１つを選択し、ステップＳ４５の処理を行う。そして、上記手順を、鍵判定回路によりＳｋａとＳｋｂとの一致が得られるまで繰り返す。
【０２１６】
このようにすれば、ＩＣカード１００内のｍ個のＥＭｋｉ（Ｓｋ１）のうちのいずれかに対応するマスター鍵が破られ、その破られたものを除いてマスター鍵が作り込まれた復号化ユニット２０３に取り替えた場合でも、ｍ個のＥＭｋｉ（Ｓｋ１）のすべてに対応するマスター鍵が破られない限り、対応する暗号化データを復号することができるようになる。
【０２１７】
第１の実施形態と同様に、上記の暗号化回路や復号化回路で用いる暗号化方式は、すべての部分で同じものを用いても良いし、対になる暗号化回路と復号化回路の組ごとに、用いる暗号化方式を適宜決めても良い（すべて異なるようにすることも可能である）。
【０２１８】
また、第１の実施形態と同様に、暗号化回路や復号化回路は暗号化方式が同じであればユニット内あるいはＩＣカード内において１つまたは複数のもので兼用するように構成しても構わない。
【０２１９】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。
【０２２０】
本実施形態は、第３の実施形態において、ステップＳ３５のデータ暗号鍵Ｓｋ１をＩＣカード１００から暗号化ユニット１２６へ伝えるための手順とそのためのＩＣカード１００と暗号化ユニット１２６の構成を簡略化したものであり、それ以外の点は先の実施形態と同様である。
【０２２１】
すなわち、先の実施形態では、ステップＳ３５においてＳｋ１の復号（暗号化に先だって行う復号）には一時鍵Ｓｋｔといずれかのマスター鍵Ｍｋｊの２つを用いて２重の復号を行ったが、本実施形態では、Ｓｋｔのみ用いるようにしたものである。
【０２２２】
したがって、本実施形態では、図８の構成から、暗号化ユニット１２６の暗号化回路１１９ａ，１１９ｃ，１１９ｄ、図示しない鍵判定回路と、ＩＣカード１００の復号回路１１０ａ，１１０ｂ，１１０ｄを削除した構成になる。これを図１４に示す。また、図１０のフローチャートは、図１５のようになり、ステップＳ３５の部分だけが相違する。図９、図１１〜図１３の構成は、本実施形態でも同様である。
【０２２３】
以下では、ステップＳ６５についてのみ説明する。
【０２２４】
ステップＳ６５では、まず、復号化回路１１０ｅにより、一時鍵ＳｋｔでＳｋ１を復号して、ＤＳｋｔ（Ｓｋ１）を得る。そして、ＤＳｋｔ（Ｓｋ１）をＣＰＵバス１１６を通して暗号化ユニット１２６へ送る。
【０２２５】
次に、暗号化ユニット１２６にて、暗号化回路１１９ｂにより、一時鍵ＳｋｔでＤＳｋｔ（Ｓｋ１）を暗号化して、Ｓｋ１を得る。
【０２２６】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０２２７】
【発明の効果】
本発明によれば、データを暗号化したデータ暗号化鍵を所定のマスター鍵とデータ暗号化鍵自身でそれぞれ暗号化した上で、データに付与した識別情報に対応して外部記憶装置内に記録しておくことにより、この外部記憶装置と上記の暗号化に用いたマスター鍵を持つ復号化ユニット装置とを用いなければ復号を行うことができない。したがって、ＣＰＵバスから直接に他の記録媒体に記録するなどして記録媒体の複製を作って頒布しても他の者は復号をすることができない。
【０２２８】
また、本発明によれば、暗号化されたデータ暗号化鍵を、例えば共有化した一時鍵を用いてさらに暗号化するなどして、外部記憶装置と暗号化ユニット装置との間あるいは外部記憶装置と復号化ユニット装置との間でＣＰＵバスを介して共有するため、ＣＰＵバスからこれらの情報を記録することは無意味である
また、本発明によれば、データを暗号化するデータ暗号化鍵自体も、またデータ暗号化鍵を共有化するために用いる一時鍵も、毎回変わるため、第３者により暗号を解読することは極めて困難である。
【０２２９】
したがって、本発明によれば、第３者による不正なコピーを防止することが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る暗号化に用いるシステムの構成を示すブロック図
【図２】図１の鍵共有回路の内部構成の一例を示す図
【図３】同実施形態における暗号化の際の手順を示すフローチャート
【図４】鍵共有手順の一例を示すフローチャート
【図５】同実施形態に係る復号に用いるシステムの構成を示すブロック図
【図６】図５の鍵共有回路の内部構成の一例を示す図
【図７】同実施形態における復号の際の手順を示すフローチャート
【図８】本発明の第２の実施形態に係る暗号化に用いるシステムの構成を示すブロック図
【図９】図８の鍵共有のための構成部分３０１，３０３の詳しい構成の一例を示す図
【図１０】同実施形態における暗号化の際の手順を示すフローチャート
【図１１】同実施形態に係る復号に用いるシステムの構成を示すブロック図
【図１２】図１１の鍵共有のための構成部分２１３，２１５の詳しい構成の一例を示す図
【図１３】同実施形態における復号の際の手順を示すフローチャート
【図１４】本発明の第３の実施形態に係る暗号化に用いるシステムの構成を示すブロック図
【図１５】同実施形態における暗号化の際の手順を示すフローチャート
【符号の説明】
３０ａ，３０ｂ，３０ｃ…鍵共有回路
３１ａ，３１ｂ，３１ｃ…チャレンジ鍵生成回路
３３ａ，３３ｂ，３３ｃ…認証鍵生成回路
３５ａ，３５ｂ，３５ｃ…比較回路
３７ａ，３７ｂ，３７ｃ…バス鍵生成回路
１００…ＩＣカード
１０２ａ〜１０２ｃ…マスター鍵の鍵束
１０３…データ暗号鍵生成回路
１０５…ＩＤ生成回路
１０７ａ，１０７ｂ，１１９ａ〜１１９ｇ，２０９ａ〜２０９ｄ…暗号化回路
１１０ａ〜１１０ｆ，２１２ａ〜２１２ｇ…復号化回路
１１６…ＣＰＵバス
１１７，２１０…一時鍵生成回路
１２６…暗号化ユニット
１２７…記録媒体
２００…ＩＤ／鍵情報記憶回路
２０３…復号化ユニット
２１１，３１３…一時鍵判定回路
【図１】
0003625356.tif 000002
【図２】
0003625356.tif 000003
【図３】
0003625356.tif 000004
【図４】
0003625356.tif 000005
【図５】
0003625356.tif 000006
【図６】
0003625356.tif 000007
【図７】
0003625356.tif 000008
【図８】
0003625356.tif 000009
【図９】
0003625356.tif 000010
【図１０】
0003625356.tif 000011
【図１１】
0003625356.tif 000012
【図１２】
0003625356.tif 000013
【図１３】
0003625356.tif 000014
【図１４】
0003625356.tif 000015
【図１５】
0003625356.tif 000016