1
/
5

暗号化とこれからの世界

Photo by Dragonfly Ave on Unsplash

こんにちは。エス・エー・エス株式会社DXサービス部の海田(かいだ)です。この度、不定期で記事を書いていくことになりました!

まずは簡単な自己紹介を!

  • 42歳(妻1子2)
  • 現在は通販ECサイトの基幹システムにおけるインフラ設計・構築・運用を担当(AWSクラウド)
  • IT系の所有資格
    • 基本情報技術者
    • 応用情報技術者
    • AWS Certified Solutions Architect - Associate
    • AWS Certified Solutions Architect - Professional
  • 多方面に興味はあるが飽きっぽい(笑)
  • 「概要が分かれば満足する分野」「めちゃくちゃ深淵に理解したい分野」がある
  • この世の不思議みたいなものにとても興味がある。
  • 5文字以上の漢字が苦手・・

趣味や好きなこと

  • 旅行(家族と行くことが多いが、一人旅も好き)
  • 車(マツダが好き)
  • PC、クラウド関連(自作PCとかAWSとか)
  • バンド(シンセサイザーが好き)
  • ブログ(Noteで記事も書いてます!よろしければぜひフォローとスキをお願いいたします!)
こぐま|note
はじめに こんにちはこぐまです。 本日はAWSの記事です。といっても・・ この記事はAWSの前提知識なしで読めます。 ぜひ、「クラウド」や「IT」を全く知らなくても、気軽に読める内容を目指していますので、読んでいただけたら嬉しいです! これからしばらく、AWSの「ECS」というサービスについて、 自分が学んだことを備忘録としてまとめていきたいと思います。 ...
https://note.com/koguma_gunso

というわけで、よろしくお願いいたします!

さて第一回目の今日は、
最近ちょっとだけ学んでみた「暗号化」のお話と、
少しずつ話題になってきている(難しいけど面白いなあと思った)
「量子コンピューター」なるものについて書いていきたいなと思います。
技術としてはとても難しいものですし、
私自身、そのさわり程度すら理解できているか怪しいものですが・・
なるべく優しい言葉で書いていきたいなと思います。

では、まずは暗号化の話から。

1.みんな「鍵」をかける・・守りたいから、見られたくないから。

お家を出るとき、をかける。
会社のロッカーでをかける。
車や自転車から離れるとき、をかける。

私たちは日常生活のいろんなタイミングでをかけます。
ところでなぜ、鍵をかけるのでしょうか?

鍵をかける目的は、
その内側にあるものを守りたいから!
その内側にあるものを見られたくないから!
・・ですね。

もしも世界中に、人のお金やモノを盗んだりするような悪い人が一人もいなくて、
また、自分の持ち物や振る舞いを、誰に見られてもかまわない気にしない・・
そんな世の中だったら、鍵なんて必要ないんでしょうね。
きっと心の鍵ですら、必要ないんでしょうね・・(ちょっと哲学的(笑))

ところが、世界も自分も、そういう次元に達しているわけではないので、
やはり日常生活で鍵は必要です。

ところで、「鍵」というと車や家やロッカーだけではなく、
スマホやPCで、モノを買ったり、メッセージをやり取りする場合にも
使われていることはご存知でしょうか。

はい、これですね。
いわゆる「HTTPS」というやつです。

「HTTPS」については以下記事で記載しているので、よかったら見てみてください!

ブラウザの鍵マーク「HTTPS」ってなんだろう? 前半|こぐま|note
こんにちはこぐまです。超久しぶりの投稿です。 仕事中ぼーっと調べもの( ネットサーフィン)しててふと思いました。 あ、鍵ついてる。 何気なーく見ているサイト(例えばこのNote)も、ちゃんと 鍵マークついてますね。 本日は、いくつかのサイトから、自分なりに 鍵マーク(HTTPS)について学んで感じたことを共有したいと思います。IT関連にあまり詳しくない方も、 ...
https://note.com/koguma_gunso/n/n029ea9e33f82?magazine_key=mb355f1d2b9a8

HTTPSの大きな役割は2つ。「暗号化」「存在証明」です。
そして、そのどちらにも「鍵」を使います。

さて、どんなをつかうのでしょうか?
一般的な車や家やロッカーの鍵と何がちがうのでしょうか?

2.今の世の中のセキュリティは「魔法の鍵」で成り立っている

HTTPSの技術で使われている「鍵」はとてもとても不思議な「魔法の鍵」です。
それはどんな鍵かというと、「一組の鍵」です。

