(57)【要約】【課題】平文データに対するデジタル署名の生成において、平文データが露出することを防止する。【解決手段】一つの実施形態によれば、暗号化データ生成装置は、第１のハッシュ値生成部と、暗号化部と、送信部と、を備える。第１のハッシュ値生成部は、平文データから、所定のハッシュ関数によって第１のハッシュ値を生成する。暗号化部は、平文データを暗号化して、暗号化データを生成する。送信部は、第１のハッシュ値と、暗号化データとを外部装置に送信する。【選択図】図１
2020022057.tif 000002
【特許請求の範囲】
【請求項１】
平文データから、所定のハッシュ関数によって第１のハッシュ値を生成する第１のハッシュ値生成部と、
前記平文データを暗号化して、暗号化データを生成する暗号化部と、
前記第１のハッシュ値と、前記暗号化データとを外部装置に送信する送信部と、
を備える暗号化データ生成装置。
【請求項２】
前記平文データは、ハードディスク装置用のファームウェアである、
請求項１に記載の暗号化データ生成装置。
【請求項３】
前記暗号化部は、共通鍵方式で前記平文データを暗号化する、
請求項１または２に記載の暗号化データ生成装置。
【請求項４】
前記暗号化データのデータ長が所定のデータであるか否かを判断し、前記暗号化データのデータ長が所定のデータ長ではないと判断した場合に、前記所定のデータ長との差異を埋めるパディングデータを前記暗号化データに追加し、前記暗号化データに関する情報を含むメタデータと、前記パディングデータを追加済みの前記暗号化データとを結合した結合データを生成する第１の結合部、をさらに備え、
前記送信部は、さらに、前記結合データを前記外部装置に送信する、
請求項１から３のいずれか１項に記載の暗号化データ生成装置。
【請求項５】
前記メタデータはさらに、前記第１のハッシュ値を含む、
請求項４に記載の暗号化データ生成装置。
【請求項６】
平文データから生成された第１のハッシュ値から、所定のハッシュ関数によって第２のハッシュ値を生成する第２のハッシュ値生成部と、
前記第２のハッシュ値から、前記平文データに対するデジタル署名を生成するデジタル署名生成部と、
を備えるデジタル署名生成装置。
【請求項７】
一対の秘密鍵と公開鍵とを生成する鍵生成部と、
前記公開鍵を出力する出力部と、をさらに備え、
前記デジタル署名生成部は、前記秘密鍵により、前記第２のハッシュ値を暗号化して、前記デジタル署名を生成する、
請求項６に記載のデジタル署名生成装置。
【請求項８】
平文データに対するデジタル署名と、前記平文データを暗号化した暗号化データとを取得する取得部と、
前記デジタル署名と、前記暗号化データとを結合して、デジタル署名付き暗号化データを生成する第２の結合部と、
を備えるデジタル署名付きデータ生成装置。
【請求項９】
前記暗号化データは、前記暗号化データの本文と、前記本文のデータ長と所定のデータ長との差異を埋めるパディングデータとを含み、
前記取得部は、前記暗号化データに関する情報を含むメタデータと、前記暗号化データと、が結合された結合データを取得し、
前記第２の結合部は、前記結合データに含まれる前記メタデータまたは前記パディングデータの一部または全てを、前記デジタル署名に置換して、前記デジタル署名付き暗号化データを生成する、
請求項８に記載のデジタル署名付きデータ生成装置。
【請求項１０】
暗号化データ生成装置と、デジタル署名付きデータ生成装置と、デジタル署名生成装置とを備え、
前記暗号化データ生成装置は、
平文データから、所定のハッシュ関数によって第１のハッシュ値を生成する第１のハッシュ値生成部と、
前記平文データを暗号化して、暗号化データを生成する暗号化部と、
前記第１のハッシュ値と、前記暗号化データとを前記デジタル署名付きデータ生成装置に送信する第１の送信部と、
を備え、
前記デジタル署名付きデータ生成装置は、
前記暗号化データ生成装置から前記第１のハッシュ値と、前記暗号化データとを取得する第１の取得部と、
前記第１のハッシュ値を前記デジタル署名生成装置に送信する第２の送信部と、
前記デジタル署名生成装置から前記平文データに対するデジタル署名を取得する第２の取得部と、
前記デジタル署名と、前記暗号化データとを結合して、デジタル署名付き暗号化データを生成する第２の結合部と、
を備え、
前記デジタル署名生成装置は、
前記デジタル署名付きデータ生成装置から前記第１のハッシュ値を取得する第３の取得部と、
前記第１のハッシュ値から、所定のハッシュ関数によって第２のハッシュ値を生成する第２のハッシュ値生成部と、
前記第２のハッシュ値から、前記平文データに対する前記デジタル署名を生成するデジタル署名生成部と、
生成された前記デジタル署名を前記デジタル署名付きデータ生成装置に送信する第３の送信部と、を備える、
デジタル署名付きデータ生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、暗号化データ生成装置、デジタル署名生成装置、デジタル署名付きデータ生成装置、およびデジタル署名付きデータ生成システムに関する。
【背景技術】
【０００２】
従来から、平文データをハッシュ関数に入力することで得られたハッシュ値から、デジタル署名を生成する技術が知られている。
【０００３】
しかしながら、平文データを生成する装置と、デジタル署名を生成する装置とが異なる場合がある。このような場合に、平文データが露出することを防止するために、装置間での平文データの受け渡しを回避することについてのニーズがあった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許４５７５２５１号公報
【特許文献２】特許６１６７９９０号公報
【特許文献３】特許３８５４８０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一つの実施形態は、平文データに対するデジタル署名の生成において、平文データが露出することを防止することを目的とする。
【課題を解決するための手段】
【０００６】
一つの実施形態によれば、暗号化データ生成装置は、第１のハッシュ値生成部と、暗号化部と、送信部と、を備える。第１のハッシュ値生成部は、平文データから、所定のハッシュ関数によって第１のハッシュ値を生成する。暗号化部は、平文データを暗号化して、暗号化データを生成する。送信部は、第１のハッシュ値と、暗号化データとを外部装置に送信する。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態にかかるデジタル署名付きデータ生成システムの全体構成の一例を示す図である。
【図２】図２は、実施形態にかかる暗号化データ生成処理の流れの一例を示すフローチャートである。
【図３】図３は、実施形態にかかる署名付きデータ生成処理の流れの一例を示すフローチャートである。
【図４】図４は、実施形態にかかるデジタル署名生成処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、実施形態にかかる暗号化データ生成装置、デジタル署名生成装置、デジタル署名付きデータ生成装置、およびデジタル署名付きデータ生成システムを詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【０００９】
図１は、実施形態にかかるデジタル署名付きデータ生成システムＳの全体構成の一例を示す図である。本実施形態のデジタル署名付きデータ生成システムＳ（以下、署名付きデータ生成システムＳという）は、ＰＣ（Personal  Computer）１と、署名付きデータ生成サーバ２と、署名生成サーバ３とを備える。また、署名付きデータ生成サーバ２と、署名生成サーバ３とを総称して署名付きデータ生成部２００ともいう。また、本実施形態において、単に「署名」という場合、デジタル署名（電子署名）を指すものとする。
【００１０】
ＰＣ１と、署名付きデータ生成サーバ２と、署名生成サーバ３とは、ＣＰＵなどの制御装置と、ＲＯＭ（Read  Only  Memory）やＲＡＭなどの記憶装置と、ＨＤＤ、フラッシュメモリなどの外部記憶装置と、をそれぞれ備えており、通常のコンピュータを利用したハードウェア構成となっている。また、ＰＣ１と、署名付きデータ生成サーバ２と、署名生成サーバ３とは、ＬＡＮ（Local  Area  Network）などのネットワークを介して接続している。
【００１１】
ＰＣ１は、第１のハッシュ値生成部１１と、暗号化部１２と、第１の結合部１３と、第１の送信部１４と、記憶部１５とを備える。ＰＣ１は、本実施形態における暗号化データ生成装置の一例である。また、ＰＣ１は、署名付きデータ生成システムＳにおける暗号化データ生成部ともいう。
【００１２】
記憶部１５は、平文ファームウェア４１と、暗号化鍵５とを記憶する。記憶部１５は、例えばＨＤＤやフラッシュメモリ等の記憶装置である。
【００１３】
平文ファームウェア４１は、ハードディスク装置用のファームウェアであり、暗号化されていない状態であるものとする。平文ファームウェア４１は、本実施形態における平文データの一例である。
【００１４】
暗号化鍵５は、共通鍵方式の暗号鍵であり、予め定められたものとする。
【００１５】
第１のハッシュ値生成部１１は、平文ファームウェア４１から、所定のハッシュ関数によって第１のハッシュ値６を生成する。具体的には、第１のハッシュ値生成部１１は、平文ファームウェア４１を所定のハッシュ関数に入力して、第１のハッシュ値６を算出（生成）する。本実施形態においては、所定のハッシュ関数は、例えばＳＨＡ−２５６とするが、これに限定されるものではない。
【００１６】
暗号化部１２は、暗号化鍵５により共通鍵方式で平文ファームウェア４１を暗号化して、暗号化ファームウェア４２を生成する。暗号化ファームウェア４２は、本実施形態における暗号化データの一例である。
【００１７】
本実施形態においては、平文ファームウェア４１は共通鍵方式で暗号化されるため、暗号化鍵５は、後述の署名付きデータ生成サーバ２から出力された署名付き暗号化ファームウェア４３の復号にも用いられる。暗号化鍵５は、署名付き暗号化ファームウェア４３のダウンロード先であるハードディスク装置に予め保存されても良いし、署名付き暗号化ファームウェア４３とは別の手段で、ハードディスク装置に送信されても良い。また、暗号化鍵５は、ハードディスク装置のユーザによって手動でハードディスク装置に登録されるものとしても良い。
【００１８】
また、第１の結合部１３は、暗号化ファームウェア４２に、メタデータ９を結合する。以下、暗号化ファームウェア４２と、メタデータ９とを結合したデータを、結合データ４０という。メタデータ９は、暗号化ファームウェア４２に関する情報を含むデータであり、一例として、暗号化ファームウェア４２を特定可能な識別情報、およびデジタル署名の有無を示す情報を含む。第１の結合部１３がメタデータ９を結合する時点では、暗号化ファームウェア４２にデジタル署名は付加されていないため、メタデータ９には、デジタル署名が付加されていないことを示す情報が含まれる。メタデータ９は、予め記憶部１５に保存されているものとしても良いし、第１の結合部１３が生成するものとしても良い。
【００１９】
また、第１の結合部１３は、暗号化ファームウェア４２のデータ長が所定のデータ長であるか否かを判断し、暗号化ファームウェア４２のデータ長が所定のデータ長ではないと判断した場合に、所定のデータ長との差異を埋めるパディングデータを暗号化ファームウェア４２に追加（結合）する。例えば、所定のデータ長は、ハードディスクの１セクタのサイズ（例えば、５１２バイト）の倍数とする。第１の結合部１３は、暗号化ファームウェア４２のデータ長が５１２バイトの倍数ではない場合に、パディングデータ（例えば“０”）を追加して、暗号化ファームウェア４２とパディングデータとデータ長の合計を５１２バイトの倍数にする。また、第１の結合部１３は、メタデータ９に対しても、所定のデータ長との差異を埋めるパディングデータを追加しても良い。
【００２０】
第１の送信部１４は、第１のハッシュ値６と、暗号化ファームウェア４２とを署名付きデータ生成サーバ２に送信する。より詳細には、第１の送信部１４は、パディングデータを追加済みの暗号化ファームウェア４２とメタデータ９とを含む結合データ４０と、第１のハッシュ値６と、を署名付きデータ生成サーバ２に送信する。
【００２１】
署名付きデータ生成サーバ２は、第１の取得部２１と、第２の送信部２２と、第２の取得部２３と、第２の結合部２４と、第１の出力部２５と、を含む。署名付きデータ生成サーバ２は、本実施形態におけるデジタル署名付きデータ生成装置および外部装置の一例である。
【００２２】
第１の取得部２１は、ＰＣ１から、暗号化ファームウェア４２と、第１のハッシュ値６と、を取得する。より詳細には、第１の取得部２１は、暗号化ファームウェア４２とメタデータ９とを含む結合データ４０と、第１のハッシュ値６とを取得する。
【００２３】
第２の送信部２２は、第１の取得部２１によって取得された第１のハッシュ値６を、署名生成サーバ３に送信する。
【００２４】
第２の取得部２３は、署名生成サーバ３によって生成されたデジタル署名８を取得する。デジタル署名８は、平文ファームウェア４１に対するデジタル署名である。デジタル署名の生成の手法の詳細については後述する。第１の取得部２１と第２の取得部２３とを特に区別しない場合には、単に取得部という。
【００２５】
第２の結合部２４は、デジタル署名８と、暗号化ファームウェア４２と、メタデータ９を結合して、署名付き暗号化ファームウェア４３を生成する。
【００２６】
本実施形態の署名付き暗号化ファームウェア４３は、メタデータ９と、デジタル署名８と、暗号化ファームウェア４２と、を含む。署名付き暗号化ファームウェア４３は、本実施形態におけるデジタル署名付き暗号化データの一例である。
【００２７】
また、第２の結合部２４は、メタデータ９を暗号化ファームウェア４２に結合する前に、メタデータ９の内容を更新する。例えば、第２の結合部２４は、暗号化ファームウェア４２がデジタル署名８を有していることを示す情報、および、署名付き暗号化ファームウェア４３における、デジタル署名８と、暗号化ファームウェア４２とを識別する情報（例えば、署名付き暗号化ファームウェア４３におけるデジタル署名８と暗号化ファームウェア４２の記載範囲を示す情報）をメタデータ９に追加する。
【００２８】
第１の出力部２５は、第２の結合部２４によって生成された署名付き暗号化ファームウェア４３を出力する。出力された署名付き暗号化ファームウェア４３は、例えば、インターネット等のネットワークを介してハードディスク装置にダウンロードされる。また、署名付き暗号化ファームウェア４３の出力の手法はこれに限定されるものではなく、第１の出力部２５は、署名付き暗号化ファームウェア４３を、記憶媒体に保存（出力）しても良い。
【００２９】
署名生成サーバ３は、鍵生成部３１と、第３の取得部３２と、デジタル署名生成部３３と、第３の送信部３４と、第２の出力部３５と、記憶部３６とを備える。署名生成サーバ３は、本実施形態におけるデジタル署名生成装置の一例である。
【００３０】
鍵生成部３１は、一対の秘密鍵７１と公開鍵７２とを生成し、記憶部３６に保存する。
【００３１】
第３の取得部３２は、署名付きデータ生成サーバ２から第１のハッシュ値６を取得する。
【００３２】
デジタル署名生成部３３は、第２のハッシュ値生成部３３１を備える。第２のハッシュ値生成部３３１は、第１のハッシュ値６から、所定のハッシュ関数によって第２のハッシュ値を生成する。より詳細には、第２のハッシュ値生成部３３１は、第１のハッシュ値６を所定のハッシュ関数に入力して、第２のハッシュ値を算出（生成）する。第２のハッシュ値生成部３３１が用いるハッシュ関数は、ＰＣ１の第１のハッシュ値生成部１１によって用いられるハッシュ関数と同一でも良いし、異なるものでも良い。なお、第２のハッシュ値生成部３３１をデジタル署名生成部３３とは別個の構成としても良い。
【００３３】
また、デジタル署名生成部３３は、記憶部３６に保存された秘密鍵７１により第２のハッシュ値を暗号化して、平文ファームウェア４１に対するデジタル署名８を生成する。デジタル署名生成部３３は、例えば、ＲＳＡＳＳＡ−ＰＫＣＳ１−ｖ１＿５等の公知の暗号化のアルゴリズムによってデジタル署名８を生成する。
【００３４】
第３の送信部３４は、デジタル署名生成部３３によって生成されたデジタル署名８を、署名付きデータ生成サーバ２に送信する。
【００３５】
第２の出力部３５は、デジタル署名生成部３３で第２のハッシュ値を暗号化するために使用された秘密鍵７１と対になる公開鍵７２を、出力する。例えば、第２の出力部３５は、インターネット等のネットワークを介して公開鍵７２をハードディスク装置に送信する。公開鍵７２の出力の手法は、これに限定されるものではなく、例えば、第２の出力部３５は、公開鍵７２を記憶媒体に保存（出力）しても良いし、インターネット等のネットワーク上に公開鍵７２を公開しても良い。あるいは、第２の出力部３５によって出力された公開鍵７２は、出荷前のハードディスク装置に予め保存されても良い。
【００３６】
記憶部３６は、鍵生成部３１によって生成された秘密鍵７１と公開鍵７２とを記憶する。記憶部３６は、例えば、回路の難読化または物理解析対策が施された耐タンパ性を有する記憶装置である。耐タンパの手法は、公知の技術を採用可能である。
【００３７】
次に、以上のように構成された本実施形態のＰＣ１による暗号化データ生成処理について説明する。
【００３８】
図２は、本実施形態にかかる暗号化データ生成処理の流れの一例を示すフローチャートである。
【００３９】
第１のハッシュ値生成部１１は、記憶部１５に記憶された平文ファームウェア４１を所定のハッシュ関数に入力して演算して、平文ファームウェア４１から、第１のハッシュ値６を生成する（Ｓ１）。
【００４０】
次に、暗号化部１２は、記憶部１５に記憶された暗号化鍵５によって、平文ファームウェア４１を暗号化する（Ｓ２）。
【００４１】
そして、第１の結合部１３は、暗号化ファームウェア４２のデータ長が５１２バイトの倍数であるか否かを判断し、暗号化ファームウェア４２のデータ長が５１２バイトの倍数ではない場合、“０”等のパディングデータを暗号化ファームウェア４２に追加する（Ｓ３）。
【００４２】
次に、第１の結合部１３は、パディングデータを追加した暗号化ファームウェア４２に、メタデータ９を結合して、結合データ４０を生成する（Ｓ４）。また、暗号化ファームウェア４２のデータ長が５１２バイトの倍数である場合は、第１の結合部１３は、暗号化ファームウェア４２にパディングデータを追加しなくとも良い。この場合、第１の結合部１３は、パディングデータを追加していない暗号化ファームウェア４２に、メタデータ９を結合する。
【００４３】
第１の送信部１４は、署名付きデータ生成サーバ２に対して、結合データ４０と第１のハッシュ値６とを対応付けて送信する（Ｓ５）。
【００４４】
次に、以上のように構成された本実施形態の署名付きデータ生成サーバ２によるデジタル署名付きデータ生成処理について説明する。
【００４５】
図３は、本実施形態にかかる署名付きデータ生成処理の流れの一例を示すフローチャートである。
【００４６】
第１の取得部２１は、暗号化ファームウェア４２とメタデータ９とを含む結合データ４０と、第１のハッシュ値６とを取得する（Ｓ１１）。
【００４７】
次に、第２の送信部２２は、第１の取得部２１によって取得された第１のハッシュ値６を、署名生成サーバ３に送信する（Ｓ１２）。
【００４８】
そして、第２の取得部２３は、Ｓ１２で送信した第１のハッシュ値６に基づいて生成されたデジタル署名８を、署名生成サーバ３から取得する（Ｓ１３）。
【００４９】
次に、第２の結合部２４は、第１の取得部２１によって取得されたメタデータ９を変更する（Ｓ１４）。例えば、第２の結合部２４は、暗号化ファームウェア４２がデジタル署名８を有していることと、署名付き暗号化ファームウェア４３におけるデジタル署名８と暗号化ファームウェア４２の記載範囲を示す情報と、をメタデータ９に追加する。
【００５０】
次に、第２の結合部２４は、暗号化ファームウェア４２に、デジタル署名８と、変更されたメタデータ９とを結合して、署名付き暗号化ファームウェア４３を生成する（Ｓ１５）。
【００５１】
そして、第１の出力部２５は、署名付き暗号化ファームウェア４３を出力する（Ｓ１６）。出力された署名付き暗号化ファームウェア４３は、例えば、インターネット等のネットワークを介してハードディスク装置にダウンロードされる。
【００５２】
次に、以上のように構成された本実施形態の署名生成サーバ３によるデジタル署名生成処理について説明する。
【００５３】
図４は、本実施形態にかかるデジタル署名生成処理の流れの一例を示すフローチャートである。このフローチャートの処理が開始される前に、鍵生成部３１が秘密鍵７１と公開鍵７２とを生成し、記憶部３６に保存しているものとする。
【００５４】
第３の取得部３２は、署名付きデータ生成サーバ２から第１のハッシュ値６を取得する（Ｓ２１）。
【００５５】
第２のハッシュ値生成部３３１は、取得された第１のハッシュ値６を所定のハッシュ関数に入力して演算して、第１のハッシュ値６から第２のハッシュ値を生成する（Ｓ２２）。
【００５６】
デジタル署名生成部３３は、第２のハッシュ値生成部３３１によって生成された第２のハッシュ値を、記憶部３６に保存された秘密鍵７１によって暗号化して、平文ファームウェア４１に対するデジタル署名８を生成する（Ｓ２３）。
【００５７】
第３の送信部３４は、デジタル署名生成部３３によって生成されたデジタル署名８を、署名付きデータ生成サーバ２に送信する（Ｓ２４）。
【００５８】
そして、第２の出力部３５は、Ｓ２３でデジタル署名生成部３３によって第２のハッシュ値を暗号化するために使用された秘密鍵７１と対になる公開鍵７２を、出力する（Ｓ２５）。例えば、第２の出力部３５は、インターネット等のネットワークを介して、公開鍵７２を、署名付き暗号化ファームウェア４３がダウンロードされたハードディスク装置に送信する。
【００５９】
署名付き暗号化ファームウェア４３がダウンロードされたハードディスク装置は、公開鍵７２により署名付き暗号化ファームウェア４３に含まれるデジタル署名８を復号して、第２のハッシュ値を算出する。また、当該ハードディスク装置は、暗号化鍵５によって署名付き暗号化ファームウェア４３に含まれる暗号化ファームウェア４２を復号する。当該ハードディスク装置は、暗号化ファームウェア４２が復号されたことで得られた平文ファームウェア４１を、第１の結合部１３が使用した所定のハッシュ関数に入力して第１のハッシュ値６を算出する。さらに、当該ハードディスク装置は、第１のハッシュ値６を第２のハッシュ値生成部３３１が使用した所定のハッシュ関数に入力して第２のハッシュ値を算出する。
【００６０】
当該ハードディスク装置は、暗号化ファームウェア４２から算出された第２のハッシュ値と、デジタル署名８から算出された第２のハッシュ値とを比較し、２つの第２のハッシュ値が同一であれば、平文ファームウェア４１が改竄されていないと判断する。また、当該ハードディスク装置は、２つの第２のハッシュ値が同一でない場合は、平文ファームウェア４１が改竄された可能性があると判断する。このような平文ファームウェア４１の改竄の有無の判断の処理は、例えば、ハードディスク装置のブート処理の際に、ブート処理プログラムによって実行される。
【００６１】
このように、本実施形態のＰＣ１は、平文ファームウェア４１から生成した第１のハッシュ値６と、平文ファームウェア４１を暗号化することによって生成した暗号化ファームウェア４２と、を署名付きデータ生成サーバ２に送信する。このため、本実施形態のＰＣ１によれば、装置間での平文ファームウェア４１の受け渡しを回避することで、平文ファームウェア４１が露出することを防止し、安全性に関するリスクを低減することができる。
【００６２】
例えば、従来技術においては、署名生成サーバが平文ファームウェアに対するデジタル署名を生成するために、第１のハッシュ値ではなく、平文ファームウェアを入力値として使用していた。このため、署名生成サーバがＰＣまたは署名付きデータ生成サーバから平文ファームウェアを取得する際に、平文ファームウェアの受け渡しが行われる場合があった。
【００６３】
また、従来技術においては、ＰＣと署名付きデータ生成サーバとの間でのデータの受け渡しには暗号化されたデータを用いていても、デジタル署名の生成のために暗号化データを複合した後に、平文ファームウェアが露出する場合があった。一例として、従来技術では、署名付きデータ生成サーバは、ＰＣから送信された暗号化ファームウェアを、暗号化鍵によって復号化して平文ファームウェアにした上で、当該平文ファームウェアを署名生成サーバに送信していた。このため、署名付きデータ生成サーバと署名生成サーバとの間の伝送の際に、平文ファームウェアがネットワーク上に露出するおそれがあった。
【００６４】
これに対して、本実施形態によれば、ＰＣ１は、平文ファームウェア４１や暗号化鍵５ではなく、暗号化ファームウェア４２と第１のハッシュ値６とを署名付きデータ生成サーバ２に送信するため、署名付きデータ生成サーバ２または署名生成サーバ３との伝送の際に平文ファームウェア４１が露出することを防止することができる。
【００６５】
また、本実施形態の平文データは、ハードディスク装置用の平文ファームウェア４１である。ハードディスク装置用では、ブート処理の際にデジタル署名８によって平文ファームウェア４１の安全性を確認する処理が行われるため、生成された平文ファームウェア４１に対するデジタル署名８が求められる。また、このような平文ファームウェア４１を生成する装置（例えばＰＣ１）と、デジタル署名８およびデジタル署名付きデータを生成する装置（例えば署名生成サーバ３、署名付きデータ生成サーバ２）とは、異なる装置が用いられることが一般的である。本実施形態のＰＣ１によれば、ハードディスク装置用の平文ファームウェア４１を暗号化した暗号化ファームウェア４２と第１のハッシュ値６とを送信するため、平文ファームウェア４１に対するデジタル署名８を提供する際に、ハードディスク装置用の平文ファームウェア４１が露出することを防止することができる。
【００６６】
また、本実施形態のＰＣ１は、共通鍵方式で平文ファームウェア４１を暗号化する。共通鍵方式の方が、公開鍵方式よりも暗号鍵のデータ長（桁数）を短くすることが可能であるため、本実施形態のＰＣ１によれば、暗号化ファームウェア４２を復号するハードディスク装置のデータ容量を圧迫すること防止することができる。
【００６７】
また、本実施形態のＰＣ１は、暗号化ファームウェア４２のデータ長が所定のデータであるか否かを判断し、暗号化ファームウェア４２のデータ長が所定のデータ長ではないと判断した場合に、所定のデータ長との差異を埋めるパディングデータを暗号化ファームウェア４２に追加し、暗号化ファームウェア４２に関する情報を含むメタデータ９と、パディングデータを追加済みの暗号化ファームウェア４２とを結合した結合データ４０を、署名付きデータ生成サーバ２に送信する。このため、本実施形態のＰＣ１によれば、暗号化ファームウェア４２がダウンロードされたハードディスク装置において、所定のデータ長単位で効率的に暗号化ファームウェア４２を読み取ることができる。
【００６８】
また、本実施形態の署名生成サーバ３は、平文ファームウェア４１から生成された第１のハッシュ値６から所定のハッシュ関数によって第２のハッシュ値を生成し、第２のハッシュ値から平文ファームウェア４１に対するデジタル署名８を生成する。このため、本実施形態の署名付きデータ生成サーバ２によれば、平文ファームウェア４１を直接使用せずに、平文ファームウェア４１に対するデジタル署名８を生成することができる。このため、本実施形態の署名付きデータ生成サーバ２によれば、デジタル署名８を生成する際に平文ファームウェア４１が露出することを防止することができる。
【００６９】
また、本実施形態の署名付きデータ生成サーバ２は、一対の秘密鍵７１と公開鍵７２とを生成し、秘密鍵７１により第２のハッシュ値を暗号化して、デジタル署名８を生成する。また、署名付きデータ生成サーバ２は、公開鍵７２を出力する。このため、本実施形態によれば、デジタル署名８を生成する署名付きデータ生成サーバ２内で秘密鍵７１と公開鍵７２とを生成しているため、秘密鍵７１が露出することを防止し、安全性に関するリスクをさらに低減することができる。
【００７０】
また、本実施形態の署名付きデータ生成サーバ２は、平文ファームウェア４１に対するデジタル署名８と、暗号化した暗号化ファームウェア４２とを取得し、デジタル署名８と暗号化ファームウェア４２とを結合して、署名付き暗号化ファームウェア４３を生成する。このため、本実施形態の署名付きデータ生成サーバ２によれば、暗号化ファームウェア４２を復号することなく、署名付き暗号化ファームウェア４３を生成するため、平文ファームウェア４１が露出することを防止することができる。
【００７１】
また、本実施形態のデジタル署名付きデータ生成システムＳは、ＰＣ１と、署名付きデータ生成サーバ２と、署名生成サーバ３とを備える。ＰＣ１と、署名付きデータ生成サーバ２と、署名生成サーバ３とは、それぞれ上述の構成を備えるため、本実施形態のデジタル署名付きデータ生成システムＳによれば、平文ファームウェア４１が露出することを防止し、安全性に関するリスクを低減することができる。
【００７２】
なお、本実施形態では、平文データの一例として平文ファームウェア４１を挙げて説明をしたが、本実施形態のデジタル署名の生成の手法は、他の平文データに対しても適用することができる。
【００７３】
なお、本実施形態では、鍵生成部３１が秘密鍵７１と公開鍵７２とを予め生成し、記憶部３６に保存するものとしたが、デジタル署名生成部３３がデジタル署名８を生成するタイミングで、鍵生成部３１が秘密鍵７１と公開鍵７２とを生成するものとしても良い。
【００７４】
また、鍵生成部３１は、一対の秘密鍵７１と公開鍵７２を、１つのペアだけではなく、複数ペア生成しても良い。当該構成を採用する場合、記憶部３６は、対となる秘密鍵７１と公開鍵７２とをペアごとに対応付けて記憶する。
【００７５】
また、ＰＣ１の暗号化部１２は、共通鍵方式ではなく、公開鍵方式で平文ファームウェア４１を暗号化しても良い。
【００７６】
また、本実施形態のメタデータ９、結合データ４０、暗号化ファームウェア４２に含まれる情報は一例であり、これに限定されるものではない。また、結合データ４０および暗号化ファームウェア４２は、メタデータ９またはパディングデータを含まない構成としても良い。また、デジタル署名８は、暗号化された第２のハッシュ値だけではなく、デジタル署名８の発行者や、平文ファームウェア４１の作成者に関する情報等を含むものであっても良い。
【００７７】
また、本実施形態においては、第１の結合部１３は、暗号化ファームウェア４２のデータ長が５１２バイトの倍数である場合は、暗号化ファームウェア４２にパディングデータを追加しなくとも良いとしたが、暗号化ファームウェア４２のデータ長が５１２バイトの倍数である場合は、５１２バイト分のパディングデータを追加しても良い。第１の結合部１３は、メタデータ９に対しても同様に、データ長が５１２バイトの倍数である場合は、５１２バイト分のパディングデータを追加しても良い。
【００７８】
また、署名付きデータ生成サーバ２と署名生成サーバ３の機能を１つのサーバが有するものとしても良い。また、本実施形態では、公開鍵７２は署名生成サーバ３が出力するものとしたが、署名付きデータ生成サーバ２が署名付き暗号化ファームウェア４３と共に出力するものとしても良い。
【００７９】
（変形例１）
上述の実施形態では、ＰＣ１は、メタデータ９と暗号化ファームウェア４２とを含む結合データ４０と、第１のハッシュ値６とを、署名付きデータ生成サーバ２に送信していたが、メタデータ９に第１のハッシュ値６が含まれるものとしても良い。例えば、第１の結合部１３は、第１のハッシュ値生成部１１によって生成された第１のハッシュ値６を含むメタデータ９を生成し、当該メタデータ９と暗号化ファームウェア４２と結合して、結合データ４０を生成する。当該構成を採用する場合、結合データ４０内に第１のハッシュ値６が含まれるため、第１の送信部１４は、結合データ４０と第１のハッシュ値６分けて署名付きデータ生成サーバ２に送信しなくともよく、送信処理を効率化することができる。
【００８０】
（変形例２）
また、署名付きデータ生成サーバ２の第２の結合部２４は、結合データ４０に含まれるメタデータ９またはパディングデータの一部または全てを、デジタル署名８に置換して、署名付き暗号化ファームウェア４３を生成しても良い。
【００８１】
本変形例では、メタデータ９は、暗号化ファームウェア４２の本文と、パディングデータとを識別可能な情報（例えば、パディングデータ追加済みの暗号化ファームウェア４２における暗号化ファームウェア４２の本文とディングデータの記載範囲を示す情報）を含むものとする。例えば、第２の結合部２４は、メタデータ９に含まれる情報に基づいて、パディングデータ追加済みの暗号化ファームウェア４２から削除可能なパディングデータと、メタデータ９内の削除可能なデータとを特定し、当該削除可能なデータをデジタル署名８に置換する。
【００８２】
本変形例の署名付きデータ生成サーバ２によれば、単にデジタル署名８と、暗号化ファームウェア４２と、メタデータ９を結合するのではなく、メタデータ９またはパディングデータの一部または全てをデジタル署名８に置換することで、署名付き暗号化ファームウェア４３のデータ量を削減することができる。
【００８３】
本実施形態のＰＣ１と、署名付きデータ生成サーバ２と、署名生成サーバ３とで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００８４】
また、本実施形態のＰＣ１と、署名付きデータ生成サーバ２と、署名生成サーバ３とで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のＰＣ１と、署名付きデータ生成サーバ２と、署名生成サーバ３とで実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。また、本実施形態ＰＣ１と、署名付きデータ生成サーバ２と、署名生成サーバ３とで実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００８５】
本実施形態のＰＣ１と、署名付きデータ生成サーバ２と、署名生成サーバ３とで実行されるプログラムは、上述した各部（第１のハッシュ値生成部、暗号化部、第１の結合部、第１の送信部、第１の取得部、第２の送信部、第２の取得部、第２の結合部、第１の出力部、鍵生成部、第３の取得部、デジタル署名生成部、第２のハッシュ値生成部、第３の送信部、第２の出力部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、第１のハッシュ値生成部、暗号化部、第１の結合部、第１の送信部、第１の取得部、第２の送信部、第２の取得部、第２の結合部、第１の出力部、鍵生成部、第３の取得部、デジタル署名生成部、第２のハッシュ値生成部、第３の送信部、第２の出力部が主記憶装置上に生成されるようになっている。
【００８６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８７】
１  ＰＣ、２  署名付きデータ生成サーバ、３  署名生成サーバ、５  暗号化鍵、６  第１のハッシュ値、８  デジタル署名、９  メタデータ、１１  第１のハッシュ値生成部、１２  暗号化部、１３  第１の結合部、１４  第１の送信部、１５  記憶部、２１  第１の取得部、２２  第２の送信部、２３  第２の取得部、２４  第２の結合部、２５  第１の出力部、３１  鍵生成部、３２  第３の取得部、３３  デジタル署名生成部、３４  第３の送信部、３５  第２の出力部、３６  記憶部、４０  結合データ、４１  平文ファームウェア、４２  暗号化ファームウェア、４３  署名付き暗号化ファームウェア、７１  秘密鍵、７２  公開鍵、３３１  第２のハッシュ値生成部、Ｓ  署名付きデータ生成システム。
【図１】
2020022057.tif 000003
【図２】
2020022057.tif 000004
【図３】
2020022057.tif 000005
【図４】
2020022057.tif 000006