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