「一組」なので、鍵としては「2つ」あります。
片っぽを「公開鍵」、もう片っぽを「秘密鍵」と言います。
(多分名前を聞いたことある方は多いのではないでしょうか?)
そしてこの「一組の鍵」はとても面白い特徴を持っています!

例えばここに一つの宝箱があるとします。この時、

  • 「公開鍵」を使って宝箱を施錠すると、「公開鍵」では宝箱は開きません!
  • 「秘密鍵」を使って宝箱を施錠すると、「秘密鍵」では宝箱は開きません!

という特徴があります。締めるのに使った鍵が使えないなんてとても不思議ですね!
対応するもう片方の鍵でしか開かないということです。つまり、

  • 「公開鍵」を使って宝箱を施錠した場合、それを開けられるのは「秘密鍵」だけです。
  • 「秘密鍵」を使って宝箱を施錠した場合、それを開けられるのは「公開鍵」だけです。

これは日常生活で考えてみるとなかなか面白いです。
開けるときと、閉めるときで別々の鍵を使う玄関のドアってあまり見たことないですね。

そしてもう一つ大きな特徴があります。

  • 「秘密鍵」から「公開鍵」はすぐに作れるが、「公開鍵」から「秘密鍵」はすぐには作れない

この「すぐにはつくれない」というのがどれくらいなのか・・というと、
ざっと1億年くらいだそうです。
・・人類は生きてるんですかね?(笑)

この「魔法の鍵」の存在と特徴が、世界中のセキュリティを維持する主流の仕組みとなっているのです。

3.解けない問題は、みんなあきらめる。

もう少し深く見てみましょう。
例えば、自分と相手がいて、自分の「大事な情報」を相手に渡したい場面を考えます。
安全にやり取りするために、魔法の鍵を使いましょう。
魔法の鍵(一組の鍵)は、相手が用意します。
相手は一組の魔法の鍵を作り、公開鍵のほうを文字通り「公開」します。
あなたは(公開されているので)その公開鍵を手に入れることができます。

あなたはここで、「大事な情報」を宝箱に詰めて、手に入れた公開鍵でカチャリと施錠します。
そして相手に送ります。(※1)
宝箱はネットの海を相手に向けて進みます。

しかし・・このとき!!!

悪いやーつ(※2)が、その宝箱を狙っています。
あなたの「大事な情報」を盗もうと、中身を見ようとしています。
悪いやーつも、あなたが送りたかった相手の公開鍵を持っています(公開されているので)。
しかしその宝箱は、秘密鍵を持つものしか開けることはできません。
秘密鍵を持たない悪いやーつが宝箱の中身を手に入れるためには、

①公開鍵から何とか頑張って秘密鍵を生成する
もしくは、
②相手の秘密鍵を奪う
の2通りしかありません。

しかし・・
①は前述のとおり1億年という膨大な時間がかかるため現実的ではありません。
②は相手も必死に鉄壁の守りで備えているので、こちらも現実的ではありません。(※3)

つまり、諦める・・ということになります。
時間内に解けない問題はみんな諦めるんです。
せめて、公開鍵から秘密鍵を一瞬で作れたら、悪いやーつも報われるんですが。
(悪いやーつの味方をしてしまいました。。)

(※1)実際、相手と大事な情報をやり取りする段階(データをやり取りする段階)では「公開鍵」ではなく、「共通鍵」という鍵を利用します。これは日常生活で用いる鍵と同じように、開けるときと閉めるときで同じ鍵を使います。Noteの記事のほうで詳しく記載しています。
(※2)最近3歳の娘が、ヒーローごっこが好きで、ことあるごとに「パパ、"わるいやーつ"やって!」といつもいってくるので、その癖のある言い方を採用しました。はい、いつも悪役です・・。
(※3)とはいえ、この秘密鍵が流出してしまう事件は実際にあります。度々ニュースにもなりますね。

4.公開鍵から秘密鍵をつくることがなんでそんなに難しいの?

ここで、なぜ、
秘密鍵から公開鍵をつくることはすぐにできるのに、
公開鍵から秘密鍵をつくることはすぐにはできないのか?
・・と、疑問に思った方もいらっしゃるかもしれません。

簡単な問題を考えてみましょう。
電卓を使っても全然いいです。

  • 問題1
    17×13×37をしてください
  • 問題2
    8177を〇×〇×〇×・・・の形にしてください。
    ただし〇は素数(1と自分自身以外では割り切れない自然数、ただし1は除く)です。

