Encrypted communication system and communication device
Abstract
This record has no abstract on file.
Term
Term ended
Expired 18 October 2024, 1.9 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
6 claims: 6 independent, 0 dependent
- 1通信の相手 装置と共有した鍵を用いて暗号通信を行う通信装置であって、 データ生成手段、復号手段、鍵生成手段及び通信手段を備え、 群上でベース元、前記相手装置の公開鍵及び前記通信装置の公開鍵が定義され、前記相手装置の前記公開鍵は、前記相手装置の私有鍵と前記ベース元とのべき演算により算出され、前記通信装置の前記公開鍵は、前記通信装置の私有鍵と前記ベース元とのべき演算により算出され、 前記データ生成手段は、乱数である第1シード値に第1一方向性演算を施して得られた演算結果を分割して、第1係数及び第1鍵を生成し、前記第1係数と前記ベース元とのべき演算により、前記群上の第1元を算出し、前記第1係数と前記相手装置の前記公開鍵とのべき演算により、前記群上の第2元を算出し、前記第1シード値と、前記第1元と前記第2元との結合結果に第2一方向性演算を施して得られた演算結果との排他的論理和により、第1検証値を算出し、第1暗号化鍵データとして、前記第1元及び前記第1検証値を前記相手装置へ送信し、 前記相手装置は、前記第1暗号化鍵データとして、前記第1元及び前記第1検証値を受信し、前記相手装置の前記私有鍵と前記第1元とのべき演算により、前記群上の第3元を算出し、前記第1検証値と、前記第1元と前記第3元との結合結果に 前記 第2一方向性演算を施して得られた演算結果との排他的論理和により、第2検証値を算出し、前記第2検証値に前記第1一方向性演算を施して得られた演算結果を分割して、第4係数及び第4鍵を生成し、前記第4係数と前記ベース元とのべき演算の演算結果と、取得した前記第1元とを比較し、一致する場合に、前記第4鍵を前記第1鍵と同一の共有鍵とし、 前記相手装置は、乱数である第2シード値に前記第1一方向性演算を施して得られた前記演算結果を分割して、第3係数及び第3鍵を生成し、前記第3係数と前記ベース元とのべき演算により、前記群上の第4元を算出し、前記第3係数と前記通信装置の前記公開鍵とのべき演算により、前記群上の第5元を算出し、前記第2シード値と、前記第4元と前記第5元との結合結果に前記第2一方向性演算を施して得られた演算結果との排他的論理和により、第3検証値を算出し、第2暗号化鍵データとして、前記第4元及び前記第3検証値を前記通信装置へ送信し、 前記復号手段は、前記第2暗号化鍵データとして、前記第4元及び前記第3検証値を受信し、前記通信装置の前記私有鍵と前記第4元とのべき演算により、前記群上の第6元を算出し、前記第3検証値と、前記第4元と前記第6元との結合結果に前記第2一方向性演算を施して得られた演算結果との排他的論理和により、第4検証値を算出し、前記第4検証値に前記第1一方向性演算を施して得られた演算結果を分割して、第2係数及び第2鍵を生成し、前記第2係数と前記ベース元とのべき演算の演算結果と、取得した前記第4元とを比較し、一致する場合に、前記第2鍵を前記第3鍵と同一の共有鍵とし、 前記鍵生成手段は、 前記第1鍵と前記第2鍵とを用いて所定の演算を行い、その演算結果の一部分を第1暗号鍵として生成し、他の一部分を第1ハッシュ鍵として生成 し、 前記通信手段は、 前記第1暗号鍵を用いて、第1送信データを暗号化して第1暗号化データを生成し、前記第1ハッシュ鍵を用いて、前記第1送信データに一方向性演算を施して、前記相手装置における前記第1暗号化データの改竄検査のための第1検査値を算出し、生成した第1暗号化データと第1検査値とを前記相手装置へ送信 し、 前記通信の相手装置は、 前記第3鍵と前記第4鍵とに基づいて、第2暗号鍵を生成し 、 当該通信装置との間で、前記第2暗号鍵を用いて暗号通信を行う ことを特徴とする通信装置。
- 2前記群としての楕円曲線E上の前記ベース元としてのベース点をPとし、前記相手装置の前記私有鍵をxとし、前記相手装置の前記公開鍵をW=x*Pとし、*は、前記楕円曲線E上の点の乗算である前記べき演算を示す演算子であり、 前記通信装置の前記データ生成手段は、 (a)乱数である前記第1シード値sを生成し、 (b)前記第1シード値sのハッシュ値G(s)を算出し、 (c)ハッシュ値G(s)を分割して、第1係数a及び前記第1鍵を生成し、 (d)楕円曲線E上の前記第1元としての点R=a*Pを算出し、前記第2元としての点Q=a*Wを算出し、 (e)前記第1シード値sと、点Rと点Qとの結合結果にハッシュを施して得られたハッシュ値とに排他的論理和を施して、第1検証値vを得、 (f)前記第1暗号化鍵データとして、点R及び第1検証値vを出力する。 前記相手装置は、 (g)点R及び第1検証値vを取得し、 (h)楕円曲線E上の第3元としての点Q’=x*Rを算出し、 (i)第1検証値vと、点Rと点Q’との結合結果にハッシュを施して得られたハッシュ値とに排他的論理和を施して、第2検証値s’を得、 (j)第2検証値s’のハッシュ値G(s’)を算出し、 (k)ハッシュ値G(s’)を分割して、第4係数a’及び第4鍵を生成し、 (l)R=a’*Pが成立するか否かを判断し、 (m)R=a’*Pが成立する場合に、前記第4鍵を前記第1鍵と同一の共有鍵とする。 前記群としての楕円曲線E上の前記ベース元としてのベース点をPとし、前記通信装置の前記私有鍵をxとし、前記通信装置の前記公開鍵をW=x*Pとし、 前記相手装置は、 (a)乱数である前記第3シード値sを生成し、 (b)前記第3シード値sのハッシュ値G(s)を算出し、 (c)ハッシュ値G(s)を分割して、第3係数a及び前記第3鍵を生成し、 (d)楕円曲線E上の前記第4元としての点R=a*Pを算出し、前記第5元としての点Q=a*Wを算出し、 (e)前記第3シード値sと、点Rと点Qとの結合結果にハッシュを施して得られたハッシュ値とに排他的論理和を施して、第3検証値vを得、 (f)点R及び第3検証値vを出力する。 前記通信装置の前記復号手段は、 (g)点R及び第3検証値vを取得し、 (h)楕円曲線E上の前記第6元としての点Q’=x*Rを算出し、 (i)第3検証値vと、点Rと点Q’との結合結果にハッシュを施して得られたハッシュ値とに排他的論理和を施して、第4検証値s’を得、 (j)第4検証値s’のハッシュ値G(s’)を算出し、 (k)ハッシュ値G(s’)を分割して、第2係数a’及び第2鍵を生成し、 (l)R=a’*Pが成立するか否かを判断し、 (m)R=a’*Pが成立する場合に、前記第2鍵を共有鍵とする。 ことを特徴とする 請求項1 に記載の通信装置。
- 3通信の相手 装置と共有した鍵を用いて暗号通信を行う通信装置において用いられる通信方法であって、 データ生成ステップ、復号ステップ、鍵生成ステップ及び通信ステップを備え、 群上でベース元、前記相手装置の公開鍵及び前記通信装置の公開鍵が定義され、前記相手装置の前記公開鍵は、前記相手装置の私有鍵と前記ベース元とのべき演算により算出され、前記通信装置の前記公開鍵は、前記通信装置の私有鍵と前記ベース元とのべき演算により算出され、 前記データ生成ステップは、乱数である第1シード値に第1一方向性演算を施して得られた演算結果を分割して、第1係数及び第1鍵を生成し、前記第1係数と前記ベース元とのべき演算により、前記群上の第1元を算出し、前記第1係数と前記相手装置の前記公開鍵とのべき演算により、前記群上の第2元を算出し、前記第1シード値と、前記第1元と前記第2元との結合結果に第2一方向性演算を施して得られた演算結果との排他的論理和により、第1検証値を算出し、第1暗号化鍵データとして、前記第1元及び前記第1検証値を前記相手装置へ送信し、 前記相手装置は、前記第1暗号化鍵データとして、前記第1元及び前記第1検証値を受信し、前記相手装置の前記私有鍵と前記第1元とのべき演算により、前記群上の第3元を算出し、前記第1検証値と、前記第1元と前記第3元との結合結果に 前記 第2一方向性演算を施して得られた演算結果との排他的論理和により、第2検証値を算出し、前記第2検証値に前記第1一方向性演算を施して得られた演算結果を分割して、第4係数及び第4鍵を生成し、前記第4係数と前記ベース元とのべき演算の演算結果と、取得した前記第1元とを比較し、一致する場合に、前記第4鍵を前記第1鍵と同一の共有鍵とし、 前記相手装置は、乱数である第2シード値に前記第1一方向性演算を施して得られた前記演算結果を分割して、第3係数及び第3鍵を生成し、前記第3係数と前記ベース元とのべき演算により、前記群上の第4元を算出し、前記第3係数と前記通信装置の前記公開鍵とのべき演算により、前記群上の第5元を算出し、前記第2シード値と、前記第4元と前記第5元との結合結果に前記第2一方向性演算を施して得られた演算結果との排他的論理和により、第3検証値を算出し、第2暗号化鍵データとして、前記第4元及び前記第3検証値を前記通信装置へ送信し、 前記復号ステップは、前記第2暗号化鍵データとして、前記第4元及び前記第3検証値を受信し、前記通信装置の前記私有鍵と前記第4元とのべき演算により、前記群上の第6元を算出し、前記第3検証値と、前記第4元と前記第6元との結合結果に前記第2一方向性演算を施して得られた演算結果との排他的論理和により、第4検証値を算出し、前記第4検証値に前記第1一方向性演算を施して得られた演算結果を分割して、第2係数及び第2鍵を生成し、前記第2係数と前記ベース元とのべき演算の演算結果と、取得した前記第4元とを比較し、一致する場合に、前記第2鍵を前記第3鍵と同一の共有鍵とし、 前記鍵生成ステップは、 前記第1鍵と前記第2鍵とを用いて所定の演算を行い、その演算結果の一部分を第1暗号鍵として生成し、他の一部分を第1ハッシュ鍵として生成 し、 前記通信ステップは、 前記第1暗号鍵を用いて、第1送信データを暗号化して第1暗号化データを生成し、前記第1ハッシュ鍵を用いて、前記第1送信データに一方向性演算を施して、前記相手装置における前記第1暗号化データの改竄検査のための第1検査値を算出し、生成した第1暗号化データと第1検査値とを前記相手装置へ送信 し、 前記通信の相手装置は、 前記第3鍵と前記第4鍵とに基づいて、第2暗号鍵を生成し 、 当該通信装置との間で、前記第2暗号鍵を用いて暗号通信を行う ことを特徴とする通信方法。
- 4通信の相手 装置と共有した鍵を用いて暗号通信を行う通信装置において用いられる通信用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、 前記コンピュータプログラムは、コンピュータに、 データ生成ステップ、復号ステップ、鍵生成ステップ及び通信ステップを実行させ、 群上でベース元、前記相手装置の公開鍵及び前記通信装置の公開鍵が定義され、前記相手装置の前記公開鍵は、前記相手装置の私有鍵と前記ベース元とのべき演算により算出され、前記通信装置の前記公開鍵は、前記通信装置の私有鍵と前記ベース元とのべき演算により算出され、 前記データ生成ステップは、乱数である第1シード値に第1一方向性演算を施して得られた演算結果を分割して、第1係数及び第1鍵を生成し、前記第1係数と前記ベース元とのべき演算により、前記群上の第1元を算出し、前記第1係数と前記相手装置の前記公開鍵とのべき演算により、前記群上の第2元を算出し、前記第1シード値と、前記第1元と前記第2元との結合結果に第2一方向性演算を施して得られた演算結果との排他的論理和により、第1検証値を算出し、第1暗号化鍵データとして、前記第1元及び前記第1検証値を前記相手装置へ送信し、 前記相手装置は、前記第1暗号化鍵データとして、前記第1元及び前記第1検証値を受信し、前記相手装置の前記私有鍵と前記第1元とのべき演算により、前記群上の第3元を算出し、前記第1検証値と、前記第1元と前記第3元との結合結果に 前記 第2一方向性演算を施して得られた演算結果との排他的論理和により、第2検証値を算出し、前記第2検証値に前記第1一方向性演算を施して得られた演算結果を分割して、第4係数及び第4鍵を生成し、前記第4係数と前記ベース元とのべき演算の演算結果と、取得した前記第1元とを比較し、一致する場合に、前記第4鍵を前記第1鍵と同一の共有鍵とし、 前記相手装置は、乱数である第2シード値に前記第1一方向性演算を施して得られた前記演算結果を分割して、第3係数及び第3鍵を生成し、前記第3係数と前記ベース元とのべき演算により、前記群上の第4元を算出し、前記第3係数と前記通信装置の前記公開鍵とのべき演算により、前記群上の第5元を算出し、前記第2シード値と、前記第4元と前記第5元との結合結果に前記第2一方向性演算を施して得られた演算結果との排他的論理和により、第3検証値を算出し、第2暗号化鍵データとして、前記第4元及び前記第3検証値を前記通信装置へ送信し、 前記復号ステップは、前記第2暗号化鍵データとして、前記第4元及び前記第3検証値を受信し、前記通信装置の前記私有鍵と前記第4元とのべき演算により、前記群上の第6元を算出し、前記第3検証値と、前記第4元と前記第6元との結合結果に前記第2一方向性演算を施して得られた演算結果との排他的論理和により、第4検証値を算出し、前記第4検証値に前記第1一方向性演算を施して得られた演算結果を分割して、第2係数及び第2鍵を生成し、前記第2係数と前記ベース元とのべき演算の演算結果と、取得した前記第4元とを比較し、一致する場合に、前記第2鍵を前記第3鍵と同一の共有鍵とし、 前記鍵生成ステップは、 前記第1鍵と前記第2鍵とを用いて所定の演算を行い、その演算結果の一部分を第1暗号鍵として生成し、他の一部分を第1ハッシュ鍵として生成 し、 前記通信ステップは、 前記第1暗号鍵を用いて、第1送信データを暗号化して第1暗号化データを生成し、前記第1ハッシュ鍵を用いて、前記第1送信データに一方向性演算を施して、前記相手装置における前記第1暗号化データの改竄検査のための第1検査値を算出し、生成した第1暗号化データと第1検査値とを前記相手装置へ送信 し、 前記通信の相手装置は、 前記第3鍵と前記第4鍵とに基づいて、第2暗号鍵を生成し 、 当該通信装置との間で、前記第2暗号鍵を用いて暗号通信を行う ことを特徴とする 前記コンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体。
- 5通信の 相手装置と共有した鍵を用いて暗号通信を行う通信装置において用いられる通信用のコンピュータプログラムであって、 前記コンピュータプログラムは、コンピュータに、 データ生成ステップ、復号ステップ、鍵生成ステップ及び通信ステップを実行させ、 群上でベース元、前記相手装置の公開鍵及び前記通信装置の公開鍵が定義され、前記相手装置の前記公開鍵は、前記相手装置の私有鍵と前記ベース元とのべき演算により算出され、前記通信装置の前記公開鍵は、前記通信装置の私有鍵と前記ベース元とのべき演算により算出され、 前記データ生成ステップは、乱数である第1シード値に第1一方向性演算を施して得られた演算結果を分割して、第1係数及び第1鍵を生成し、前記第1係数と前記ベース元とのべき演算により、前記群上の第1元を算出し、前記第1係数と前記相手装置の前記公開鍵とのべき演算により、前記群上の第2元を算出し、前記第1シード値と、前記第1元と前記第2元との結合結果に第2一方向性演算を施して得られた演算結果との排他的論理和により、第1検証値を算出し、第1暗号化鍵データとして、前記第1元及び前記第1検証値を前記相手装置へ送信し、 前記相手装置は、前記第1暗号化鍵データとして、前記第1元及び前記第1検証値を受信し、前記相手装置の前記私有鍵と前記第1元とのべき演算により、前記群上の第3元を算出し、前記第1検証値と、前記第1元と前記第3元との結合結果に 前記 第2一方向性演算を施して得られた演算結果との排他的論理和により、第2検証値を算出し、前記第2検証値に前記第1一方向性演算を施して得られた演算結果を分割して、第4係数及び第4鍵を生成し、前記第4係数と前記ベース元とのべき演算の演算結果と、取得した前記第1元とを比較し、一致する場合に、前記第4鍵を前記第1鍵と同一の共有鍵とし、 前記相手装置は、乱数である第2シード値に前記第1一方向性演算を施して得られた前記演算結果を分割して、第3係数及び第3鍵を生成し、前記第3係数と前記ベース元とのべき演算により、前記群上の第4元を算出し、前記第3係数と前記通信装置の前記公開鍵とのべき演算により、前記群上の第5元を算出し、前記第2シード値と、前記第4元と前記第5元との結合結果に前記第2一方向性演算を施して得られた演算結果との排他的論理和により、第3検証値を算出し、第2暗号化鍵データとして、前記第4元及び前記第3検証値を前記通信装置へ送信し、 前記復号ステップは、前記第2暗号化鍵データとして、前記第4元及び前記第3検証値を受信し、前記通信装置の前記私有鍵と前記第4元とのべき演算により、前記群上の第6元を算出し、前記第3検証値と、前記第4元と前記第6元との結合結果に前記第2一方向性演算を施して得られた演算結果との排他的論理和により、第4検証値を算出し、前記第4検証値に前記第1一方向性演算を施して得られた演算結果を分割して、第2係数及び第2鍵を生成し、前記第2係数と前記ベース元とのべき演算の演算結果と、取得した前記第4元とを比較し、一致する場合に、前記第2鍵を前記第3鍵と同一の共有鍵とし、 前記鍵生成ステップは、 前記第1鍵と前記第2鍵とを用いて所定の演算を行い、その演算結果の一部分を第1暗号鍵として生成し、他の一部分を第1ハッシュ鍵として生成 し、 前記通信ステップは、 前記第1暗号鍵を用いて、第1送信データを暗号化して第1暗号化データを生成し、前記第1ハッシュ鍵を用いて、前記第1送信データに一方向性演算を施して、前記相手装置における前記第1暗号化データの改竄検査のための第1検査値を算出し、生成した第1暗号化データと第1検査値とを前記相手装置へ送信 し、 前記通信の相手装置は、 前記第3鍵と前記第4鍵とに基づいて、第2暗号鍵を生成し 、 当該通信装置との間で、前記第2暗号鍵を用いて暗号通信を行う ことを特徴とする コンピュータプログラム。
- 6通信の相手 装置と共有した鍵を用いて暗号通信を行う通信装置と前記相手装置とから構成される暗号通信システムであって、 前記通信装置は、データ生成手段、復号手段、鍵生成手段及び通信手段を備え、 群上でベース元、前記相手装置の公開鍵及び前記通信装置の公開鍵が定義され、前記相手装置の前記公開鍵は、前記相手装置の私有鍵と前記ベース元とのべき演算により算出され、前記通信装置の前記公開鍵は、前記通信装置の私有鍵と前記ベース元とのべき演算により算出され、 前記データ生成手段は、乱数である第1シード値に第1一方向性演算を施して得られた演算結果を分割して、第1係数及び第1鍵を生成し、前記第1係数と前記ベース元とのべき演算により、前記群上の第1元を算出し、前記第1係数と前記相手装置の前記公開鍵とのべき演算により、前記群上の第2元を算出し、前記第1シード値と、前記第1元と前記第2元との結合結果に第2一方向性演算を施して得られた演算結果との排他的論理和により、第1検証値を算出し、第1暗号化鍵データとして、前記第1元及び前記第1検証値を前記相手装置へ送信し、 前記相手装置は、前記第1暗号化鍵データとして、前記第1元及び前記第1検証値を受信し、前記相手装置の前記私有鍵と前記第1元とのべき演算により、前記群上の第3元を算出し、前記第1検証値と、前記第1元と前記第3元との結合結果に 前記 第2一方向性演算を施して得られた演算結果との排他的論理和により、第2検証値を算出し、前記第2検証値に前記第1一方向性演算を施して得られた演算結果を分割して、第4係数及び第4鍵を生成し、前記第4係数と前記ベース元とのべき演算の演算結果と、取得した前記第1元とを比較し、一致する場合に、前記第4鍵を前記第1鍵と同一の共有鍵とし、 前記相手装置は、乱数である第2シード値に前記第1一方向性演算を施して得られた前記演算結果を分割して、第3係数及び第3鍵を生成し、前記第3係数と前記ベース元とのべき演算により、前記群上の第4元を算出し、前記第3係数と前記通信装置の前記公開鍵とのべき演算により、前記群上の第5元を算出し、前記第2シード値と、前記第4元と前記第5元との結合結果に前記第2一方向性演算を施して得られた演算結果との排他的論理和により、第3検証値を算出し、第2暗号化鍵データとして、前記第4元及び前記第3検証値を前記通信装置へ送信し、 前記復号手段は、前記第2暗号化鍵データとして、前記第4元及び前記第3検証値を受信し、前記通信装置の前記私有鍵と前記第4元とのべき演算により、前記群上の第6元を算出し、前記第3検証値と、前記第4元と前記第6元との結合結果に前記第2一方向性演算を施して得られた演算結果との排他的論理和により、第4検証値を算出し、前記第4検証値に前記第1一方向性演算を施して得られた演算結果を分割して、第2係数及び第2鍵を生成し、前記第2係数と前記ベース元とのべき演算の演算結果と、取得した前記第4元とを比較し、一致する場合に、前記第2鍵を前記第3鍵と同一の共有鍵とし、 前記鍵生成手段は、 前記第1鍵と前記第2鍵とを用いて所定の演算を行い、その演算結果の一部分を第1暗号鍵として生成し、他の一部分を第1ハッシュ鍵として生成 し、 前記通信手段は、 前記第1暗号鍵を用いて、第1送信データを暗号化して第1暗号化データを生成し、前記第1ハッシュ鍵を用いて、前記第1送信データに一方向性演算を施して、前記相手装置における前記第1暗号化データの改竄検査のための第1検査値を算出し、生成した第1暗号化データと第1検査値とを前記相手装置へ送信 し、 前記通信の相手装置は、 前記第3鍵と前記第4鍵とに基づいて、第2暗号鍵を生成し 、 当該通信装置との間で、前記第2暗号鍵を用いて暗号通信を行う ことを特徴とする暗号通信システム。
Independent claims6
85 paragraphs, as filed
The present invention relates to a cryptographic communication technique for performing cryptographic communication by sharing a key between devices.
In recent years, there have been increasing opportunities for communication via networks between home appliances, mobile phones, and the like. In order to protect copyrighted works and prevent leakage of communication contents between such devices, after performing device authentication and key sharing, encrypted communication is performed using the shared key. As one of the authentication key sharing methods, there is a method specified by a standard called DTCP (Digital Transmission Content Protection), which is used when AV devices are connected to each other by an IEEE1394 bus. DTCP uses challenge-response authentication using an elliptic DSA signature as the authentication method, and uses elliptic DH key sharing as the key sharing method. DTCP is disclosed in Non-Patent Document 1, and challenge-response authentication, elliptic DSA signature, and elliptic DH key sharing are disclosed in Non-Patent Document 2.<nplcit num="1"><text>White paper of DTCP Specification <URL: http://www.dtcp.com/spec.html></text></nplcit><nplcit num="2"><text>Tatsuaki Okamoto, Hirosuke Yamamoto, "Modern Code", Industrial Books (1997)</text></nplcit><nplcit num="3"><text>Victor Shoup, "A proposal for an ISO standard for public key encryption (version 2.1)", [online], December 20, 2001, [Search September 29, 2002], <URL: http: // shoup. net / papers / iso-2_1.pdf></text></nplcit><nplcit num="4"><text>Tatsuaki Okamoto, Generic conversions for constructing IND-CCA2 public-key encryption in the random oracle model, [online], The 5th Workshop on Elliptic Curve Cryptography (ECC 2001), October 30, 2001, <URL: http: //www.cacr.math.uwaterloo.ca/conferences/2001/ecc/okamoto.ppt> [Searched September 29, 2002]</text></nplcit><nplcit num="5"><text>Neal Koblitz, Algebraic Aspects of Cryptography, Algorithms and Computation in mathematics Vol.3, pp.132-133, Springer-Verlag, 1998.</text></nplcit><nplcit num="6"><text>M. Bellare and P. Rogaway, Minimizing the use of random oraclesion authenticated encryption schemes. In Proceedings of PKS '97, 1997</text></nplcit>
<p> However, the security of the DTCP authentication key sharing method has not been proved, and there is concern about its security. Here, the proof of security is to prove that a user without a private key cannot decrypt a ciphertext on the basis that a mathematical problem is difficult to solve in public key cryptography. It also guarantees the security of public key cryptography. (For example, Non-Patent Document 6) Therefore, the present invention has been made in view of such a problem, and an object of the present invention is to provide an encryption communication system capable of sharing an encryption key more securely.</p>
<p> In order to achieve the above object, the present invention is a cryptographic communication system that performs cryptographic communication using a key shared between the first and second devices, and the first device uses the public key of the second device. The first key is encrypted to generate the first encryption key data, the generated first encryption key data is transmitted to the second device, and the second encryption key data is received from the second device. Then, the private key of the first device is used to decrypt the second encryption key data to obtain the second key, and based on the first key and the second key, between the second device and the second device. The first encryption key used for communication is generated, and the second device encrypts the third key using the public key of the first device to generate the second encryption key data, and the generated second device. The encryption key data is transmitted to the first device, the first encryption key data is received from the first device, and the first encryption key data is decrypted using the private key of the second device. The fourth key is acquired, and a second encryption key used for communication with the first device is generated based on the third key and the fourth key.</p>
<p> According to this configuration, a new cryptographic shared key is generated from the two shared keys, so even if one of the shared keys is exposed by an unauthorized user, the cryptographic shared key used for encrypted data communication. Is protected, so the data to be communicated can be protected. In addition, it is possible to authenticate whether or not the other device is a legitimate device depending on whether or not it is possible to correctly decrypt the encryption key and obtain two shared keys.</p>
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. 1. Configuration of cryptographic communication system 1 As shown in FIG. 1, the cryptographic communication system 1 is composed of a device A100 and a device B200. The device A100 and the device B200 are devices for reproducing contents composed of video, audio, and the like.
The cryptographic communication system 1 is a system in which authentication and key sharing are performed between devices, and encrypted communication is performed using the shared key. In the present embodiment, a case where content data is transmitted / received using a shared key will be described as an example. 1.1 Configuration of device A100 As shown in FIG. 2, the device A100 includes a transmission / reception unit 102, a content data storage unit 103, a shared key storage unit 109, an authentication unit 112, a control unit 115, an input unit 116, a playback unit 117, an interface 118, and a key sharing processing unit. It is composed of 120 and the content data processing unit 130.
Specifically, the device A100 is a computer system composed of a microprocessor, ROM, RAM, a hard disk unit, and the like. A computer program is stored in the RAM or the hard disk unit. When the microprocessor operates according to the computer program, the apparatus A100 achieves its function.
The device A100 can connect an external device such as a monitor or a speaker to the interface 118, and when the content data is reproduced, a video signal or an audio signal is output via the interface 118. Hereinafter, each configuration will be described. (1) Key sharing processing unit 120 As shown in FIG. 3, the key sharing processing unit 120 includes a verification data storage unit 101, a certificate verification unit 104, a private key storage unit 105, a key generation unit 106, a key decryption unit 107, and a shared key generation unit 108. To.
The key sharing processing unit 120 delivers the key KA from the device A100 to the device B200, delivers the key KB from the device B200 to the device A100, and shares the key KA and the key KB. From the shared key KA and key KB, a cryptographic shared key KS used for encrypted communication and a hash shared key KH used for detecting falsification of the data to be communicated are generated. (a) Verification data storage unit 101 The verification data storage unit 101 stores the public key certificate Cert_A of the device A100 and the public key KPC of the CA (Certification Authority).
The public key certificate Cert_A contains the public key KPA and the signature SKPA. The public key KPA is a public key issued by the CA to device A100. In addition, the signature SKPA proves that the public key KPA is a legitimate public key and is issued by the CA. The signature SKPA is generated by applying the signature generation algorithm S1 to the public key KPA using the public key KPC and the private key KSC of the corresponding CA.
Here, the CA is a trusted third party and is an organization that issues a public key certificate that certifies the validity of the public key of the device belonging to the cryptographic communication system 1. The signature algorithm S1 is, for example, an RSA signature, an elliptic DSA signature, or the like. Non-Patent Document 2 is detailed about these signature algorithms. (b) Private key storage 105 The private key storage unit 105 stores the private key KSA. The private key KSA is a key corresponding to the above public key KPA, and is generated in advance by a certificate authority.
(c) Certificate Verification Department 104 The certificate verification unit 104 verifies whether or not the public key certificate received from the communication partner device is a legitimate public key certificate issued by the CA. When the certificate verification unit 104 receives the public key certificate Cert_B of the device B200 under the control of the control unit 115, the certificate verification unit 104 retrieves the signature SKPB and the public key KPB included in the public key certificate Cert_B. Further, the public key KPC is read from the verification data storage unit 101, and the signature SKPB is subjected to the signature verification algorithm V1 using the public key KPC and the public key KPB to verify the signature. If the verification result is successful, the certificate verification unit 104 outputs the public key KPB included in the certificate to the key generation unit 106. If the verification result is unsuccessful, the subsequent processing is terminated.
(d) Key generator 106 The key generation unit 106 receives the public key KPB of the device B200 from the certificate verification unit 104, and generates the key KA and the key information KEMA based on the key encapsulation mechanism. Here, the key encapsulation mechanism is an algorithm that delivers a shared key from a transmitting device to a receiving device using public key cryptography. The transmitting device inputs the public key pk of the receiving device into the public key cryptographic algorithm E to generate the ciphertext C and the shared key K, and transmits the ciphertext C to the receiving device. Then, the receiving device inputs the private key sk of the receiving device and the ciphertext C into the public key decryption algorithm D to obtain the same shared key K as the transmitting device.
After that, the data to be communicated is encrypted by the common key cryptography using the shared key K. In this way, the conventional key distribution method is that while information is unilaterally transmitted from the transmitting device to the receiving device, the transmitting side cannot intentionally create a shared key, and fraud by the transmitting side is suppressed. This is a feature not found in. The key generation unit 106 takes the public key KPB of the device B200 as an input and generates a key KA corresponding to the shared key K in the key encapsulation mechanism and a key information KEMA corresponding to the ciphertext C. The generated key KA is output to the shared key generation unit 108, and the key information KEMA is output to the control unit 115.
The key encapsulation mechanism is disclosed in detail in Non-Patent Document 3. (e) Key decryption unit 107 The key decryption unit 107 receives the key information KEMB received from the device B200 under the control of the control unit 115. The key information KEMB corresponds to the ciphertext C in the key encapsulation mechanism. The key decryption unit 107 reads the private key KSA from the private key storage unit 105. The private key KSA corresponds to the private key of the receiver in the key encapsulation mechanism. The key decryption unit 107 receives the key information KEMB and the read private key KSA as inputs, decrypts the key information KEMB, and generates the key KB'. The generated key KB'is output to the shared key generation unit 108.
(f) Shared key generator 108 The shared key generation unit 108 receives the key KA from the key generation unit 106 and the key KB'from the key decryption unit 107 under the control of the control unit 115. The received key KA and KB'are concatenated in this order to generate key data KA || KB'. A hash function is applied to the key data KA || KB'to generate a hash value H. The generated hash value H is divided, and the upper part is used as the cryptographic shared key KSa, and the remaining part is used as the hash shared key KHa.
The shared key generation unit 108 stores the generated cryptographic shared key KSa and hash shared key KHa in the shared key storage unit 109. (2) Shared key storage unit 109 The shared key storage unit 109 stores the cryptographic shared key KSa and the hash shared key KHa generated by the shared key generation unit 108. (3) Certification unit 112 The authentication unit 112 uses the cryptographic shared key KSa stored in the shared key storage unit 109 to perform mutual authentication with the device of the communication partner. Here, challenge-response authentication is performed as an example.
The specific processing will be described later. (4) Content data processing unit 130 As shown in FIG. 4, the content data processing unit 130 is composed of an encryption unit 110, a decryption unit 111, a hash value calculation unit 113, and a falsification detection unit 114, and performs processing related to content data transmission / reception.
(a) Encryption unit 110 Under the control of the control unit 115, the encryption unit 110 reads the encryption shared key KSa from the shared key storage unit 109 and reads the content data DA from the verification data storage unit 101. The content data DA read using the shared encryption key KSa is encrypted by applying the encryption algorithm E1 to generate encrypted data CDA = Enc (KSa, DA). Here, Enc (KSa, DA) is a ciphertext in which the content data DA is encrypted by the common key cryptography using the shared encryption key KSa.
Here, the encryption algorithm E1 is AES as an example. Since AES is known, the description thereof will be omitted. The encryption unit 110 outputs the generated encrypted data CDA to the control unit 115. (b) Hash value calculation unit 113 Under the control of the control unit 115, the hash value calculation unit 113 reads the hash shared key KHa from the shared key storage unit 109 and reads the content data DA from the content data storage unit 103. The hash value HDA = Hash (KHa, DA) for the content data DA is calculated using the hash shared key KHa. Here, Hash (KHa, DA) means the hash value of the content data DA calculated by the keyed hash function using the hash shared key KHa. Hash (KHa, DA) may be Hash (KHa, DA) = SHA1 (KHa || DA). Here, SHA1 (x) is the SHA1 hash function value of x, and || indicates concatenation.
The hash value calculation unit 113 outputs the calculated hash value HDA to the control unit 115. (c) Decoding unit 111 The decryption unit 111 receives the encrypted data CDB = Enc (KSb, DB) under the control of the control unit 115, and reads the encryption shared key KSa from the shared key storage unit 109. Using the read encrypted shared key KSa, the encrypted data CDB is decrypted by applying the decryption algorithm D1 to generate a plaintext content data DB'. The decryption algorithm D1 is an algorithm that performs the reverse processing of the encryption algorithm E1.
Here, when the shared key is correctly generated by the shared key generation unit 108 described above, the cryptographic shared key KSa stored in the shared key storage unit 109 and the cryptographic shared key KSb held by the device B200 are It is the same. That is, the same content data DB'as the original content data DB is extracted from the encrypted data CDB generated by the device B200 using the cryptographic shared key KSb, using the cryptographic shared key KSa held by the device A100. Is possible.
The decoding unit 111 outputs the generated content data DB'to the tampering detection unit 114. (d) Manipulation detection unit 114 The tampering detection unit 114 determines whether or not the content data DB'decrypted by the decoding unit 111 has been tampered with. The tampering detection unit 114 receives the hash value HDB under the control of the control unit 115, receives the content data DB'from the decryption unit 111, and reads the hash shared key KHa from the shared key storage unit 109. Using the read hash shared key KHa, the hash value HDB'= Hash (KHa, DB') for the content data DB' Is calculated. Also, the calculated hash value HDB'and the received hash value HDB are compared. If the hash values HDB and HDB'match, it is determined that the hash values have not been tampered with, and the content data DB'is stored in the content data storage unit 103. If they do not match, it is judged that they have been tampered with and the content data DB'is not stored. (5) Content data storage unit 103 The content data storage unit 103 stores the content data DA.
It also holds the content data DB'written by the content data processing unit 130. Here, the content data DA and DB'are digital data such as movies and music. (6) Control unit 115, input unit 116, transmitter / receiver 102 The input unit 116 receives the instruction information operated by the user and outputs it to the control unit 115.
The transmission / reception unit 102 transmits / receives data between the device B200 and the control unit 115. The control unit 115 performs key sharing, mutual authentication, content data transmission / reception, and reproduction processing based on the instruction information from the user received by the input unit 116. When the control unit 115 receives the instruction information indicating the key sharing, the control unit 115 controls the key sharing processing unit 120 so as to generate the secret key KSa for encryption and the shared key KHa for hashing. When the control unit 115 receives the key information KEMA from the key generation unit 106, the control unit 115 receives the key information KEMA, and the transmission / reception unit 102<u style="single">To</u>Through device B2 Send to 00. When the key information KEMB is received via the transmission / reception unit 102, it is output to the key decryption unit 107.
When the control unit 115 receives the instruction information indicating mutual authentication, the control unit 115 causes the authentication unit 112 to perform mutual authentication. When the control unit 115 receives the instruction information indicating the transmission / reception of the content data, the control unit 115 controls the content data processing unit 130 to transmit / receive the content data. When the control unit 115 receives the encrypted data CDA from the encryption unit 110 and the hash value HDA from the hash value calculation unit 113 when transmitting the content data DA, the control unit 115 sends the encrypted data CDA and the hash value HDA to the transmission / reception unit. It is transmitted to the device B200 via 102. When the encrypted data CDB and the hash value HDB are received from the device B200 via the transmission / reception unit 102, the encrypted data CDB is output to the decryption unit 111 and the hash value HDB is output to the tampering detection unit 114.
Further, when the control unit 115 receives the instruction information indicating the reproduction of the content data DA or DB', the control unit 115 outputs the instructed content data to the reproduction unit 117 and controls the reproduction unit 117 to reproduce the content data. (7) Playback unit 117, interface 118 An external device is connected to the interface 118. For example, a TV, monitor, speaker, etc. are connected.
Under the control of the control unit 115, the playback unit 117 generates a video signal, an audio signal, or the like from the content data, and outputs the video signal, the audio signal, or the like to an external device via the interface 118. 1.2 Configuration of device B200 As shown in FIG. 5, the device B200 includes a transmission / reception unit 202, a content data storage unit 203, a shared key storage unit 209, an authentication unit 212, a control unit 215, an input unit 216, a playback unit 217, a monitor 218, a speaker 119, and a key. It is composed of a shared processing unit 220 and a content data processing unit 230.
Like the device A100, the device B200 is a computer system composed of a microprocessor, ROM, RAM, a hard disk unit, a display unit, and the like. A computer program is stored in the RAM or the hard disk unit. The device B200 achieves its function by operating the microprocessor according to the computer program.
Hereinafter, each configuration will be described. (1) Key sharing processing unit 220 As shown in FIG. 5, the key sharing processing unit 220 includes a verification data storage unit 201, a certificate verification unit 204, a private key storage unit 205, a key generation unit 206, a key decryption unit 207, and a shared key generation unit 208. To.
(a) Verification data storage unit 201 The verification data storage unit 201 stores the public key certificate Cert_B of the device B200 and the public key KPC of the CA. The public key certificate Cert_B contains the public key KPB and signature SKPB of device B200. The signature SKPB proves that the public key KPB is a legitimate public key, and is signature data generated by applying the signature generation algorithm S1 to the public key KPB using the CA's private key KSC.
(b) Private key storage 205 The private key storage unit 205 stores the private key KSB corresponding to the public key KPB. (c) Certificate Verification Department 204 The certificate verification unit 204 receives the public key certificate Cert_A of the device A100 under the control of the control unit 215, and retrieves the signature SKPA and the public key KPA included in the certificate Cert_A. Also, the public key KPC is read from the verification data storage unit 201. The signature verification algorithm V1 is applied to the signature SKPA using the read public key KPC and the public key KPA to verify the signature. If the verification result is successful, the public key KPA is output to the key generator 206. If the verification result fails, the subsequent processing ends.
(d) Key generator 206 The key generation unit 206 uses the key encapsulation mechanism to generate the key KB and the key information KEMB. The generated key KB is output to the shared key generation unit 208, and the key information KEMB is output to the control unit 215. (e) Key decryption unit 207 The key decryption unit 207 receives the key information KEMA from the device A100 under the control of the control unit 215, and reads the private key KSB from the private key storage unit 205. Entering the key information KEMA and the private key KSB, the key information KEMB is decrypted to generate the key KA'. The generated key KA'is output to the shared key generator 208.
(f) Shared key generator 208 The shared key generation unit 208 receives the key KB from the key generation unit 206 and the key KA'from the key decryption unit 207. Similar to the shared key generation unit 108 described above, the cryptographic shared key KSb and the hash shared key KHb are generated based on the key KA'and the key KB. The generated shared key is stored in the shared key storage unit 209. (2) Shared key storage 209 The shared key storage unit 209 stores the cryptographic shared key KSb and the hash shared key KHb generated by the key sharing processing unit 220. (3) Certification unit 212 The authentication unit 212 performs mutual authentication with the authentication unit 112 using the cryptographic shared key KSb stored in the shared key storage unit 209. (4) Content data processing unit 230 As shown in FIG. 6, the content data processing unit 230 includes an encryption unit 210, a decryption unit 211, a hash value calculation unit 213, and a falsification detection unit 214.
(a) Encryption unit 210 Under the control of the control unit 215, the encryption unit 210 reads the content data DB from the content data storage unit 203 and reads the encryption shared key KSb from the shared key storage unit 209. The content data DB is encrypted by applying the encryption algorithm E1 using the read shared encryption key KSb, and the encrypted data CDB = Enc (KSb, DB) is generated. The generated encrypted data CDB is output to the control unit 215.
(b) Hash value calculation unit 213 Under the control of the control unit 215, the hash value calculation unit 213 reads the hash shared key KHb from the shared key storage unit 209 and reads the content data DB from the content data storage unit 103. The hash value HDB = Hash (KHb, DB) for the content data DB is calculated using the hash shared key KHb, and the calculated hash value HDB is output to the control unit 115.
(c) Decoding unit 211 When the decryption unit 211 receives the encrypted data CDA = Enc (KSa, DA) under the control of the control unit 215, the decryption unit 211 reads the encryption shared key KSb from the shared key storage unit 209 and uses the encryption shared key KSb. Decrypts the encrypted data CDA and generates plaintext content data DA'. The generated content data DA'is output to the tampering detection unit 214.
(d) Manipulation detection unit 214 The tampering detection unit 214 receives the hash value HDA under the control of the control unit 215, and receives the content data DA'from the decoding unit 211. Also, the hash shared key KHb is read from the shared key storage unit 209. Using the read hash shared key KHb, the hash value HDA'= Hash (KHb, DA') for the content data DA'is calculated.
The calculated hash value HDA'and the received hash value HDA are compared, and if they match, the content data DA'is stored in the content data storage unit 203, and if they do not match, they are not stored. (5) Content data storage unit 203 The content data storage unit 203 stores the content data DB.
It also holds the content data DA'written from the content data processing unit 230. (6) Control unit 215, input unit 216, transmitter / receiver unit 202 The input unit 216 receives the instruction information input from the outside and outputs it to the control unit 215, and the transmission / reception unit 202 transmits / receives data between the device A100 and the control unit 215.
Like the control unit 115, the control unit 215 performs key sharing, mutual authentication, content data transmission / reception, and reproduction processing based on the instruction information from the user received by the input unit 116. (7) Playback unit 217, monitor 218, speaker 219 Under the control of the control unit 215, the playback unit 217 generates a video signal or an audio signal from the content data, outputs the video signal to the monitor 218, and outputs the audio signal to the speaker 219. 2. Key encapsulation mechanism In the key encapsulation mechanism, information is transmitted from the transmitting device to the receiving device, and the receiving device generates a shared key based on the received information.
Here, PSEC-KEM will be described as a key encapsulation mechanism. PSEC-KEM is described in detail in Non-Patent Document 4. (a) The transmitter and receiver have the following PSEC-KEM system parameters. Elliptic curve: E, point of order n on elliptic curve: P Hash function: G, H Since the details of the elliptic curve, the order, and the hash function are described in Non-Patent Document 2, the description thereof will be omitted here.
(b) In PSEC-KEM, the public key pk and private key sk of the receiving device are generated as follows. Element x of Zn is randomly selected to generate W = x * P. Here, Zn is a set consisting of {0,1, ···, n-1}, and x * P is a point on the elliptic curve obtained by adding the points P on the elliptic curve x times. Represents. A method of adding points on an elliptic curve is described in Non-Patent Document 2.
Let the public key pk be W (= x * P) and the private key sk be x. (c) The transmitting device acquires the public key pk of the receiving device, inputs the public key pk into the public key encryption algorithm KemE described below, and outputs the shared key K and the ciphertext C. The public key encryption algorithm KemeE will be described below. Randomly generate Zn elements s.
Generate G (s) and divide G (s) into G (s) = a || K. Here, || represents a bit concatenation, and dividing G (s) into G (s) = a || K means that the upper multiple bits of G (s) are a and the remaining bits are K. Represents that. Generate R = a * P and Q = a * W. The input of the hash function H is (a * P || a * W), and the value of H (a * P || a * W) is applied to the randomly generated element s. Generate v = s XOR H (R || Q). Here, XOR represents an exclusive OR operation.
Output shared key K and ciphertext C = (R, v). The transmitting device transmits the ciphertext C to the receiving device. (d) The receiving device receives the ciphertext C from the transmitting device, and inputs the ciphertext C = (R, v) into the public key decryption algorithm KemD described below, and the public key pk and the private key sk of the receiving device. And output the shared key K. The decoding algorithm KemD will be described below.
Using private key sk (= x) from R = a * P Find Q = x * R = x * (a * P) = a * (x * P) = a * W. s'= v XOR H (R || Q) (= v XOR H (a * P || a * W)) To generate. Generate G (s') and divide G (s') into G (s') = a || K.
Check if R = a * P holds. If it is established, the shared key K is output. (e) Therefore, the transmitting device can input the same value to the hash function G in the public key cryptographic algorithm KemE, and the receiving device can input the same value to the hash function G in the public key decryption algorithm KemD, and the same shared key K can be derived. As a result, the receiving device having the private key can derive the same shared key K as that derived by the transmitting device.
(f) On the other hand, other receiving devices that do not know the private key sk do not know the private key sk (= x) even if they obtain the public key pk and receive the ciphertext C, so R = a. * P to Q = a * W (= (ax) * P) could not be calculated and was derived by the transmitter<u style="single">thing</u>Cannot derive the same shared key K as. This is because other receiving devices that do not know the private key sk can only use the public key pk, so W = x * P of the public key pk is used instead of the private key sk (= x) for the calculation of Q above. To do become. However, in general, finding Q = a * W (= (ax) * P) from a * P and W = x * P is called the Diffie-Hellman problem on an elliptic curve, and the values of a and x. Calculation trouble unless you know It's difficult. (See, for example, Non-Patent Document 5) (g) The above PSEC-KEM algorithm proves that a receiver that does not know the private key cannot obtain the shared key K if the Diffie-Hellman problem on the elliptic curve is difficult. .. Other KEM algorithms of PSEC-KEM, such as RSA-KEM (see Non-Patent Document 3), have been proven to be secure on the basis of similar difficult mathematical problems, and key KA and key KA and other KEM algorithms have been used. You may share the KB. 3. Operation of cryptographic communication system 1 3.1 Shared key generation The operation when the shared keys KS and KH are generated between the devices A100 and the device B200 by using the key encapsulation mechanism will be described with reference to FIG. 7.
The certificate verification unit 204 of the device B200 reads the public key certificate Cert_B from the verification data storage unit 201 (step S501). The control unit 215 transmits the read certificate Cert_B to the device A100 via the transmission / reception unit 202 (step S502). The control unit 115 of the device A100 outputs the public key certificate Cert_B received via the transmission / reception unit 102 to the certificate verification unit 104. Upon receiving the public key certificate Cert_A, the certificate verification unit 104 extracts the signature SKPB and the public key KPB, and reads the public key KPC from the verification data storage unit 101. The signature SKPB is signed and verified using the read public key KPC (step S503). If the verification result indicates that the signature SKPB is correct (YES in step S504), the public key KPB is output to the key generator 106. If the verification result is incorrect (NO in step S504), the process ends.
The key generation unit 106 generates the key KA and the key information KEMA based on the key encapsulation mechanism (step S505). The generated key KA is output to the shared key generation unit 108, and the key information KEMA is output to the control unit 115. Further, the certificate verification unit 104 reads the public key certificate Cert_A of the device A100 from the verification data storage unit 101 (step S506) and outputs the public key certificate Cert_A to the control unit 115.
The control unit 115 transmits the key information KEMA and the public key certificate Cert_A to the device B200 via the transmission / reception unit 102 (step S507). When the control unit 215 of the device B200 receives the key information KEMA and the public key certificate Cert_A, it outputs the key information KEMA to the key decryption unit 207 and outputs the public key certificate Cert_A to the certificate verification unit 204.
The certificate verification unit 204 receives the public key certificate Cert_A, takes out the signature SKPA and the public key KPA, and reads the public key KPC from the verification data storage unit 201. Signature verification of the signature SKPA using the read public key KPC (step S508). If the verification result indicates that the signature SKPA is correct (YES in step S509), the public key KPA is output to the key generator 206. If the verification result indicates that it is incorrect (NO in step S509), the process ends.
The key decryption unit 207 receives the key information KEMA from the control unit 215 and reads the private key KSB from the private key storage unit 205. The key information KEMA is decrypted using the read private key KSB to obtain the key KA'(step S510). Next, the key generation unit 206 generates the key KB and the key information KEMB based on the above-mentioned key encapsulation mechanism (step S511). The generated key KB is output to the shared key generation unit 208, and the key information KEMB is output to the control unit 215. The control unit 215 transmits the key information KEMB to the device A100 via the transmission / reception unit 202 (step S512).
When the control unit 115 of the device A100 receives the key information KEMB, it outputs the key information to the key decryption unit 107. The key decryption unit 107 receives the key information KEMB and reads the private key KSA from the private key storage unit 105. The key information KEMB is decrypted using the read private key KSA to generate the key KB'(step S513). The key decryption unit 107 outputs the key KB'to the shared key generation unit 108. When the shared key generation unit 108 receives the key KA from the key generation unit 106 and receives the KB'from the key decryption unit 107, the shared key generation unit 108 generates a shared encryption key KSa and a shared key KHa for hashing using the key KA and the key KB'. Then, the generated shared key is stored in the shared key storage unit 109 (step S515).
Similarly, when the shared key generation unit 208 receives the key KB from the key generation unit 206 and KA'from the key decryption unit 207, the shared key KSb for encryption and the shared key KHb for hashing are used using the key KB and the key KA'. Is generated (step S516), and the generated shared key is stored in the shared key storage unit 209 (step S517). In this way, when the device A100 and the device B200 are legitimate devices, the key information received from the other device can be correctly decrypted and the key can be obtained, so that the key KA and the key KB can be shared.
Further, if both devices are legitimate devices, each device can generate the same cryptographic shared key KSa and cryptographic shared key KSb, and hash shared key KHa and hash shared key KHb. .. 3.2 Mutual authentication The operation of mutual authentication performed between the device A100 and the device B200 before transmitting the content data will be described with reference to FIG.
First, the authentication unit 112 of the device A100 randomly generates a random number resA (step S531). The generated random number resA is encrypted using the cryptographic shared key KSa to generate chaA (step S532). The generated chaA is transmitted to the device B200 via the transmission / reception unit 102 (step S533). When the authentication unit 212 of the device B200 receives chaA via the transmission / reception unit 202, it decrypts chaA using the shared encryption key KSb and obtains resA'(step S534). Next, the authentication unit 212 randomly generates a random number resB (step S535). The generated resB is encrypted using the cryptographic shared key KSb to generate chaB (step S536). The generated chaB and the decrypted resA'are transmitted to the device A100 (step S537).
Upon receiving chaB and resA', the authentication unit 112 of the device A100 determines whether or not the resA generated in step S531 and the received resA' match (step S538). If they do not match (NO in step S538), it is determined that authentication has failed, and the subsequent processing ends. If they match (YES in step S538), it is considered that the authentication was successful, and the subsequent processing is continued. The authentication unit 112 decrypts chaB using the cryptographic shared key KSa and generates resB'(step S539). The generated resB'is transmitted to the device B200 (step S540).
The authentication unit 212 of the device B200 receives resB'and determines whether or not the received resB' matches the resB generated in step S535 (step S541). If they do not match (NO in step S541), it is considered that authentication has failed and the process ends. If they match (YES in step S541), the subsequent processing is continued. As described above, the device A100 and the device B200 mutually authenticate the device. At this time, if the key sharing is performed correctly and the cryptographic shared key KSa and the cryptographic shared key KSb are the same, it is authenticated that the remote device is a device that can correctly share the key and is a legitimate device. Can be done. 3.3 Sending content data The operation when transmitting and receiving the content data DA and DB between the device A100 and the device B200 will be described with reference to FIG.
Under the control of the control unit 115, the encryption unit 110 of the device A100 reads the content data DA from the content data storage unit 103 and reads the encryption shared key KSa from the shared key storage unit 109. The content data DA is encrypted using the read encryption shared key KSa to generate the encrypted data CDA (step S561). The generated encrypted data CDA is output to the control unit 115.
Further, the hash value calculation unit 113 reads the content data DA from the content data storage unit 103, reads the hash shared key KHa from the shared key storage unit 109, and reads the hash shared key KHa under the control of the control unit 115. Is used to calculate the hash value HDA for the content data DA (step S562). The calculated hash value HDA is output to the control unit 115.
When the control unit 115 receives the encrypted data CDA and the hash value HDA, the control unit 115 transmits the encrypted data CDA and the hash value HDA to the device B200 via the transmission / reception unit 102 (step S563). The decryption unit 211 of the device B200 receives the encrypted data CDA from the control unit 215 and reads the encryption shared key KSb from the shared key storage unit 209. The encrypted data CDA is decrypted using the read encrypted shared key KSb to generate plaintext content data DA'(step S564). The content data DA'is output to the tampering detection unit 214.
When the tampering detection unit 214 receives the hash value HDA from the control unit 215 and the content data DA'from the decoding unit 211, the tampering detection unit 214 reads the hash shared key KHb from the shared key storage unit 209. The hash value HDA'for the content data DA'is generated using the read hash shared key KHb (step S565). It is determined whether or not the generated hash value HDA'and the received hash value HDA match (step S566), and if they do not match (NO in step S566), it is considered to have been tampered with and the process ends. .. If they match (YES in step S566), it is considered that they have not been tampered with, and the generated content data DA'is stored in the content data storage unit 203 (step S567).
Further, the encryption unit 210 reads the content data DB from the content data storage unit 203 and reads the encryption shared key KSb from the shared key storage unit 209 under the control of the control unit 215. The content data DB is encrypted using the cryptographic shared key KSb to generate the encrypted data CDB (step S568). The generated encrypted data CDB is output to the control unit 215. Further, the hash value calculation unit 213 reads the content data DB from the content data storage unit 203 and reads the hash shared key KHb from the shared key storage unit 209 under the control of the control unit 215. Using the read hash shared key KHb, a hash value HDB for the content data DB is generated (step S569). The generated hash value HDB is output to the control unit 215.
The control unit 215 transmits the encrypted data CDB and the hash value HDB to the device A100 via the transmission / reception unit 202 (step S570). Upon receiving the encrypted data CDB, the decryption unit 111 of the device A100 reads the encryption shared key KSa from the shared key storage unit 109 under the control of the control unit 115. The encrypted data DB is decrypted using the read encrypted shared key KSa to generate a flat content data DB'(step S571). Output the content data DB'to the tampering detection unit 114.
Further, the tampering detection unit 114 receives the content data DB'from the decoding unit 111 under the control of the control unit 115, and reads the hash shared key KHa from the shared key storage unit 109. Using the read hash shared key KHa, the hash value HDB'for the content data DB' is calculated (step S572). It is determined whether or not the calculated hash value HDB'and the received hash value HDB match (step S573), and if they do not match (NO in step S573), it is considered that the hash value has been tampered with and the subsequent processing is terminated. .. If they match (step S573), it is considered that they have not been tampered with, and the content data DB'is stored in the content data storage unit 103 (step S574). 4. Other variants Although the present invention has been described based on the above-described embodiment, it goes without saying that the present invention is not limited to the above-described embodiment. The following cases are also included in the present invention. (1) In the present embodiment, the content data is transmitted from the device A100 to the device B200, and from the device B200 to the device A100, but it may be transmitted from either one to the other. (2) In the present embodiment, key sharing, mutual authentication, and content data transmission are continuously described, but some processing may be included in between. For example, confirmation processing of device functions (music playback function, movie playback function, broadcast reception function, etc.) may be included. (3) The public key certificate, public key, and content data are stored in different storage units, but they may be stored in the same storage unit, or the data is stored separately in multiple storage units. It may be done. (4) After the content data is transmitted and received, it is stored in the data storage unit. If the content data is image data, it may be output to the screen, and if it is music data, it may be output from the speaker. (5) Although the public key certificate includes the public key and the signature for the public key, other data such as ID information may be added to the public key. Further, the data to be signed may be a combination of the public key and other data, and may be concatenated with ID information, for example. (6) In the present embodiment, the generation of the cryptographic shared key KS and the hash shared key KH divides the hash value for the concatenated data of the keys KA and KB, but the present invention is not limited to this.
The result of the exclusive OR operation of the keys KA and KB may be divided, or may be generated based on at least a part of both the keys KA and KB. (7) The algorithm used for calculating the hash value and generating the ciphertext is not limited to the algorithm described in this embodiment, and of course, it may be calculated using another algorithm. (8) The present invention may be the method shown above. Further, it may be a computer program that realizes these methods by a computer, or it may be a digital signal composed of the computer program.
The present invention also relates to a computer-readable recording medium such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray Disc). ), It may be recorded in a semiconductor memory or the like. Further, it may be the computer program or the digital signal recorded on these recording media.
Further, the present invention may transmit the computer program or the digital signal via a telecommunication line, a wireless or wired communication line, a network typified by the Internet, or the like. Further, the present invention is a computer system including a microprocessor and a memory, in which the memory stores the computer program, and the microprocessor may operate according to the computer program.
Further, it is carried out by another independent computer system by recording and transferring the program or the digital signal on the recording medium, or by transferring the program or the digital signal via the network or the like. May be. (9) The above-described embodiment and the above-mentioned modification may be combined. 5. Summary As described above, the present invention is a cryptographic communication system that performs cryptographic communication using a key shared between the first and second devices, and the first device uses the public key of the second device. The first key is encrypted to generate the first encryption key data, the generated first encryption key data is transmitted to the second device, and the second encryption key data is received from the second device. , The second encryption key data is decrypted using the private key of the first device to obtain the second key, and based on the first key and the second key, between the second device and the second device. The first encryption key used for communication is generated, and the second device encrypts the third key using the public key of the first device to generate the second encryption key data, and the generated second encryption. The encrypted key data is transmitted to the first device, the first encrypted key data is received from the first device, and the first encrypted key data is decrypted using the private key of the second device. The four keys are acquired, and a second encryption key used for communication with the first device is generated based on the third key and the fourth key.
Further, the present invention is a communication device that performs encrypted communication using a key shared with a communication partner device, and uses a second public key corresponding to a second private key held by the partner device to obtain a first key. An encryption key data generation means that encrypts to generate the first encryption key data and transmits the generated first encryption key data to the other device, and the other device uses the first public key of the communication device. The second encryption key data generated by encrypting the second key is received from the other device, and the second encryption key data is decrypted using the first private key of the communication device to obtain the third key. Encryption key Data decryption means, encryption key generation means for generating an encryption key based on the first key and the third key, and the other device perform encrypted communication using the encryption key. It is provided with a means of communication to perform.
According to this configuration, a new encryption key is generated from the two shared keys, so even if the shared key is exposed by an unauthorized user, the encryption key used for sending and receiving data is protected. , The data to be communicated can be protected. Further, in the conventional key sharing, it is necessary to securely hold the two shared keys, but in the present invention, it is sufficient to keep only the encryption key securely, and the memory usage can be reduced. You can. Further, the validity of the remote device can be indirectly authenticated depending on whether the remote device can correctly decrypt the key from the encrypted key data and whether the encryption key can be correctly generated.
Here, the encryption key generation means further generates a hash key based on the first key and the third key, and the communication means uses the hash key to transmit to the other device. A hash value calculation unit that calculates a hash value for data, an encryption unit that encrypts the transmission data using the encryption key to generate encrypted data, and a transmission unit that transmits the hash value and the encrypted data. And may be provided.
Further, the encryption key generation means further generates a hash key based on the first key and the third key, and the communication means encrypts the data using the encryption key held by the other device. The receiving unit that receives the encrypted data and the first hash value calculated by using the hash key held by the other device for the data from the other device, and the encrypted data received are encrypted. A decoding unit that decodes using a key to generate received data in plain text, and a second hash value calculated for the received data using the hash key, and the calculated second hash value and the first hash value. The communication device further includes a determination means for determining whether or not the determination means match, and further uses the received data when determining that the determination means matches, and receives the reception when determining that they do not match. A usage means for suppressing the use of data may be provided.
According to this configuration, the device on the sending side of the data sends a hash value calculated using the shared hash key to the original data, and the device on the receiving side sends the shared hash to the received data. Since the hash value is calculated using the key and compared, it is possible to detect whether or not the data has been tampered with. Further, since the same hash value cannot be calculated unless the devices sharing the key are output from each other, only the data of the partner device that shares the key and indirectly authenticates can be used.
Here, the communication device may further include an authentication means that authenticates with the other device using the encryption key. Further, the authentication means generates a first authentication value, encrypts the first authentication value using the encryption key to generate an encrypted first authentication value, and uses the generated encrypted first authentication value as described above. The second authentication value is transmitted to the other device, and the second authentication value generated by decrypting the encrypted first authentication value using the encryption key held by the other device is received from the other device, and the received second authentication value and the received second authentication value are used. The first certification<u style="single">value</u>The communication device may further include a communication means for communicating with the other device when it is determined whether or not the items match with each other and the determination result indicates that they match.
Further, the authentication means receives an encrypted third authentication value generated by encrypting the third authentication value from the other device using the encryption key held by the other device, and receives the encrypted third authentication value. The authentication value is decrypted using the encryption key to generate a fourth authentication value, and the generated fourth authentication value is transmitted to the other device, and the communication means uses the fourth authentication value and the third authentication. Communication may be performed when the other device determines that the values match by comparing with the values.
According to this configuration, it is possible to authenticate that the device correctly shares the key. Here, the encryption key data generation means encrypts the first key to generate the first encryption key data based on the key encapsulation mechanism, and the encryption key data decryption means performs key decryption. Based on the mechanism, the second encryption key data may be decrypted and the third key may be acquired.
According to this configuration, it is guaranteed that the security can be proved based on a difficult mathematical problem by using the key encapsulation mechanism, so that the security of the communication device of the present invention is guaranteed. it can.
The present invention can be used business-wise, iteratively, and continuously in the software industry in which copyrighted works such as movies and music provide software such as digitized contents and computer programs. Further, the cryptographic communication system and the communication device of the present invention can be produced and sold in the manufacturing industry of electric appliances and the like.
<figref num="1">The overall configuration of the cryptographic communication system 1 is shown.</figref><figref num="2">It is a block diagram which shows the structure of the apparatus A100 and the apparatus B200.</figref><figref num="3">It is a block diagram which shows the structure of the key sharing processing part 120 of the apparatus A100.</figref><figref num="4">It is a block diagram which shows the structure of the content data processing unit 130 of the apparatus A100.</figref><figref num="5">It is a block diagram which shows the structure of the key sharing processing part 220 of the apparatus B200.</figref><figref num="6">It is a block diagram which shows the structure of the content data processing unit 230 of the apparatus B200.</figref><figref num="7">It is a flowchart which shows the operation of the key sharing processing by the key sharing processing unit.</figref><figref num="8">It is a flowchart which shows the operation of mutual authentication by an authentication part.</figref><figref num="9">It is a flowchart which shows the operation of the transmission / reception of the content data by the content data processing unit.</figref>
Code description
101 Verification data storage 102 Transmitter / receiver 103 Content data storage 104 Certificate Verification Department 105 Private key storage 106 Key generator 107 Key decryption unit 108 Shared key generator 109 Shared key storage 110 Encryption section 111 Decryptor 112 Certification Department 113 Hash value calculation unit 114 Manipulation detection unit 115 Control unit 116 Input section 117 Playback section 118 interface 119 speaker 120 Key sharing processing unit 130 Content data processing department 201 Verification data storage 202 Transmitter / receiver 203 Content data storage 204 Certificate Verification Department 205 Private key storage 206 Key generator 207 Key decryption unit 208 Shared key generator 209 Shared key storage 210 Encryption section 211 Decryptor 212 Certification Department 213 Hash value calculation unit 214 Manipulation detection unit 215 Control unit 216 Input section 217 Playback section 218 monitor 219 speaker 220 Key sharing processing unit 230 Content data processing department
Every citation, both waysCites: the store holds 22 of 23
| Document | Relation | Office | Cited during |
|---|---|---|---|
| JP2000354031A | Cites | Japan | Search report |
| JP2001217828A | Cites | Japan | Search report |
| JP2002026899A | Cites | Japan | Search report |
| JP2002514841A | Cites | Japan | Search report |
| JP2003052029A | Cites | Japan | Examiner |
| JP2003099676A | Cites | Japan | Examiner |
| JP2005503717A | Cites | Japan | Search report |
| JPH06315026A | Cites | Japan | Search report |
| JPH09312643A | Cites | Japan | Search report |
| JPH0974408A | Cites | Japan | Examiner |
| JPH10233771A | Cites | Japan | Examiner |
| JP06315026A | Cites | Japan | – |
| JP09312643A | Cites | Japan | – |
| JP2000354031A | Cites | Japan | – |
| JP2001217828A | Cites | Japan | – |
| JP2002026899A | Cites | Japan | – |
| JP2002514841A | Cites | Japan | – |
| JP2005503717A | Cites | Japan | – |
| JP09074408A | Cites | Japan | – |
| JP2003052029A | Cites | Japan | – |
| JP2003099676A | Cites | Japan | – |
| JP10233771A | Cites | Japan | – |
| 安斉 潤 他,対話鍵とその生成方法,,暗号と情報セキュリティシンポジウム(SCIS2003) 講演論文集,電子情報通信学会 情報セキュリティ研究専門委員会,2003年 1月,4B-4 | Non-patent | – | – |
| Victor Shoup,A Proposal for an ISO Standard for Public Key Encryption(version 2.1),[online],2000年12月20日,http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.77.1438 | Non-patent | – | – |
| 坂巻 佳壽美,脱ビギナーMS=DOS+C言語,エレクトロニクスライフ,日本放送出版協会,1990年 9月 1日,第9月号巻,p.118~123 | Non-patent | – | – |
10 members in 6 offices
Priority claims9
| Document | Office | Kind | Date |
|---|---|---|---|
| 2003356073 | Japan | A | |
| 2003356073 | Japan | A | |
| 2003356073 | Japan | – | |
| 2004015752 | Japan | W | |
| 2004015752 | Japan | W | |
| 20032003356073 | – | – | – |
| 2004015752 | – | – | – |
| JP20030356073 | – | – | – |
| WO2004JP15752 | – | – | – |
Members10
| Document | Office | Kind | |
|---|---|---|---|
| WO2005039100A1 | World Intellectual Property Organization (WIPO) | A1 | |
| EP1690365A1 | European Patent Office (EPO) | A1 | |
| CN1868163A | China | A | |
| KR20070019643A | Republic of Korea | A | |
| US2007150735A1 | United States of America | A1 | |
| JP2007529162A | Japan | A | |
| US7813512B2 | United States of America | B2 | |
| CN1868163B | China | B | |
| JP4771946B2This record | Japan | B2 | |
| KR101087824B1 | Republic of Korea | B1 |
18 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Written notification of registration of transferJAPANESE INTERMEDIATE CODE: R350R350 | R350 | |
| Request for change of ownership or part of ownershipJAPANESE INTERMEDIATE CODE: R313113S111 | S111 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 4771946
- Publication, DOCDB
- 4771946
- Publication, EPODOC
- JP4771946B
- Application
- 2006519292
- Application, DOCDB
- 2006519292
- Application, EPODOC
- JP20060519292
Titles2
- Japanese
- 暗号通信システム、通信装置
- English
- Cryptographic communication system, communication device
Classification
- CPC, 5
- H04L9/30
- H04L9/0844
- H04L2209/605
- H04L2209/80
- H04L9/08
- IPC, 2
- H04L9 08
- H04L9 30