プロが教える店舗&オフィスのセキュリティ対策術

1つの変数Xを持っている、できるだけ不可逆的な関数を知りたいです。
解は整数、もしくは自然数範囲が良いです。
詳しい方、よろしくお願い致します。

質問者からの補足コメント

  • 入力は6〜8桁の自然数です。
    暗号化をしたいのでできるだけ一方向になる関数が知りたいです。

      補足日時:2020/08/10 09:05
  • 入力値にソルト加えてSHA-2のハッシュ関数に通せば解決できそうですので、質問を締め切ります。

      補足日時:2020/08/10 09:53

A 回答 (3件)

ハッシュ関数なら実用的にはSHA-2かな。

暗号論的ハッシュ関数(先の回答のリンク下の方)の記述ではSHA-256,SHA-384,SHA-512あたり。
https://ja.wikipedia.org/wiki/SHA-2
実際のアルゴリズム詳細は知らないけどソースコードはOpenSSLの実装とかみれば見つかるかと。ただあのソースって汎用化のためかえらく複雑な構成になっていてアルゴリズムのコアを探すのに苦労するけど。
    • good
    • 0
この回答へのお礼

IT通信分野では広く使われていますよね
ただ自分もアルゴリズムはわからないのでプログラムに組み込むのは難しいですね、、
逆に有名なので入力値がわかるとツールなど使って突破されそうというのもありますね

お礼日時:2020/08/10 09:23

欲しいのは一方向関数あるいは暗号論的ハッシュ関数ですかね。


https://ja.wikipedia.org/wiki/%E4%B8%80%E6%96%B9 …
https://ja.wikipedia.org/wiki/%E6%9A%97%E5%8F%B7 …
質問の条件だけだと全て0にするゼロ関数でも良いことになりますけど。
条件が全単射だと、数学的に存在は示せるけど具体的には記述不能になる。というか"不可逆的"の厳密な定義が難しいか。
    • good
    • 0
この回答へのお礼

まさにその通りでハッシュ関数が欲しいです。
なにか良い関数ありませんか?
よろしくお願いします。

お礼日時:2020/08/10 09:01

質問が意味不明だが(特に、「解」とは何を指しているのか?)、こういうのがある。



f(x)=lim[n→∞] [ lim[k→∞] {cos(n!πx)}^(2k) ]

これは、xが有理数のときf(x)=1、xが無理数のときf(x)=0
    • good
    • 0
この回答へのお礼

趣旨はあってます。
ただこれは暗号数学の問題なので解は解読されにくい比較的大きな数になるようにして欲しいです。

お礼日時:2020/08/10 08:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!