LoginSignup
0
1

More than 5 years have passed since last update.

ブロックチェーンに関わる様々な暗号技術

Posted at

ハッシュ関数

ハッシュ関数とは、入力した値に対して全く別の値が出力される関数である。
出力された値を特に「ハッシュ値」と呼ばれる。

ハッシュ関数の特徴は下記の通り

  • 同じ値を入力した場合は必ず同じ値が返される
  • ハッシュ値から入力値を特定することは計算量的に困難なため、不可逆性がある
  • 入力値が英数字少しでも異なれば全く別の値が出力される
  • 出力される値は入力値のいかんに関われる固定長が返される
  • 入力値が異なる場合は同じ出力値が返されることは原則なし

ハッシュ関数にはSHA-256やRIPEMD-160などと行った関数が存在する。

SHA-256

NIST(米国標準技術局)によってFIPS180-4として標準化された「SHA-2」規格の一部として定義されたもの。
- SHA-224: ハッシュ値の長さが224ビット
- SHA-384: ハッシュ値の長さが384ビット
- SHA-512: ハッシュ値の長さが512ビット
- SHA-256: ハッシュ値の長さが256ビット

Linux環境でsha256sumコマンドを使用すると入力された値がSHA-256でハッシュ化される。

スクリーンショット 2018-07-11 22.53.19.png

入力する値を大小変更すると全く異なる値が返されます。

スクリーンショット 2018-07-11 22.54.28.png

入力する文字が1文字でも値が返されます。

スクリーンショット 2018-07-11 22.57.02.png

RIPEMD-160

RIPEMD-160とは「RACE Integrity Primitives Evaluation Message Digest」の略称。
ハッシュ関数の一つ。
RIPEMD-160はオリジナルのRIPEMDでは128ビット長であるハッシュ値を160ビットにした上で改良したものをSHA-256よりも短いハッシュ値で出力される。

Linuxに標準でインストールされているopensslコマンドで確認できる。

スクリーンショット 2018-07-11 23.00.55.png

HASH160

HASH160はハッシュ関数ではないが、SHA-256で出力されたハッシュ値をさらにRIPEMD-160でハッシュ化すること。

今日はここまで

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1