質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Security+

Security+は、IT業界団体であるCompTIA認定の資格の一つです。ネットワークセキュリティやコンプライアンスと運用セキュリティといったセキュリティ分野における知識・技術の証明になり、セキュリティインシデントに対応するための知識も評価されます。

Q&A

解決済

5回答

3466閲覧

暗号化アルゴリズムを理解するのに必要な数学知識

kazuyakazuya

総合スコア193

Security+

Security+は、IT業界団体であるCompTIA認定の資格の一つです。ネットワークセキュリティやコンプライアンスと運用セキュリティといったセキュリティ分野における知識・技術の証明になり、セキュリティインシデントに対応するための知識も評価されます。

0グッド

1クリップ

投稿2019/08/21 11:36

暗号化アルゴリズムを理解するのには
###どのような数学の知識が要求されるのでしょうか?
(自分は高校生1年生で数学の知識は乏しいです)

公開鍵・共通鍵などの概要くらいなら知っていますが
鍵の生成など数学的なアルゴリズムは全く理解していません。

イメージ説明
これはDESのアルゴリズム・・・

最終的には暗号化を(簡単に)プログラミングして再現したいのですが
それを実現するには(数学的に)どのような
知識が要求されますか?

確かに調べれば排他的論理和とか・・・いろいろ出てきますが・・・
イメージ説明
(うまく表現できない・・・)

#質問1
いまから暗号化アルゴリズムを(具体的に)勉強
するとしたらどこの分野(数学)から
手を付ければいいですか?

一応、秘密の鍵のアリスや現代暗号入門などを買っているのですが
数学的な説明をされると理解できなくなってしまい
飛び飛びで読んでいる状態です・・・

分からないので参考になるリンクまたは説明をお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

暗号というのはそれこそ紀元前からある(シーザー暗号とか)ものです。
その長い歴史の中で強度を増してきましたが、「解読のために」数学的アプローチがなされてきた歴史もあります。
そして現代暗号では、数学的手法を用いることで強固な暗号を作り出しています(公開鍵暗号方式)。

事ほどさように暗号と数学は切っては切れない中にあります。特に公開鍵暗号は、その強度的保証を「逆方向からの演算では演算数が爆発して意味のある時間内には演算しきれない」ことに根拠を置いています。
一般的な RSA 暗号は素因数分解が多項式時間では処理できないことに、楕円曲線暗号では同様に楕円曲線関数の逆演算が多項式時間では解けないことを利用しています。

これらも含めて、いちど、暗号の歴史を調べてみるのもいいと思います。幸いというか、こんな本もありますから(電子書籍もあり)。
サイモン・シン著 暗号解読 (上下巻)

投稿2019/08/22 00:22

編集2019/08/22 01:16
tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

ベストアンサー

暗号を学ぶ上で、コレを知っていればOKと言うものは存在しないと思います。
何故なら、暗号とは元の文(平文)を他人には読めないようにして、読ませたい人にだけ読めるようにすることですが、その手法は無限に存在するからです。

第二次世界大戦の時にドイツが開発したエニグマと言う暗号装置は、
入力するキーと出力される文字が異なる特殊なタイプライターのようなものを使い、しかもそのタイプライターは同じ文字を続けて打っても毎回違う文字が出るようになっていました。
仕組みとしては、1文字入力する毎にキーマップが変化する構造でした。

また、昭和の時代には花の中三トリオと呼ばれた歌手たち(山口百恵、桜田淳子、森昌子)がいて、その3人はバビ語と言う言葉で会話していて、
これを知らない人は宇宙人と交信していると思ったそうです。
仕組みとしては、1文字毎に関係ない文字を挟むことで難読化された言葉で、普通の人が聞いても何を喋っているのか理解できません。

ただ、これらの仕組みは、ロジックがバレると解読されてしまうので、特定の相手との通信では使えても、暗号の仕組みとして一般化することはできません。

そこで、ロジックがバレても通用する共通鍵暗号と呼ばれる暗号が登場しました。
最も単純なのはXORを用いた暗号です。
但し、これだとお互いが事前にどんな鍵を使うかを決めておかなければなりませんので、鍵を送る通信が傍受されれば解読されてしまいます。

そこで登場したのが、公開鍵暗号です。
公開鍵で暗号化したものは秘密鍵でしか解読できないので、お互いが相手に公開鍵を送り合っておけば、送られてきた暗号は自分だけが持っている秘密鍵でしか解読できないので、通信が傍受されて公開鍵が漏れても、解読されることはありません。
で、その仕組みで用いられている数学の知識が、
初等整数論の「合同式」「オイラーの定理」「一次不定方程式の整数解」「ユークリッドの互除法」「オイラー関数」と言うもののようです。

