1

独自のシンプルハッシュメカニズムの開発に興味があります。

不可逆的な数学関数をいくつか知りたいのですが。

関数とモジュラスに上げられたものは、逆の手順で2つの答えが得られるという意味で、元に戻せない関数であることを私は知っています。

例:-平方根(4)=2または-2

誰かが私の暗号を解読したとしても、ハッシュ内のパスワードを簡単に解読できる復号化機能を作成できないはずなので、元に戻せない関数が必要です。

この関数を使用すると、ハッシュをより安全にすることができます。

誰かがそのような機能をもっと説明してくれると助かります。

4

4 に答える 4

5

R での 2 乗は、情報が失われるという意味で元に戻せません。しかし、それはハッシュ関数の目的ではありません。

暗号化ハッシュ関数には、次の 2 つの主要なプロパティがあります。

  1. 衝突と呼ばれる、同じ出力を持つ 2 つの入力を見つけるのは難しい
  2. プレイメージと呼ばれる、特定の出力に一致する入力を見つけるのは難しい

R の 2 乗には、次のいずれのプロパティもありません。

  1. 衝突を見つけるのは簡単です。を計算xするだけ-xで、どちらも を 2 乗しx*xます。
  2. プレイメージを見つけるのは簡単です。平方根を計算します。これには効率的なアルゴリズムがあります。(結果が無理数の場合、無限の数字列を出力できないという問題は無視してください)

残念ながら、これらのプロパティを持つ「単純な」関数はありません。

関連する質問:

于 2012-08-19T17:52:45.517 に答える
1
  1. 0 の累乗。
  2. 虚数は、計算機が計算方法を知っている場合にのみ方程式を渡すことができるため、適切です。
  3. 数値の丸め。
于 2013-12-07T13:46:23.157 に答える
1

モジュロは不可逆です。絶対値は不可逆です。丸めは元に戻せません。

于 2015-10-11T07:25:49.113 に答える
0

ソルティングの「機能」は可逆的であるべきです。ソルトのポイントは、ハッシュしたい値に余分な (推測しにくい) データを追加することです。このようにして、攻撃者は独自の推測でハッシュをリバース エンジニアリングするのがはるかに難しくなります。

一般的な解決策の 1 つは、ハッシュするテキストにソルトを追加/追加することです。

たとえば、隠し値が「password」で、salt が 0 から 255 までの乱数である場合、データベースに実際に格納されるのは md5(123password), 123 かもしれません。操作はすでにハッシュ化されているため、元に戻すことができませ

于 2012-08-19T17:25:11.463 に答える