- ベストアンサー
素人が考えた暗号の複合性と一般的な暗号化アルゴリズムの比較
- 素人が考えた暗号は簡単に複合できるものですか
- 一般的な暗号化アルゴリズムと素人が考えた暗号の複合の難易度を比較
- グループ内で適当に考えた暗号と一般的な暗号化アルゴリズムの安全性について考察
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
> また疑問がわいたのですが、複数の暗号を組み合わせた場合、 > たとえばA⇒B⇒Cで暗号化した場合、 > C⇒B⇒Aの順で複合していくものでしょうか? A⇒[方式Xで暗号化]⇒B⇒[方式Yで暗号化]⇒C としたとき、 Cは方式Yで暗号化したのだから、当然方式Yで復号できます。 なので C⇒[方式Yで復号]⇒B は自明です。 でも C⇒[方式Xで復号]⇒? は何か分かりませんよね? そのため、(復号順序が不問になるような特殊な例をのぞいて)逆順でないと復号できないですよ。 別に複数の方式で暗号化したから何か変わるわけでもなく ある方式で暗号化したものは同じ方式で復号するというだけです。 > この場合、C⇒Bで複合できたとしても、複合できたことを確認する手段はあるのでしょうか? それは復号できたことを確認する手段を準備しているかどうか次第です。 これは、1回だけ暗号化したときにも言えることです。 (B⇒Aだって確認手段が無いと正しく復号できたかどうかは分からない。) > 一万年ぶんが1秒で計算できるとして、計算速度は > 60*60*24*365*10000=3.15*10^11 倍の速度になりそうですが、 量子コンピューターは 既存の方法に比べて計算速度がX倍になるというような単純なものではありません。 どちらかというと、 既存コンピューター: 鍵長を1bit増やすと計算時間が2倍に 量子コンピューター: 鍵長を増やしても計算時間が増えない がまだ近いと思います。 > 3回くらい多重暗号化を施せば総当り攻撃の回数は、はるかに大きな値になります。 その前提は、3回の復号をすべて行うことで、 初めて正しく復号できたかどうか判定できるときに成立しますね。 ・1回目の復号について総当たり→1回目の正しい復号結果取得 ・↑の結果を使って2回目の復号について総当たり→2回目の正しい復号結果取得 ・↑の結果を使って3回目の復号について総当たり→3回目の正しい復号結果取得 と分けて総当たりができる場合は、総当たりの回数は3倍にしかならないです。 (逆に1回目の復号結果が正しいかどうか判定できない場合は、 「総当たりしたすべての」1回目の復号結果に対して2回目以降の総当たりをすることになり、 組み合わせ数が大幅に増える。) なので、この方法で総当たり回数を増やす気なら、 復号の途中経過で正しく復号できたか確認する手段を準備してはいけません。 なお、2回暗号化したにもかかわらず強度が2倍にしかならなかった よく知られている例としては、DESを2回使った2DESが有ります。 > ひとつの暗号方式で鍵長を長くすることと、複数の暗号方式使うこととはどちらが解読困難なのでしょうか。 脆弱性が無い、別の言い方をすると「総当たりしか解く手段が無い」と仮定するなら同じですね。 前述のような、総当たり回数を減らせる脆弱性があるならもちろん話は変わってきますが。
その他の回答 (6)
- uyama33
- ベストアンサー率30% (137/450)
>3回くらい多重暗号化を施せば総当り攻撃の回数は、はるかに大きな値になります これは要するに鍵空間が一気に広がるということでしょうかね。それだと暗号方式は同じで、鍵長を変えるだけでも良さそうな気がするのですが、この点はどうなのでしょうか。ひとつの暗号方式で鍵長を長くすることと、複数の暗号方式使うこととはどちらが解読困難なのでしょうか。 ですが、 例えば、10種類の暗号化方式の中から、3種類を自由に選んで使えるようにしてあれば、 総当り方式でとくときには、鍵が増えることなもちろんですが、 さらに、いろいろな暗号化方式の組み合わせについて確認しなくてはならないので、 複数の暗号化方式から、いくつかを自由に選択できるようにしておいたほうが、解読困難になる。 と考えています。
- Gotthold
- ベストアンサー率47% (396/832)
> 隠すことによるセキュリティ(security by obscurity)は > NGだと言われてるそうですけど、 > 併用すれば場合によっては > 有用たりえるというところでしょうか。 私の意見としては、 有用かどうかは分からないけど 少なくとも足を引っ張る(それによってかえって脆弱になる)ことはなさそうかな、 です。 別の言い方をすると、無いよりましかもしれないし無いのと同じかもしれない。 そもそも有用性については評価しようが無いのが、オレオレ暗号方式なので。 まあ、評価しようが無いって時点で、たいていはNo Goodな気もします。
- uyama33
- ベストアンサー率30% (137/450)
専門家ではありませんが、興味を持って調べたりしています。 量子コンピュータについては、 「方法によって実際にかかる時間は変わるため、定量的に示すことはできないが、これまで解読に何千年もかかるとされていたものが遅くても数時間程度で高速に解けると分かった。これは非常に衝撃的だった」(丸山氏) との記述がありました。 一万年ぶんが1秒で計算できるとして、計算速度は 60*60*24*365*10000=3.15*10^11 倍の速度になりそうですが、 3回くらい多重暗号化を施せば総当り攻撃の回数は、はるかに大きな値になります。 だから、 1回目 AES 2回目 俺俺暗号化 3回目 カメリア のようにサンドイッチにして使えば、有効な気がしています。 ためしに、AES,カメリア、Twofish で、3回暗号化してみましたが、 データ量の増加はほんのちょっとです。 計算時間は1秒ほど余分にかかりました。 ですから、暗号化と復号化の費用はほとんどかかりませんが、 盗聴した人が解読するには、世界中の電力を全部使っても不足すると思います。
- Gotthold
- ベストアンサー率47% (396/832)
> 解読困難な暗号方式を作ることと、それを解読することは、どちらが難しいでしょうか? 仮に解読する方が簡単なら、「解読困難な暗号方式」はそもそも存在できなさそうですね。 (解読が簡単な以上はそれは解かれちゃうわけで。) 「解読困難な暗号方式」を作るためには既知の解読方法をすべて知っていれば良くて、 「解読困難な暗号方式」を解読するためには未知の解読方法が必要と考えても、 難しいのは解読の方でしょうか。 > 将来、ほとんど解読不可能な暗号方式ができるか、 > 逆にどんな暗号方式を使ったとしても容易に解読されてしまう時代が来る可能性はあるでしょうか? 現在よく使われている計算量的安全性に依拠した暗号方式は、 量子コンピュータが実現されたならば安全では無くなると言われています。 原理的に解読不可能な暗号としてはワンタイムパッドが知られています。 (運用が困難で実用的ではありませんが。) また、量子暗号では完全な秘密通信が可能になると考えられています。 > 解読困難なことが検証済みの暗号方式を使ったと上で、 > 更にその暗号文をオレオレ暗号方式を使って二重に暗号化することを考えてみます。 > この場合、オレオレ暗号方式は、する必要が全くない余計なことにすぎないのでしょうか? その場合、少なくとも安全性が下がることはなさそうですから、 その手間に効果が見合うかどうかだけですね。 まあ、オレオレ暗号方式だけに頼るよりは良いかと思います。
お礼
早速のご回答有難うございます。 >量子コンピュータが実現されたならば安全では無くなると言われています。 これは結構怖い話ですね。量子暗号について、大変興味がわいてきました。 >その場合、少なくとも安全性が下がることはなさそうですから、その手間に効果が見合うかどうかだけですね。 隠すことによるセキュリティ(security by obscurity)はNGだと言われてるそうですけど、併用すれば場合によっては有用たりえるというところでしょうか。
- Gotthold
- ベストアンサー率47% (396/832)
歴史的には、 暗号の安全性が暗号アルゴリズムの秘匿によって担保されていたことは珍しいことではなく、 その場合は暗号解読は暗号アルゴリズムさえ分からない状態から行われることになります。 (そして多くの暗号が解読されてきました。 素人が考える暗号なんて、たいていこの歴史的暗号レベルです。 質問者が提示しているのも、いろいろ入れ替えるだけなのでこのカテゴリですね。) 現代暗号では、 暗号アルゴリズムは公開(知られても問題ないもの)とし、暗号鍵を秘匿します。 暗号化アルゴリズムを秘匿する問題点としては、利便性などもありますが、 秘匿してしまうとその暗号アルゴリズムの安全性を第三者が検証できないと言うことがあります。 > こういう場合でも、一般的に知られているRSAなどの暗号化のほうが複合は難しいのでしょうか? 一般に知られている(安全とされている)暗号は、 解読が困難であることが多くの人によって検証済みのものです。 それに対して、暗号アルゴリズムを公開できないオレオレ暗号方式では 安全性を第三者がどうやっても担保できないです。 > それでもたいていの暗号はすぐに解読されてしまうものなのでしょうか? たくさんあるオレオレ暗号方式の大半が解読困難なものであったと仮定しても、 一部に解読容易なものが混じっているならオレオレ暗号方式は脆弱です。 自分が使っているオレオレ暗号方式が安全なのか脆弱なのか判断できないので。 (あるオレオレ暗号方式を公開して 安全と判断するのに十分な検証が行われたなら話は別かもしれませんが、 そこまでやったならもはやその暗号はオレオレ暗号方式とは呼ばれないでしょう。)
お礼
もう一つ疑問がわきました。解読困難な暗号方式を作ることと、それを解読することは、どちらが難しいでしょうか?将来、ほとんど解読不可能な暗号方式ができるか、逆にどんな暗号方式を使ったとしても容易に解読されてしまう時代が来る可能性はあるでしょうか?
補足
ご回答ありがとうございます。 更に疑問がわいたのですが、解読困難なことが検証済みの暗号方式を使ったと上で、更にその暗号文をオレオレ暗号方式を使って二重に暗号化することを考えてみます。この場合、オレオレ暗号方式は、する必要が全くない余計なことにすぎないのでしょうか?
- bardfish
- ベストアンサー率28% (5029/17766)
文字を入れ替えるだけの暗号は昔からやり尽くされた方法で解読方法もほぼ確立されています。だからそういうソフトも有る。 乱暴な言い方をすれば可能な組み合わせ全てを実行するという方法も今のパソコンならあっという間に終わってしまいます。 実際に、もっと複雑なアルゴリズムで暗号化されたデータから暗号化前のテキストを取り出すという公式プロジェクトがあります。 このプロジェクトでは論理組み合わせ数を全て試してみるという方法をとってます。 日本でも広く採用されている暗号方式を採用した世界的規模のコンテストではわずか数時間で解読されました。 そのコンテストの趣旨は「こんな静寂な暗号プロトコルを国家機密レベルの暗号として使用してもいいのか?」と提言することを目的のひとつとしています。 現在存在する最新暗号でも力技で解読することは可能です。 時間的に現実的かどうかという問題を無視すれば・・・という前提付きですがw
補足
貴重な情報有り難うございます。もう一つ疑問がわいたのですが、コンピュータは復号化に成功したということを、どうやって判断するのでしょうか?人間が見たら読めるので、判断できると思うのですが、コンピュータが平文か暗号文かを十分高速に判断するのは、案外難しいような気がするのですが、其の点はどうなのでしょうか?
補足
なるほど。 ご回答有難うございます! また疑問がわいたのですが、複数の暗号を組み合わせた場合、たとえばA⇒B⇒Cで暗号化した場合、C⇒B⇒Aの順で複合していくものでしょうか?この場合、C⇒Bで複合できたとしても、複合できたことを確認する手段はあるのでしょうか? >3回くらい多重暗号化を施せば総当り攻撃の回数は、はるかに大きな値になります これは要するに鍵空間が一気に広がるということでしょうかね。それだと暗号方式は同じで、鍵長を変えるだけでも良さそうな気がするのですが、この点はどうなのでしょうか。ひとつの暗号方式で鍵長を長くすることと、複数の暗号方式使うこととはどちらが解読困難なのでしょうか。