JP2003302900A - メッセージダイジェスト生成装置及び方法 - Google Patents

メッセージダイジェスト生成装置及び方法

Info

Publication number
JP2003302900A
JP2003302900A JP2002111258A JP2002111258A JP2003302900A JP 2003302900 A JP2003302900 A JP 2003302900A JP 2002111258 A JP2002111258 A JP 2002111258A JP 2002111258 A JP2002111258 A JP 2002111258A JP 2003302900 A JP2003302900 A JP 2003302900A
Authority
JP
Japan
Prior art keywords
message digest
data
block
initial value
target data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002111258A
Other languages
English (en)
Inventor
Kazushige Maeno
一茂 前野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyo Communication Equipment Co Ltd
Original Assignee
Toyo Communication Equipment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyo Communication Equipment Co Ltd filed Critical Toyo Communication Equipment Co Ltd
Priority to JP2002111258A priority Critical patent/JP2003302900A/ja
Publication of JP2003302900A publication Critical patent/JP2003302900A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

(57)【要約】 【課題】対象データのメッセージダイジェスト生成後、
対象データの最後に新しくデータを追加した後の、メッ
セージダイジェスト再生成の時間を短縮する。 【解決手段】対象となるデータを先頭から所定長のブロ
ックに分割し所定の演算を施すことによりメッセージダ
イジェストを生成するメッセージダイジェスト生成装置
であって、対象となるデータのメッセージダイジェスト
を演算するための演算手段と、対象となるデータを先頭
から所定長のブロックに分割して前記演算手段に順次供
給するブロック化手段と、初期値を記憶する初期値保持
手段と、前記演算手段からの出力と前記初期値保持手段
からの出力とを切り替えて前記演算手段に供給する切替
手段と、最終ブロックより手前の特定ブロックに対応す
る前記演算手段からの出力を格納する演算結果格納手段
とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電子署名等に使用
するメッセージダイジェストの生成装置及び方法に関す
る。
【0002】
【従来の技術】インターネット等を利用してデータ等を
送信する場合、データの送信者を特定し、データが途中
で改ざん、変更されていないかを確認する為、電子署名
という方法が用いられている。電子署名とは、送信者が
例えばハッシュ関数という計算方法を用いて電子署名し
たいデータのメッセージダイジェスト(ハッシュ値)を
生成し、これを自分の秘密鍵で暗号化したものを指し、
これをデータと共に相手側に送信する。電子署名付きデ
ータを受信した側は、電子署名した人の公開鍵を使用し
て、暗号化されているメッセージダイジェストを復号す
る。この時点で復号出来れば、その電子署名は送信者が
行ったものであり、電子署名されていたデータは送信者
からのものと判断出来る。さらに、受信側で送信側と同
じハッシュ関数を用いて受信したデータのメッセージダ
イジェストを生成し、受信したメッセージダイジェスト
と比較し、同一であれば受信したデータは改ざん、変更
されていないと判断する。
【0003】ハッシュ関数とは、任意の大きさのデータ
から一定長のデータを生成するものであり、計算結果か
ら元データを推測することが出来ず、また、どのような
元データに対してもそれぞれが異なるものであれば計算
結果が同一になる確立が極めて小さいという一方向性関
数としての特性を持っている。
【0004】図6はメッセージダイジェストを生成する
手順の一例を示すフローであり、図7はメッセージダイ
ジェストを生成する一構成例を示すブロック図であり、
対象となるデータのメッセージダイジェストを演算する
ための演算手段としての演算部71と、対象となるデー
タを先頭から所定長のブロックに分割して演算部71に
順次供給するブロック化手段としてのブロック生成部7
2と、初期値を記憶する初期値保持手段としての初期値
設定部73と、演算部71からの出力と初期値設定部7
3からの出力とを切り替えて演算部71に供給する切替
手段としての切替部74とを備えている。図8の(a)
は対象データ、(b)は対象データにデータ長補正用デ
ータαを追加しデータ長を512ビットの倍数にした図
である。図6〜8を参照しながらメッセージダイジェス
トを生成する手順について説明する。ここでは、ハッシ
ュ関数の計算についての説明は省略する。
【0005】図8(a)に示す対象データを図7に示す
ブロック生成部71にて先頭から512ビットずつに区
切ってブロック化し、最後尾のブロックが512ビット
に満たないときは、その末尾に図8(b)に示すように
所定のビット(データ長補正用データα)を追加し、全
体のデータ長が512ビットの倍数になるようにする
(S61)。最初のブロックを計算する場合は、ブロッ
ク生成部71の最初のブロックを演算部72に入力する
と共に、初期設定部73に予め決められたデータを初期
値として、切替部74の接続を「i=1」側に設定する
ことにより演算部72に入力し、演算部72にてハッシ
ュ関数を用いて計算する。(S62)。次のブロックを
計算する場合は、図7に示す切替部74の接続を「i=
2〜n」側に設定して、ブロック生成部の次のブロック
と最初(一つ前)のブロックの計算結果を初期値として
演算部72に入力しハッシュ関数を用いて計算し、以下
同様に順次最終ブロックまで計算する(S63)。最終
ブロックの計算結果から得られたハッシュ値がメッセー
ジダイジェストである。(S64)。以上のように、メ
ッセージダイジェストを生成する場合、最初のブロック
から全てのブロックについて順次計算しなければならな
い。
【0006】
【発明が解決しようとする課題】しかしながら、対象デ
ータに対してメッセージダイジェストを生成した後で、
対象データの最後部に新しくデータを追記した場合や、
稟議書のように受信した者が対象データに自らの電子署
名を追記して次の人へ送信する場合等、再度メッセージ
ダイジェストを生成する場合、新しく追加したデータを
含むデータの先頭から最初の計算と同じように順次計算
しなければならない。図9(a)は最初の人(データ作
成者)が対象データのメッセージダイジェストを生成
し、自らの電子署名(署名1)を付加したものを示す図
であり、(b)は最初の人から電子署名付きデータを受
信した者が、対象データと電子署名(署名1)とを合わ
せたものをデータと見なしメッセージダイジェストを生
成し、自らの電子署名(署名2)を付加したものを示す
図である。図9(b)に示すように、再度メッセージダ
イジェストを生成する場合、変更前のデータ量が大きい
ほど最初のデータに対するメッセージダイジェストを生
成した時と同じ様な時間が必要になり、対象データのデ
ータ量が大きい程メッセージダイジェストの生成にかか
る時間は膨大になる。
【0007】本発明は、上述したメッセージダイジェス
トを再度生成する場合に時間がかかるという課題を解決
する為になされたものであって、メッセージダイジェス
トを再度生成する時間を短縮することを目的とする。
【0008】
【課題を解決するための手段】上記目的を解決する為に
請求項1記載の本発明は、対象となるデータを先頭から
所定長のブロックに分割し所定の演算を施すことにより
メッセージダイジェストを生成するメッセージダイジェ
スト生成装置であって、対象となるデータのメッセージ
ダイジェストを演算するための演算手段と、対象となる
データを先頭から所定長のブロックに分割して前記演算
手段に順次供給するブロック化手段と、初期値を記憶す
る初期値保持手段と、前記演算手段からの出力と前記初
期値保持手段からの出力とを切り替えて前記演算手段に
供給する切替手段と、最終ブロックより手前の特定ブロ
ックに対応する前記演算手段からの出力を格納する演算
結果格納手段とを備える。
【0009】本発明に係る請求項2記載の発明は、対象
となるデータを先頭から所定長のブロックに分割し所定
の演算を施すことによりメッセージダイジェストを生成
するメッセージダイジェスト生成装置であって、対象と
なるデータのメッセージダイジェストを生成後、前記対
象となるデータの最後部に新たなデータを追加した上で
再度メッセージダイジェストを生成する場合に、前記演
算結果格納手段に格納したデータを初期値として前記初
期値保持手段に上書きするものであり、前記ブロック化
手段は前記特定ブロック以降のブロックを前記演算手段
に順次供給するものである。
【0010】本発明に係る請求項3記載の発明は、対象
となるデータを先頭から所定長のブロックに分割し所定
の演算を施すことによりメッセージダイジェストを生成
するメッセージダイジェスト生成装置であって、前記特
定ブロックを最終ブロックより1つ手前のブロックとす
るものである。
【0011】本発明に係る請求項4記載の発明は、対象
となるデータを先頭から所定長のブロックに分割し所定
の演算を施すことによりメッセージダイジェストを生成
するメッセージダイジェスト生成方法であって、対象と
なるデータのメッセージダイジェストを生成する際に、
最終ブロックより手前の特定ブロックに対応する演算出
力を演算結果格納手段に保持する手順と、メッセージダ
イジェストを生成後、前記対象となるデータの最後部に
新たなデータを追加した上で、再度メッセージダイジェ
ストを生成する場合に、前記演算結果格納手段に保持さ
れているデータを初期値として前記特定ブロック以降の
ブロックについて所定の演算を施す手順とを含むもので
ある。
【0012】
【発明の実施の形態】以下、図示した実施例に基づいて
本発明を詳細に説明する。図1は本発明に係る対象とな
るデータのメッセージダイジェストを最初に生成する時
のフローを示す図であり、図2は対象となるデータの最
後に新しくデータを追加後、再度メッセージダイジェス
トを生成する時のフローを示す図である。図3は本発明
に係る対象となるデータのメッセージダイジェストを最
初に生成する時の一構成例を示す図であり、対象となる
データを先頭から所定長のブロックに分割するブロック
化手段としてのブロック生成部31と、ブロック生成部
31から順次供給されるブロックを用いて対象となるデ
ータのメッセージダイジェストを演算するための演算手
段としての演算部32と、初期値を記憶する初期値保持
手段としての初期値設定部33と、演算部32からの出
力と初期値設定部33からの出力とを切り替えて演算部
32に供給する切替手段としての切替部34と、最終ブ
ロックより手前の特定ブロックに対応する演算部32か
らの出力を格納する演算結果格納手段としての格納領域
(メモリ)35とを備えている。
【0013】図4は対象となるデータの最後部に新しく
データを追加後、再度メッセージダイジェストを生成す
る時の一構成例を示す図であり、対象となるデータを先
頭から所定長のブロックに分割するブロック化手段とし
てのブロック生成部41と、ブロック生成部41から順
次供給されるブロックを用いて対象となるデータのメッ
セージダイジェストを演算するための演算手段としての
演算部42と、最終ブロックより手前の特定ブロックに
対応する演算部42からの出力を格納する演算結果格納
手段としての格納領域(メモリ)43と、格納領域43
に格納したデータを初期値として記憶する初期値保持手
段としての初期値設定部44と、演算部42からの出力
と初期値設定部44からの出力とを切り替えて演算部4
2に供給する切替手段としての切替部45とを備えてい
る。
【0014】図5は対象データを512ビットのブロッ
クに分割し、メッセージダイジェスト生成後電子署名を
付加した図であり、(a)は対象データを示す図、
(b)は対象データにデータ長補正用データαを追加
し、全体のデータ長を512ビットの倍数にした図、
(c)は対象データの最後尾に電子署名(署名1)を付
加した図、(d)は対象データと電子署名(署名1)を
一つのデータとしてメッセージダイジェストを生成する
為、データ長補正用データβを追加し512ビットの倍
数にした図、(e)は対象データと電子署名(署名1)
とを結合したデータの最後尾に電子署名(署名2)を付
加した図である。
【0015】図3〜5を参照しながらメッセージダイジ
ェストを生成する手順について図1に基づき説明する。
図5(a)に示す対象データを図3に示すブロック生成
部31にて先頭から512ビットずつに区切ってブロッ
ク化し、最後尾のブロックが512ビットに満たないと
きは、その末尾に図5(b)に示すように所定のビット
(データ長補正用データα)を追加し、全体のデータ長
が512ビットの倍数になるようにする(S11)。最
初のブロックを計算する場合は、ブロック生成部31か
らの先頭のデータ(ブロック1)を演算部32に入力す
ると共に、初期値設定部33の予め決められたデータを
初期値として、図3に示す切替部34の接続を「i=
1」側に設定することにより、演算部32に入力し、演
算部32にてハッシュ関数を用いて計算する(S1
2)。次のブロックを計算する場合は、図3に示す切替
部34の接続を「i=2〜n」側に設定して、ブロック
生成部31の次のブロックと最初(一つ手前)のブロッ
クの計算結果を初期値として演算部32に入力しハッシ
ュ関数を用いて計算し、以下同様に最終ブロックの一つ
手前のブロックまで順次計算する。(S13、14)。
最終ブロック一つ手前のブロックの計算結果を格納領域
(メモリ)35に記憶する(S15)。最終ブロックと
最終ブロック一つ手前のブロックの計算結果を初期値と
して、演算部32に入力しハッシュ関数を用いて計算し
(S16)、その計算結果のハッシュ値がメッセージダ
イジェストとなる。(S17)。対象データの送信者
は、図5(c)に示すように対象データに前記メッセー
ジダイジェストを元に作成した自らの電子署名(署名
1)を付加して相手方に送信する。
【0016】次に、電子署名付きデータを受信した者
が、受信データの最後尾に自らの電子署名を追記して次
の人へ送信する場合のメッセージダイジェスト生成につ
いて図2に基づき説明する。電子署名付きデータを受信
した者は、受信したデータに対して図1のフローを用い
てメッセージダイジェストを生成し、受信したデータに
付加されたメッセージダイジェストと比較し同一であれ
ば受信したデータが改ざん、変更されていないと判断す
る。この時、最終ブロック一つ手前のブロックの計算結
果を格納領域(メモリ)に記憶しておく。
【0017】受信者は図5(d)に示すように受信した
対象データと電子署名(署名1)とを全データとして、
図4に示すブロック生成部41にて全データを先頭から
512ビットずつに区切ってブロック化し、最後尾のブ
ロックが512ビットに満たない時は、その末尾に所定
のビット(データ補正用データβ)を追加し、全体のデ
ータ長が512ビットの倍数になるようにする(S2
1)。新しく追加したデータを含む最初のブロックを計
算する場合、ブロック生成部41の新しく追加したデー
タを含む最初のブロックを演算部42に入力すると共
に、格納領域43に格納しておいた数値を初期値設定部
44に書き込み、この数値を初期値として切替部45の
接続を「i=n」側に設定することにより演算部42に
入力し、演算部42にてハッシュ関数を用いて計算する
(S22)。次のブロックを計算する場合は、図4に示
す切替部45の接続を「i=n+1〜」側に設定して、
ブロック生成部41の次のブロックと一つ手前のブロッ
クの計算結果とを初期値として演算部42に入力し、ハ
ッシュ関数を用いて計算し、以下同様に最終ブロックの
一つ手前のブロックまで順次計算する(S23、2
4)。最終ブロック一つ手前のブロックの計算結果を格
納領域(メモリ)45に格納する(S25)。最終ブロ
ックと最終ブロック一つ手前のブロックの計算結果を初
期値として演算部42に入力し、ハッシュ関数で計算し
(S26)、その計算結果のハッシュ値がメッセージダ
イジェストとなる。(S27)。前記受信者は、図5
(e)に示すように対象データと電子署名(署名1)を
結合したデータに前記メッセージダイジェストを元に作
成した電子署名(署名2)を付加して次の相手方に送信
する。
【0018】これにより、ハッシュ演算に要する時間を
大幅に短縮することが可能となった。尚、以上の実施例
ではハッシュ関数を用いていたが、他の一方向性関数を
用いたものにも適用可能である。更に、実施例では最終
ブロックから一つ手前のブロックの計算結果を格納領域
に格納してメッセージダイジェスト再計算時に初期値と
していたが、最終ブロックよりも手前のブロック(特定
ブロック)であれば、従来よりも計算時間の短縮効果が
得られることは言うまでもない。
【0019】
【発明の効果】本発明により、メッセージダイジェスト
を生成後、対象データの最後に新しくデータを追加し、
再度メッセージダイジェストを生成する場合、直前にメ
ッセージダイジェストを生成した時の計算結果を用いる
ことにより、計算時間を短縮することが可能となる。元
のデータに対するブロック数をN、データ追加後のブロ
ック数をM、1ブロック当りの計算時間をtとした場
合、元のデータの計算時間はN×t、データ追加後の従
来の計算時間はM×t、データ追加後の本発明による計
算時間は(M−N+1)×tとなる。元のデータ量が大
きく、かつ追加データが小さい程、本発明の効果は大き
くなる。
【図面の簡単な説明】
【図1】 本発明に係るメッセージダイジェスト生成フ
ロー
【図2】 本発明に係るメッセージダイジェスト再生成
フロー
【図3】 本発明に係るメッセージダイジェスト生成ブ
ロックの構成例
【図4】 本発明に係るメッセージダイジェスト再生成
ブロックの構成例
【図5】 本発明に係る対象データのブロック分割の一
【図6】 従来のメッセージダイジェスト生成フロー
【図7】 従来のメッセージダイジェスト生成ブロック
の構成例
【図8】 従来の対象データのブロック分割の一例
【図9】 従来の対象データへの電子署名を付加した一
【符号の説明】
31・・ブロック生成部 32・・演算部 33・・初期値設定部 34・・切替部 35・・メモリ 41・・ブロック生成部 42・・演算部 43・・メモリ 44・・初期値設定部 45・・切替部 71・・ブロック生成部 72・・演算部 73・・初期値設定部 74・・切替部

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】対象となるデータを先頭から所定長のブロ
    ックに分割し所定の演算を施すことによりメッセージダ
    イジェストを生成するメッセージダイジェスト生成装置
    であって、対象となるデータのメッセージダイジェスト
    を演算するための演算手段と、対象となるデータを先頭
    から所定長のブロックに分割して前記演算手段に順次供
    給するブロック化手段と、初期値を記憶する初期値保持
    手段と、前記演算手段からの出力と前記初期値保持手段
    からの出力とを切り替えて前記演算手段に供給する切替
    手段と、最終ブロックより手前の特定ブロックに対応す
    る前記演算手段からの出力を格納する演算結果格納手段
    とを備えたことを特徴とするメッセージダイジェスト生
    成装置。
  2. 【請求項2】対象となるデータのメッセージダイジェス
    トを生成後、前記対象となるデータの最後部に新たなデ
    ータを追加した上で再度メッセージダイジェストを生成
    する場合に、前記演算結果格納手段に格納したデータを
    初期値として前記初期値保持手段に記憶すると共に、前
    記ブロック化手段が前記特定ブロック以降のブロックを
    前記演算手段に順次供給することを特徴とする請求項1
    に記載のメッセージダイジェスト生成装置。
  3. 【請求項3】前記特定ブロックが最終ブロックより1つ
    手前のブロックであることを特徴とする請求項1または
    請求項2に記載のメッセージダイジェスト生成装置。
  4. 【請求項4】対象となるデータを先頭から所定長のブロ
    ックに分割し所定の演算を施すことによりメッセージダ
    イジェストを生成するメッセージダイジェスト生成方法
    であって、対象となるデータのメッセージダイジェスト
    を生成する際に、最終ブロックより手前の特定ブロック
    に対応する演算出力を演算結果格納手段に保持する手順
    と、メッセージダイジェストを生成後、前記対象となる
    データの最後部に新たなデータを追加した上で、再度メ
    ッセージダイジェストを生成する場合に、前記演算結果
    格納手段に保持されているデータを初期値として前記特
    定ブロック以降のブロックについて所定の演算を施す手
    順とを含むメッセージダイジェスト生成方法。