さて、いかがでしょうか?
問題1は電卓を使えば一瞬です。
しかし、問題2は少し(というかかなり難しいです)
問題1はまさに秘密鍵から公開鍵を作る作業に相当し、
問題2はまさに公開鍵から秘密鍵を作る作業に相当します。

もし、かりに問題2が自力で解けたとしても、

  • 問題3
    223092870を○×〇×〇…の形にしてください
    ただし〇は素数(1と自分自身以外では割り切れない自然数、ただし1は除く)です。

と言われたら・・もう凹みますよね‥。
ちなみに現在のHTTPSで使われている暗号化技術はこの桁数が1024~2048桁のようです!!!
上記問題3でもたった9桁なので、もう途方もないですね・・。

公開鍵から秘密鍵を生成する(見つける)ということがいかに難しいか、さわりだけでも
わかっていただければ幸いです。
だから悪いやーつは諦めるんですね。
なんとか、この素因数分解を素早く行う方法はないのでしょうか?

5.結論から言うと、今はない。ただし兆しはある。

はい、残念(?)ながら、今はありません。
だからこそ、今の世界中のセキュリティ基盤が守られているのです。
その根本思想が、
「時間さえかければいつかはできるんだけど、時間が足りなすぎる」というのが
個人的にはとても面白いなと思います。

そしてこの「足りなすぎる時間」という部分を解決する方法として
「量子コンピューター」の発展というものが期待されています。

6.量子コンピューターとは何か?

量子力学というのはとても面白い分野です。
とてつもなく小さな世界では、量子というモノは、
「粒としても、波としてもふるまう」ように見えます。
シュレディンガーの猫、二重スリット実験、ハイゼンベルグの不確定性原理など、
量子にまつわる様々な面白いお話はあるので、よかったらググってみてください!

量子の世界においては、「観測」という行為が大きな影響を及ぼすそうです。
シュレディンガーの猫もそうですが、箱の中の猫が死んでいるか生きているかは、
その扉を開けて人間が「観測する」まではわからない。
それまでの箱の中では、生きている猫と死んでいる猫が「重なり合った状態」で存在している。
簡単に言うと、「0」か「1」かではっきり確定できない世界です。
人間的に言うと、サバサバしているよりも優柔不断という感じでしょうか(笑)

現在のコンピューターは、すべての情報を「0」と「1」の羅列で表します。
量子コンピューターは上記の通り、「0」でも「1」でもある「重ね合わせの状態」として
計算を重ねていくので、単純な可能性のパターンを網羅するにあたってのコストが
少なくなる・・と理解しました。
量子コンピュータでの情報の単位を「量子ビット」というようです。

例えば、
1量子ビットでは「0」「1」の2パターンを
2量子ビットでは「00」「01」「10」「11」の4パターンを
3量子ビットでは「000」「001」「010」「011」「100」「101」「110」「111」8パターンを
それぞれ重ね合わせて一度に考えることができるようです。
3量子ビットの場合、現在のコンピュータで8通りのパターンを3通りのパターンで表現できる・・という理解でいいのでしょうか。(間違ってたらすみません・・)
これは量子パターンが増えるほど、指数関数的に楽になることがわかります。

そして、「観測」をすることで、その中の一つに状態が確定する。
これが求めたい、出力したい答えになるわけです。
ということは、求めたい正確な答えを出す「観測の仕方」がポイントになってきそうですね。
人間的に言えば、モノの見方、感じ方・・みたいな要素になるんでしょうか。

7.量子コンピューターが発展すれば、現在の暗号化基盤は崩れる?

最後の締めとして、未来の話をします。
今現在は量子コンピュータを用いての計算技術は、スーパーコンピュータには及ばないようです。
これは先ほどの、「観測の仕方」=「量子コンピュータ用のアルゴリズム」が確立されていくことに
よって進化していくと考えられます。
冒頭に上げた(RSA)公開鍵、秘密鍵の基盤である素因数分解に関する量子コンピュータ的な試みとしては、「ショアのアルゴリズム」というものがあるようです。
現段階では、15の素因数分解(3×5)がちゃんとできるというレベルのものらしいですが、研究が進み、
これが実用化される(それに耐えうる量子ビットとしてのハードウェアが確立される)ことになれば、
もしかすると、世界中の「時間が足りないから安全」という暗号基盤が崩れる可能性もありますね。

