ファイルを暗号化・復号化する処理をつくろうとしています。
-
現在使われている暗号化・復号化アルゴリズムは、どんなものが一番破られにくいのでしょうか?
-
暗号周りの事を調べていて、ed_25519というアルゴリズムを知りました。公開鍵暗号でつかわれているようですが、
通信内容の暗号化はこれとは別のアルゴリズムで暗号化されているのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
1.に対する回答
明確な回答は難しいです。新しいアルゴリズムや、鍵長の長いアルゴリズムが良いように考えるかもしれません。ですが、アルゴリズムそのものに欠陥がないことを数学的に証明するのは困難なため、長い検証期間が必要になります。現状だと米政府が標準暗号として指定している、Rijndael暗号やRSA暗号を用いるのが現実的な選択となるでしょう。
2.に対する回答
共通鍵の交換に公開鍵暗号を使用し、データの暗号には共通鍵暗号を使用します。公開鍵暗号は処理に時間がかかるため多くのデータを処理するには向かない為です。現在SSL/TLSで用いられるのはRSAとDiffie-Hellmanです。
貴方の見つけた「ed_25519」は電子署名の為のアルゴリズムで、暗号通信の為の物では無いですね。
投稿2017/08/30 03:08
総合スコア472
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/30 12:46
退会済みユーザー
2020/03/03 12:11
0
回答の前に、書籍「暗号技術入門 第3版 秘密の国のアリス」をおすすめしておきます。
現在使われている暗号化・復号化アルゴリズムは、どんなものが一番破られにくいのでしょうか?
現在実用されている暗号アルゴリズムは、絶対に破られないものは存在しません。膨大な量の計算機を用意すればいずれは破られてしまうものばかりです。それでも実用されているのは、それらの暗号化アルゴリズムが 計算量的安全性 をもつ、つまり現実的に用意できる計算機と時間では破られないことを安全性の根拠としています。
暗号アルゴリズムによっては、脆弱性が発見されたことでより短時間で破られてしまうものも存在します。質問への回答としては、「脆弱性が発見されていないアルゴリズム」を用いて「鍵長が長いほど破られにくい」となります。
(注:暗号化強度は暗号アルゴリズム選択にも依存しますから、鍵長だけによる安全性判断はできません。つまり、"鍵長1024bitの暗号A"よりも"鍵長2048bitの暗号B"が安全か否かという直接比較はできないという意味です。ただし、比較のため"鍵長2048bitの暗号B"は"鍵長512bitの暗号A相当"のような換算が行われることもあるようです。なぜそのような換算が可能なのか理解するのは暗号学の知識が必要だと思われます...私は知りません。)
暗号周りの事を調べていて、ed_25519というアルゴリズムを知りました。公開鍵暗号でつかわれているようですが、
通信内容の暗号化はこれとは別のアルゴリズムで暗号化されているのでしょうか?
通信内容の暗号化=SSLやTLS を仮定します。これらの通信路暗号化では公開鍵暗号と共通鍵暗号を組み合わせて、公開鍵暗号で"共通鍵暗号の鍵"を保護+共通鍵暗号でデータ本体を保護しています。共通鍵暗号は公開鍵暗号に比べて計算量が少ないため、このようなハイブリッド方式が採用されます。
投稿2017/08/30 02:29
編集2017/08/30 02:50総合スコア6191
0
###以下、2017/8/30大修正
暗号といってもいろいろ種類があります。例えば、公開鍵暗号と共通鍵暗号に大きく分かれます。また、用途も様々です。
セキュリティの世界の課題は単に規制をかければいいというものではありません。極論、データの漏洩や改竄防止だけに注力するならば、**「究極的には何もできない(漏洩や改竄を起こさない究極的な方法はデータを一切扱わないこと)」**となります。
要件を具体的に定めらければ暗号の良し悪しを定めることはできません。
投稿2017/08/29 12:48
編集2017/08/30 00:20総合スコア4830
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/29 23:37
2017/08/29 23:47
退会済みユーザー
2017/08/30 00:15
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
###1に対する回答
暗号化、復号化に関する専門家ではないのでざっくりな回答になります。
暗号化復号化には様々は方式があります。
・その中で、すでに方式的に破る方法がある古いものがあるのでそれは除外すべきかと思います。
・暗号化は何か暗号鍵なるものが必要になります。この鍵の長さが短いと、すぐに破られる可能性があるため、出来るだけ長い方が良いとです。
・出来るだけ最新のバージョンのものを利用する。
###2に対する回答
暗号化、復号化に関する専門家ではないのでざっくりな回答になります。
通信内容の暗号化方式も様々な方法があり、httpsではサーバとクライアント間で、これからどのような方式でお互いにやりとりしましょうということを決めるためのネゴシエーション方式が決まっており、これによって動的に暗号化、復号化方式などが決定します。よって、どの方式で通信されているかはそのときにならないとわからないということになります。
投稿2017/08/30 00:10
総合スコア514
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。