スポンサーリンク

MD4(3) FreeBSD ライブラリ関数マニュアル MD4(3)

名称

MD4Init, MD4Update, MD4Pad, MD4Final, MD4End, MD4File, MD4Data − RSA Data Security 社の ‘‘MD4’’ メッセージダイジェストを計算する

書式

#include <sys/types.h>
#include <md4.h>

void

MD4Init(MD4_CTX *context);

void

MD4Update(MD4_CTX *context, const unsigned char *data, unsigned int len);

void

MD4Pad(MD4_CTX *context);

void

MD4Final(unsigned char digest[16], MD4_CTX *context);

char *

MD4End(MD4_CTX *context, char *buf);

char *

MD4File(const char *filename, char *buf);

char *

MD4Data(const unsigned char *data, unsigned int len, char *buf);

解説

MD4 関数群は、任意の数の入力バイトについて 128 ビット暗号チェックサム ( ダイジェスト ) を計算します。暗号チェックサムは一方向ハッシュ関数なので特 定出力に対応する入力を ( 徹底的な検索を除いて ) 見つけることはできませ ん。結果的には入力データの「指紋」しか見つからず、実際の入力が明らかにな ることはありません。

MD2 は最も遅く、 MD4 は最も高速で、 MD5 はその中間です。 MD2 は、プライバ シが重要なメールのみで使用できます。 MD4 は弱すぎると酷評されたため、「安 全ベルトを付けた MD4」として MD5 が開発されました。疑わしいときは MD5 を 使用してください。

MD4Init(), MD4Update(), MD4Final() 関数は中心的な関数群です。 MD4_CTX を 割り当て、 MD4Init() で初期化し、 MD4Update() でデータを処理し、最後に MD4Final() で結果を取り出してください。

MD4Pad() は、計算を終了しないで MD4Final() と同じ方法でメッセージデータを つめることができます。

MD4End() は MD4Final() のラッパで、 16 進 128 ビットを表現する 33 文字 ( 最後の「 \0 」を含む ) の ASCII 文字列に戻り値を変換します。

MD4File() はファイルのダイジェストを計算し、 MD4End() を使用して結果を返 します。ファイルを開けない場合はヌルポインタを返します。 MD4Data() はメモ リに存在するデータのダイジェストを計算し、 MD4End() を使用して結果を返し ます。

MD4End(), MD4File(), MD4Data() の使用にあたっては buf を NULL ポインタと することができます。この場合は malloc(3) で割り当てられた文字列が返される ので、使用後は free(3) で割り当てを解除しなければなりません。 buf が NULL でない時は、少なくとも 33 文字分のバッファを指していなければなりません。

関連項目

md2(3), md4(3), md5(3)

       B. Kaliski,                     The MD2 Message-Digest Algorithm,                                                         RFC 1319.
       R. Rivest,                    The MD4 Message-Digest Algorithm,                                                        RFC 1186.
       R. Rivest,                    The MD5 Message-Digest Algorithm,                                                        RFC 1321.
       RSA Laboratories,                           Frequently Asked Questions About today’sCryptography.

作者

オリジナルの MD4 ルーチンは、 RSA Data Security 社によって開発され、上記 のリファレンスで公開されました。このコードは、 Poul-Henning Kamp ⟨phk@login.dkuug.dk⟩ により、この実装から直接引き出されています。

Phk ristede runen.

歴史

この関数は、 FreeBSD 2.0 で現れました。

バグ

同じハッシュ値を持つような 2 つのファイルを見つける方法、または特定のハッ シュ値を持つようなファイルを見つける方法は知られていません。一方、そのよ うな方法が存在しないという保証もありません。

MD2 は、プライバシが重要なメールに使用する場合のみライセンス供与されま す。その他の場合は MD4 か MD5 を使用してください。

COPYRIGHT

Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved.

このソフトウェアの複製や使用のためのライセンスは、このソフトウェアやこの 関数について言及したり参照したりするすべての資料で「 RSA Data Security 社 の MD2 メッセージダイジェストアルゴリズム」であることが明示されていれば、 プライバシが重要となる非営利インターネットメールに供与されます。

RSA Data Security 社は、このソフトウェアの商業性、またはこの特定の目的に 対するこのソフトウェアの適合性について表明しません。このソフトウェアは、 いかなる種類の、明示的または暗黙的な保証もなく、「現状のまま」で提供され ます。

この警告は、この文書かソフトウェア、またはその両方のすべてのコピーに掲載 しなければなりません。

FreeBSD October 9, 1996 FreeBSD

スポンサーリンク