8.じゃあ、最強の暗号ってなんなの?

現在の暗号基盤がいつかは崩れる、という未来に備えて
代わりの暗号案というものはいくつか考えられてはいるようです。
そのうちの一つが「PQC」というものです。
私もこれから見てみようかなという段階なので細かな記述はできません。
しかし、今の暗号化技術はいつかは破られそうだから、それに代わる案を今から考えよう!
という思いはしっかりとあるようです。
https://www.cybertrust.co.jp/blog/rd/pqc/nist-pqc.html

あとは、やはり冒頭に書いたような、そもそも暗号化を必要としないような未来・・
なんてものが来たりするんでしょうか?

技術の進化や研究をするとき、身近な生物や事象からヒントを得て、思いがけない発見に至ることはあるかと思います。
「人間以外の動物や植物って暗号化って考えがそもそもあるのかな?
もしかしたら暗号化を必要としない高度な通信技術を利用している動植物ってあるのかな?」
・・とちょっと思ったりした夜でした。

読んで下さってありがとうございました!

(参考)執筆にあたりたくさんの技術ブログを参考にさせていただきました。この場をお借りして御礼申し上げます。

量子コンピューターが暗号技術を「破壊」する?その真偽を検証してみた
2019年10月23日、代表的な仮想通貨(暗号資産)であるビットコイン(Bitcoin)の価格が急落した。米グーグルは同日、量子コンピューターが現行方式のコンピューターでは到達し得ない性能を持つことを指す「量子超越性」を実証したと発表していた。 ...
https://xtech.nikkei.com/atcl/nxt/column/18/01191/012900001/


第2話:NIST による PQC 標準化プロジェクト
「耐量子計算機暗号 (PQC) の現状」第 1 話 で言及した通り、NIST は現在、PQC 標準化計画を進めています [1] 。その背景として、以下のような趣旨を記載(2016 年)しています。 ・・・大規模な量子コンピュータが構築された場合、それらは現在使用されている公開鍵暗号システムの多くを破ることができるでしょう。これは、インターネットやその他の場所でのデジタル通信の機密性と完全性を著しく損なうことになります。耐量子計算機暗号の目標は、量子コンピュータと従来型のコンピュータの両方に対して安全であり
https://www.cybertrust.co.jp/blog/rd/pqc/nist-pqc.html


RSA暗号とは?仕組みや応用事例を初心者にもわかりやすく解説!|ITトレンド
RSA暗号とは、素因数分解の難しさを利用した暗号アルゴリズムのことです。セキュリティ対策を考える中で、暗号化の仕組みが気になっている人は多いでしょう。 この記事ではRSA暗号の概要から暗号化と復号の流れ、そして応用例まで解説します。ぜひ参考にして、暗号化技術への理解を深めてください。 RSA暗号の概要を見ていきましょう。 ...
https://it-trend.jp/encryption/article/64-0056


Qiskit を使った量子計算の学習
The new Qiskit Textbook beta is now available. Try it out now Qiskit を使った量子計算の学習 Qiskit Communityチームからのご挨拶です! Qiskitをベースとした大学の量子アルゴリズム/計算コースの補足教材となるよう、このテキストブックを作り始めました: 量子アルゴリズムの基礎となる数学 今日の非フォールトトレラントな量子デバイスの詳細 IBMのクラウド型量子システムに量子アルゴリズムを実装するためのQiskitでのコーデ
https://qiskit.org/textbook/ja/preface.html


とほほの暗号化入門 - とほほのWWW入門
トップ > とほほの暗号化入門目次 超サマリ 暗号化・復号化 元のデータを推測できないように変換することを 暗号化(encryption)、暗号化されたデータをもとのデータに戻すことを 復号(decryption) と言います。暗号化は元に戻すことが可能な可逆変換です。 ハッシュ 暗号化と似たものに ハッシュ化(hashing) がありますが、こちらは元のデータに戻すことができない非可逆変換です。 共通鍵暗号と公開鍵暗号 暗号化には、共通鍵で暗号化して共通鍵で復号する 共通鍵暗号系(common-key
https://www.tohoho-web.com/ex/crypt.html
エス・エー・エス株式会社からお誘い
この話題に共感したら、メンバーと話してみませんか?
エス・エー・エス株式会社では一緒に働く仲間を募集しています
29 いいね!
29 いいね!

同じタグの記事

今週のランキング

海田 牧史さんにいいねを伝えよう
海田 牧史さんや会社があなたに興味を持つかも