JP2002111258A 2002-04-12 2002-04-12 メッセージダイジェスト生成装置及び方法 Pending JP2003302900A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002111258A JP2003302900A (ja) 2002-04-12 2002-04-12 メッセージダイジェスト生成装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002111258A JP2003302900A (ja) 2002-04-12 2002-04-12 メッセージダイジェスト生成装置及び方法

Publications (1)

Publication Number Publication Date
JP2003302900A true JP2003302900A (ja) 2003-10-24

Family

ID=29394142

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002111258A Pending JP2003302900A (ja) 2002-04-12 2002-04-12 メッセージダイジェスト生成装置及び方法

Country Status (1)

Country Link
JP (1) JP2003302900A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010535372A (ja) * 2007-07-31 2010-11-18 ロヴィ・ソリューションズ・コーポレーション 補助情報をデジタル署名付きコンテンツに埋め込み認証する、コンピュータにより実施される方法およびシステム
US8453206B2 (en) 2006-11-09 2013-05-28 Panasonic Corporation Detecting unauthorized tampering of a program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8453206B2 (en) 2006-11-09 2013-05-28 Panasonic Corporation Detecting unauthorized tampering of a program
JP2010535372A (ja) * 2007-07-31 2010-11-18 ロヴィ・ソリューションズ・コーポレーション 補助情報をデジタル署名付きコンテンツに埋め込み認証する、コンピュータにより実施される方法およびシステム

