私たちの生活は、いまやインターネットというインフラなくしてはあり得ず、このネットワークを介したやりとりが世界を変え、社会を支えているといっても過言ではありません。時間や場所、経済面をはじめとするさまざまな制約から人々を解き放ち、生活利便性を飛躍的に向上させたインターネットですが、そのパブリックな性質が生み出す諸刃の剣として、いかにプライバシーを保護するか、秘匿性の高い重要機密情報の漏洩リスクを低減させながら運用していくかといったセキュリティ面での問題は避けられず、そこへの対応は常に課題とされてきています。して、より安全で利便性の高い通信環境の構築が目指された結果、発展したのが暗号技術です。暗号技術はさらに、近年高い関心を集めるブロックチェーンでも、鍵を握るものとなっており、暗号通貨(仮想通貨)の取引やブロックチェーン応用を考える上でも、その基礎知識を身につけておくことが欠かせません。そこで今回は暗号技術の代表的な2方式とされる、「共通鍵暗号」と「公開鍵暗号」について、それぞれの仕組みや違いを解説します。共通鍵暗号とは?2つの方式を具体的にみていく前に、まず暗号技術の基本をおさえておきましょう。不特定多数のユーザーがアクセスできる、パブリックなネットワークで、安全にデータをやりとりするには、盗み見や改ざんなどの脅威に備え、あらかじめデータを暗号化して送信するのがシンプルな方法です。データを受信する側は、暗号文の状態で受け取り、それを元データに戻す復号処理を行って確認します。した暗号化と復号で安全性が確保される仕組みとなっており、それぞれの処理は暗号化アルゴリズムと鍵を用いて実行されます。「共通鍵暗号」とは、どのような暗号技術方式なのでしょうか。“共通”という言葉が示すように、この方式では暗号化を行う際と復号時とで共通の鍵を用います。部屋の鍵や、コインロッカー、机などの物理的鍵と同様のイメージですね。データ送信者が共通鍵を用いて暗号化、送信を実行し、受信者が同じ共通鍵を使って復号、元データを取得する流れになります。単純な仕組みで処理も速く行えるメリットがありますが、いかに鍵の受け渡しを安全かつスムーズに行うかという難しさが残ります。同一の鍵を複数ユーザーに対して使用すると、暗号化したデータが他ユーザーでも復号できてしまい、情報漏洩につながる危険があるため、ユーザー別にそれぞれの鍵を生成する必要があり、送受信する相手の数が増えれば増えるほど、鍵の管理が煩雑になるというデメリットもあります。公開鍵暗号とは?これら共通鍵暗号の問題点を解消するため、考え出されたのがもうひとつの方式である「公開鍵暗号」です。公開鍵暗号では、暗号化と復号で違う鍵を用います。この点が共通鍵暗号との最大の違いです。暗号化を行う際には、オープンな公開鍵を用い、復号時には、アクセス権限のあるユーザーのみが保有する秘密鍵で処理、元データを取得する仕組みになっています。リアル世界で例えるなら、南京錠が近いイメージです。鍵をかける南京錠の本体は外から見えるかたちで放置して問題ありませんが、それを開ける鍵は、管理者が個人的に、安全に、管理して用いるものとするでしょう。この南京錠本体が公開鍵、開ける鍵が秘密鍵にあたります。公開鍵は暗号化データとあわせて第三者に取得されても、復号不可能で元データが漏洩することはありませんから、オープンなネットワークで送ることができます。秘密鍵を非公開にし、管理を厳重に行うよう徹底しさえすれば、通信の秘密、安全性が確保されるものとなります。公開鍵暗号では、公開鍵と秘密鍵の間に一定の関連性が求められます。そこには、ある要素からの計算・変換処理は簡単に行えるのに、それを逆算して要素に変換するのはきわめて難しいという特徴をもった一方向関数というものが利用されています。この関数が基礎となって、鍵をかけられるが開けられない公開鍵と、かけられた鍵を開けられる秘密鍵が生成されているのです。この公開鍵暗号方式は、共通鍵暗号に比べ、処理が重くなりますが、鍵の受け渡しに気を配る必要がなく、複数ユーザーに同じ公開鍵を用いても問題ないなど、管理の手間を削減できる点がメリットです。応用として、公開鍵暗号の仕組みを逆方向で用い、あるユーザーが自分の名前データを秘密鍵で暗号化し送信、ネットワーク上の参加者らが公開鍵で復号すると、名前が現れるようにすれば、電子署名として機能します。した暗号化が行えるのは、秘密鍵を管理している本人に限られるためです。ブロックチェーンでは、この電子署名の仕組みを取り入れ、本人確認を可能にし、取引データの透明性と信頼性、正確性を確保できるようにしています。ほかにも、公開鍵暗号方式をベースとする高度な暗号技術や、ハッシュ関数の利用など、複数の既存暗号技術が巧みに組み合わせて用いられることで、ブロックチェーンの安全性・利便性が支えられています。暗号技術というと、何か難しい専門的な世界のようですが、それらは私たちの見えないところですでに機能しており、実は頻繁に利用しているもの、さまざまなシーンで何気ない通信の安全性を支える、必要不可欠でごく身近な存在となっているのです。