暗号化アルゴリズムを理解するのには
###どのような数学の知識が要求されるのでしょうか?
(自分は高校生1年生で数学の知識は乏しいです)
公開鍵・共通鍵などの概要くらいなら知っていますが
鍵の生成など数学的なアルゴリズムは全く理解していません。
最終的には暗号化を(簡単に)プログラミングして再現したいのですが
それを実現するには(数学的に)どのような
知識が要求されますか?
確かに調べれば排他的論理和とか・・・いろいろ出てきますが・・・
(うまく表現できない・・・)
#質問1
いまから暗号化アルゴリズムを(具体的に)勉強
するとしたらどこの分野(数学)から
手を付ければいいですか?
一応、秘密の鍵のアリスや現代暗号入門などを買っているのですが
数学的な説明をされると理解できなくなってしまい
飛び飛びで読んでいる状態です・・・
分からないので参考になるリンクまたは説明をお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答5件
0
暗号というのはそれこそ紀元前からある(シーザー暗号とか)ものです。
その長い歴史の中で強度を増してきましたが、「解読のために」数学的アプローチがなされてきた歴史もあります。
そして現代暗号では、数学的手法を用いることで強固な暗号を作り出しています(公開鍵暗号方式)。
事ほどさように暗号と数学は切っては切れない中にあります。特に公開鍵暗号は、その強度的保証を「逆方向からの演算では演算数が爆発して意味のある時間内には演算しきれない」ことに根拠を置いています。
一般的な RSA 暗号は素因数分解が多項式時間では処理できないことに、楕円曲線暗号では同様に楕円曲線関数の逆演算が多項式時間では解けないことを利用しています。
これらも含めて、いちど、暗号の歴史を調べてみるのもいいと思います。幸いというか、こんな本もありますから(電子書籍もあり)。
サイモン・シン著 暗号解読 (上下巻)
投稿2019/08/22 00:22
編集2019/08/22 01:16総合スコア13707
0
ベストアンサー
暗号を学ぶ上で、コレを知っていればOKと言うものは存在しないと思います。
何故なら、暗号とは元の文(平文)を他人には読めないようにして、読ませたい人にだけ読めるようにすることですが、その手法は無限に存在するからです。
第二次世界大戦の時にドイツが開発したエニグマと言う暗号装置は、
入力するキーと出力される文字が異なる特殊なタイプライターのようなものを使い、しかもそのタイプライターは同じ文字を続けて打っても毎回違う文字が出るようになっていました。
仕組みとしては、1文字入力する毎にキーマップが変化する構造でした。
また、昭和の時代には花の中三トリオと呼ばれた歌手たち(山口百恵、桜田淳子、森昌子)がいて、その3人はバビ語と言う言葉で会話していて、
これを知らない人は宇宙人と交信していると思ったそうです。
仕組みとしては、1文字毎に関係ない文字を挟むことで難読化された言葉で、普通の人が聞いても何を喋っているのか理解できません。
ただ、これらの仕組みは、ロジックがバレると解読されてしまうので、特定の相手との通信では使えても、暗号の仕組みとして一般化することはできません。
そこで、ロジックがバレても通用する共通鍵暗号と呼ばれる暗号が登場しました。
最も単純なのはXORを用いた暗号です。
但し、これだとお互いが事前にどんな鍵を使うかを決めておかなければなりませんので、鍵を送る通信が傍受されれば解読されてしまいます。
そこで登場したのが、公開鍵暗号です。
公開鍵で暗号化したものは秘密鍵でしか解読できないので、お互いが相手に公開鍵を送り合っておけば、送られてきた暗号は自分だけが持っている秘密鍵でしか解読できないので、通信が傍受されて公開鍵が漏れても、解読されることはありません。
で、その仕組みで用いられている数学の知識が、
初等整数論の「合同式」「オイラーの定理」「一次不定方程式の整数解」「ユークリッドの互除法」「オイラー関数」と言うもののようです。
http://tsujimotter.hatenablog.com/entry/rsa
ただ、これもこの暗号方式で有効な知識と言うことでしかありません。
今後もしかすると、今までとは全く異なる概念の暗号が登場するかもしれません。
そしてそれは、数学の世界から離れたところで登場するかもしれないからです。
投稿2019/08/21 14:41
編集2019/08/21 22:36総合スコア324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/22 06:43
2019/08/22 09:58 編集
2019/08/22 09:00
2019/08/22 09:08

0
代数学
と
符号理論
が
重要ですね。
生成多項式とか出てくると大体みんなそのへんで理解が詰まります。
投稿2019/08/22 00:33
編集2019/08/22 00:34総合スコア359
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
大学で学ぶ微分積分学や線形代数学(+確率・統計)を一通り学べば証明が読めるようになると思います。
投稿2019/08/21 12:23
総合スコア438
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
どこの分野
数学をやってください。
高校の数学、そして大学の数学、もしかすればそれでも足りないかもしれませんが、そのときは頑張って学んでください。
投稿2019/08/21 12:05
総合スコア88163
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/21 12:46
2019/08/21 12:48

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/22 05:28