Similar Documents

Publication Publication Date Title
US7907725B2 (en) Simple universal hash for plaintext aware encryption
US7372961B2 (en) Method of public key generation
US7451310B2 (en) Parallelizable authentication tree for random access storage
CN112580072B (zh) 一种数据集合求交方法及装置
US8010587B2 (en) Random number generator
JP2011120266A (ja) 混成署名方式
JPH11296076A (ja) 小時間鍵生成の方法及びシステム
JP2007157135A (ja) 内蔵電源が備えられていない機器におけるセキュアクロックの実現方法および装置
US20040228485A1 (en) Method and apparatus for the generation of public key based on a user-defined ID in a cryptosystem
US8122075B2 (en) Pseudorandom number generator and encryption device using the same
US20070011454A1 (en) METHOD FOR SAFELY DOWNLOADING SETTING DATA IN VoIP SYSTEM
WO2007123224A1 (en) Method of generating secure tickets for a new secure group, method of secure group communication, computing device having a recording medium, and network system
JP2003302900A (ja) メッセージダイジェスト生成装置及び方法
JPH11196081A (ja) 暗号通信装置
CN115085983A (zh) 数据处理方法、装置、计算机可读存储介质和电子设备
JP3123820B2 (ja) 有限可換群における演算器
EP1655883B1 (en) Information-processing apparatus, information-processing method, and recording medium
JP2006048158A (ja) データ格納方法及びデータ処理装置
JP2005202048A (ja) 暗号通信システム、そのシステムに使用される暗号装置および復号装置、暗号化方法および復号化方法、暗号化プログラムおよび復号化プログラム、ならびに記録媒体
GB2413465A (en) Signing and encryption using a unique message string
JP2006506025A5 (ja)
CN112883398B (zh) 基于同态加密的数据完整性验证方法
JPH11215114A (ja) 暗号鍵更新方法及び装置及び暗号鍵更新プログラムを記録した記録媒体
CN113381850B (zh) 一种sm9用户密钥生成方法、装置、设备及存储介质
JPH1155244A (ja) 鍵回復方法および装置