CGI-BBS > CGI > Perl > 復号化


カレッヂ
カレッヂ


質問者 machiko  投稿日 1/30(火) 22:00:30
@salt = ('.','/','a'..'z','A'..'Z','0'..'9');
$salt = $salt[int(rand(64))] . $salt[time % 64];
$passwd{$form{id}} = crypt($form{pass1},$salt) . "\n";
と書いてパスワードを暗号化するプログラムを本を見て書いたのですが復号化が
分かりません。本にも書いてありません。どうしたらいいですか?
教えて下さい。
回答者 しあわせのツボ  [削除]  投稿日 1/30(火) 23:17:12
crypt関数は普通の方法では元に戻せない暗号法を用いています。
回答者 まさ  [削除]  投稿日 1/31(水) 07:48:03
茶々ですけど、cryptは正確には暗号ではないです。
暗号と言うと、カギが分かれば、復元できるイメージがありますからね。

cryptによって生成された文字列は不可逆性記号です。
生成された文字列と元の文字列が一致しているかは調べられますが、生成された文字列を
復元することは不可能です。

元の文字列が4桁の数字程度なら、総当りで調べることは可能ですが、8桁の英数字
(大文字・小文字を含む)だとほとんど無理でしょう。

と言うことでcryptの復元は何をどうやっても無理です。そういう仕様です。
回答者  [削除]  投稿日 1/31(水) 11:02:48
もし復号化する方法があったら
誰でも解読できてしまうので
その時点で暗号でなくなります。
意味無いです。



#大日本意味無し教ってどうして終わっちゃったんだろう。
回答者 まさ  [削除]  投稿日 1/31(水) 12:42:01
>もし復号化する方法があったら
>誰でも解読できてしまうので
>その時点で暗号でなくなります。
>意味無いです。

茶々ばかりですけど、許して下さいm(__)m

復号化する方法があるからと言って、誰でも復元できるわけではありません。
一番有名なものには公開鍵暗号(RSA)があります。RSAはその字のごとく
鍵が公開されています。おまけに暗号文もわかっています。普通鍵と暗号文がわ
かったら誰でも復号できるのですが、これがRSAのすごいところで、これがわ
かっても事実上解読不可能です。復号化する方法はわかっているのですができな
いのです。何故かは専門書にゆだねます。簡単には2つの大きな素数を掛け合わ
せてさらに大きな数を作るのは簡単ですが、互いに素な大きな数を2つの素数に
素因数分解するのは極めて難しいという、一方通行問題によります。これはNP
完全問題、巡回セールスマン問題などにも発展していきますね。

また復号化する方法があるから、それは暗号でなくなると言うのも間違いです。
暗号は基本的に必ず全て復元できます。逆に復元できないものは暗号とはいい
ません。そういった意味でcrypt関数は絶対に復元できないので正確には暗号
でないのです。先のRSAも理論上復元する方法はあります。それが現実には
無理だと言うだけです。数論が進んで簡単に素因数分解できるアルゴリズムが
みつかれば別ですが。

余談になりますが、RSAは確か1970年代に論文が発表されたと思います。30年
前です。それが昨今のコンピュータの発達でようやく実現されるようになりまし
た。今ではメールの暗号化などこれを用いていますね。
回答者  [削除]  投稿日 1/31(水) 22:12:26
ご指摘ありがとうございます。

この問題を追及すると
「誰でも暗号化できて誰でも解読できる暗号は暗号と呼べるのか」
という疑問にぶつかりますが
「暗号」という言葉の意味は
どこかの団体で厳密に定められているものなのでしょうか。
回答者 まさ  [削除]  投稿日 2/1(木) 07:09:15
>この問題を追及すると
>「誰でも暗号化できて誰でも解読できる暗号は暗号と呼べるのか」
>という疑問にぶつかりますが

広い意味では暗号と呼べるでしょう。
鍵が公開されている一般の暗号ではそういうことができますね。普通鍵は公開しませんけど。
そもそも平文→暗号文→平文と言うのを鍵を使ってできるものを暗号を呼びます。
そこに機密性があるかないかは別問題でしょう。機密性は勝手に人間が付けたものです。

わたしは大学院の数学科で暗号論を勉強しましたけど、暗号の定義は曖昧です。
しかし上のような感じでいいと思います。しかし誰でもできてしまうともはや暗号ではない
じゃないかと言う人もいますけど、わたしは上にも言いましたように変換ができるものを暗号
といいますので、それでいいと思います。

>「暗号」という言葉の意味は
>どこかの団体で厳密に定められているものなのでしょうか。

サーチエンジンで調べたら何か出てきませんか?

#この話題はあまりにも元とかけはなれますので、これ以上は続けません。

返信(回答)する


Web裏技