http://tsujimotter.hatenablog.com/entry/rsa

ただ、これもこの暗号方式で有効な知識と言うことでしかありません。

今後もしかすると、今までとは全く異なる概念の暗号が登場するかもしれません。
そしてそれは、数学の世界から離れたところで登場するかもしれないからです。

投稿2019/08/21 14:41

編集2019/08/21 22:36
chun

総合スコア324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2019/08/22 00:27

概ね同意です。しかし文中で「ロジック」と書かれているのは鍵のことだと思いますが、普通鍵はロジックに含めないのでそこの訂正をお願いします。
kazuyakazuya

2019/08/22 05:28

ありがとうございます。
chun

2019/08/22 06:28

Zuishinさんへ 「「ロジック」と書かれているのは鍵のこと」ではありません。 方式とか仕組み、考え方と言った意味です。
Zuishin

2019/08/22 06:43

エニグマは鍵を使うはずですが。
chun

2019/08/22 08:22

エニグマやバビ語は色々な暗号があることの例示に過ぎず、 その仕組みを正確に解説しているわけではありません。 また、確かにエニグマは鍵を利用していましたが、 だからと言って共通鍵暗号方式に分類するのは誤りだと私は考えます。 何故なら、エニグマの鍵は機械の設定を変更するためのコードで、 17576通りのパターンしかありませんでした。 実際、エニグマの解析は、日ごとに変わるこの鍵を総当たりで解析することで、復号に成功しています。 文字を別の文字に置き換える暗号は古典的な手法です。 しかし、工学的アプローチを用い、 1文字入力する毎にこの文字の対応表が変化することで、 同じ文章を暗号化しても毎回異なる暗号文が生成されるようにし、 暗号化された文章を同じ機械に入力すると平文が得られると言う反転性を持った仕組みが、 エニグマの本質だと私は思っています。
Zuishin

2019/08/22 09:58 編集

解読できれば共通鍵暗号方式でないというのは無理があります。これより遥かに簡単なカエサル暗号も共通鍵暗号に分類されるはずです。これらが共通鍵暗号でないという資料がどこかにありますか?
chun

2019/08/22 08:53

なにがしかの値が用いられればすべて共通鍵暗号に含まれると言うことですね、 それは存じませんで失礼しました。 ただ、本文を修正するつもりはありませんので、あしからずご了承ください。
Zuishin

2019/08/22 09:00

資料は脳内ということですね。わかりました。本文はそのままで結構です。低評価しました。
guest

0

代数学

符号理論

重要ですね。
生成多項式とか出てくると大体みんなそのへんで理解が詰まります。

投稿2019/08/22 00:33

編集2019/08/22 00:34
hillacken

総合スコア359

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

大学で学ぶ微分積分学や線形代数学(+確率・統計)を一通り学べば証明が読めるようになると思います。

投稿2019/08/21 12:23

gnbrganchan

総合スコア438

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

どこの分野

数学をやってください。
高校の数学、そして大学の数学、もしかすればそれでも足りないかもしれませんが、そのときは頑張って学んでください。

投稿2019/08/21 12:05

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazuyakazuya

2019/08/21 12:23

数学をやることに関しては分かっています。 (高校の大学の知識なしではいけないという意味なのかもしれませんが) 私が質問したことに内容に対して 期待しているものではなかったので低評価。
y_waiwai

2019/08/21 12:26

まあ、あなたがそう思うならそうなんでしょう、としか言いようがないですねw
Zuishin

2019/08/21 12:46

一口に暗号と言っても色々なアルゴリズムがあるので、一概に「ここをやっておけばいい」というのはありません。 xor などは数学なのか怪しいようなもの(論理学やコンピューターサイエンスの分野だと思う)なので、数学だけでも足りません。 ただ、数学の基礎を学んでおけば論文が読めるようになるので、やっておくべきではあります。 身につけておかなければならないのは専門知識ではなく、高校大学の一般教養レベルの知識です。 その先は実際に論文を読んでわからないところを自分で調べていくことになります。とにかく専門書が読めないなら、必要なのは基礎です。
Zuishin

2019/08/21 12:48

その意味でこの回答は、別に間違ってはいません。ただ、それほど役に立つ回答でもないので高評価はしません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問