楕円曲線暗号を 1 つの記事で読む
蓝狐笔记
2019-03-19 04:37
本文约2938字,阅读全文需要约12分钟
暗号楕円曲線の基礎を紹介します。

編集者注: この記事は、Lanhubiji (ID: lanhubiji)、著者: Lane Wager、medium からのもので、「Blue Fox Notes」パブリック アカウント コミュニティの「Wang Zelong」によって翻訳され、Odaily が許可を得て転載したものです。

はじめに: この記事は、楕円曲線暗号についての非常に基本的な入門書です。基本的な内容ですが、楕円曲線暗号の素人にも理解しやすく、初心者向けです。

画像の説明

副題

それは何をするためのものか?

楕円曲線暗号化は、特定の人だけがデータを復号できるようにデータを暗号化する方法です。現実には多くのアプリケーション シナリオがありますが、主なアプリケーションはインターネット上のデータとトラフィックを暗号化することです。たとえば、楕円暗号曲線を使用すると、電子メールの送信時に、受信者以外は電子メールを読むことができなくなります。

楕円曲線暗号は公開鍵暗号です

公開キー暗号化には多くの形式があり、楕円曲線暗号化はそのうちの 1 つにすぎません。他の暗号化アルゴリズムには、RSA、DiffieHelman などが含まれます。最初に公開鍵暗号の一般的な背景を簡単に説明し、その後の解説を展開して楕円曲線暗号について理解を深めていきます。時間があれば、公開キー暗号化について詳しく調べることができます。

画像の説明

http://itlaw.wikia.com/wiki/Key_pair

上の図は、公開キーと秘密キーという 2 つのキーを示しています。これらのキーはデータの暗号化と復号化に使用されるため、世界中の誰もが送信中の暗号化されたデータを見ることができますが、情報を読み取ることはできません。

Facebookがトランプ大統領からの非公開投稿を受け取ると仮定してみよう。 Facebookは、トランプ大統領がオンラインに投稿する際、NSAやインターネットサービスプロバイダーを含む誰もメッセージを読むことができないようにする必要がある。公開キー暗号化を使用した後、データ送信プロセス全体は次のステータスを示します。

l トランプ大統領はフェイスブックに個人的な投稿を送っていると語った

l Facebookが公開鍵をトランプ大統領に送信

l トランプ氏は公開鍵を使用して投稿を暗号化します。

「フォックスとその仲間たちが大好き」 + 公開キー = 「s80s1s9sadjds9s」

l トランプ氏は暗号化されたメッセージを Facebook にのみ送信する

l Facebook は秘密キーを使用してメッセージを復号します。

「s80s1s9sadjds9s」 + 公開キー = 「フォックスとその仲間たちが大好きです」

ご覧のとおり、これは非常に便利なテクニックです。以下にハイライトをいくつか示します。

l 公開キーは公開されているため、誰にでも送信できます。

l 誰かが秘密キーを入手すると、情報が復号化される可能性があるため、秘密キーは安全に保管する必要があります。

l コンピュータは、公開キーを使用してメッセージを迅速に暗号化し、秘密キーを使用してメッセージを復号化できます。

l 秘密キーがないと、コンピュータが暗号化されたメッセージを解読するのに非常に長い時間 (数百万年) かかる可能性があります。

仕組み: トラップドア機能

すべての公開キー暗号化アルゴリズムの鍵は、それぞれに独自のトラップドア機能があることです。トラップドア関数は一方向にしか計算できないか、少なくとも簡単に一方向に計算できます (現代のコンピューターでは数百万年以内に)

落とし戸機能ではありません: A+B=C

A と B があれば、C がわかります。問題は、B と C が与えられた場合、A もわかるということです。トラップドア機能ではありません。

トラップドア機能:

「フォックスとその仲間たちが大好き」 + 公開キー = 「s80s1s9sadjds9s」

「I love Fox and friends」+公開鍵を与えられた場合、「s80s1s9sadjds9s」を取得できますが、「s80s1s9sadjds9s」と公開鍵を与えられた場合、「I Love Fox and Friends」というメッセージを取得できません。 」。

RSA (おそらく最も一般的な公開鍵システム) では、トラップドア機能は主に、大きな数を素数に因数分解する難しさに依存します。

公開鍵: 944,871,836,856,449,473

秘密キー: 961,748,941 および 982,451,653

上記の例では、公開キーは非常に大きな数であり、秘密キーは公開キーの 2 つの素因数です。これはトラップドア関数の良い例です。秘密鍵では数値を掛け合わせて公開鍵を取得するのが簡単ですが、公開鍵しかない場合、コンピュータが秘密鍵を再構築するのに長い時間がかかるからです。

副題

楕円曲線暗号の違い

人々は、RSA とまったく同じ理由で楕円曲線暗号を使用します。公開鍵と秘密鍵のペアを生成し、二者間の安全な通信を可能にします。ただし、楕円曲線暗号には RSA に比べて利点が 1 つあります。楕円曲線暗号化の 256 ビット キーは、RSA アルゴリズムの 3072 ビット キーと同じセキュリティを提供します。これは、スマートフォン、組み込みコンピューター、暗号化されたネットワークなど、リソースが限られているシステムでは、楕円曲線暗号化が使用するハードディスク容量と RSA アルゴリズムの帯域幅は、RSA 暗号化アルゴリズムと比較して 10% 未満であることを意味します。 (Blue Fox 注: つまり、リソースが限られている場合、楕円曲線暗号化は RSA アルゴリズムよりもリソース効率が高く、実現可能です。)

楕円曲線暗号化のトラップドア機能

画像の説明

 https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/2/

l 点 A から開始します。

l A点B=-C(A点からB点まで線を引き、最終的に-C点に当たります)

l X 軸を横切って -C から C まで反射します。

l 点 A C=-D (点 A から点 C まで線を引き、最終的に -D に当たります)

l X 軸を横切って -D から D まで反射します。

l 点 D=-E (A から D まで線を引き、最終的に -E に当たります)

l -E から E までの X 軸にわたる反射

始点 (A) がどこにあるか、終点 E に到達するまでに何ホップかかるかがわかっていれば、終点を見つけるのは簡単なので、これは優れたトラップドア機能です。一方、開始点と終了点がどこにあるかだけしかわかっていない場合、そこに到達するまでに何ホップかかるかを知ることはほぼ不可能です。

公開鍵: 開始点 A、終了点 E。

秘密鍵: A から E までのホップ数

問題はありますか?

以下は、私が初めて楕円曲線暗号について学んだときに生じた関連する質問です。それらを適切に解決できることを願っています。

2 番目のポイントを見つけるにはどうすればよいでしょうか?ドット関数が 2 点間に線を引くだけの場合、開始するには 2 番目のドットが必要ではないでしょうか。

答え: 必要ありません。 2 番目の点 (以下の図では -R 点と呼びます) は、実際には点 P の関数 P です (最初の点を P と呼びます)。

P 点関数 P=-R

画像の説明

https://devcentral.f5.com/articles/real-cryptography-has-curves-making-the-case-for-ecc-20832

ポイント関数が特定の極端な線を生成した場合はどうなるでしょうか?

画像の説明

https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/2/

トラップドア機能は理解しましたが、実際には公開鍵と秘密鍵はどのように作成されるのでしょうか?それらは暗号化されるデータでどのように使用されますか?

これは良い質問ですが、さらに深い答えが必要です。この記事では、RSA と楕円曲線暗号化についてより一般的に説明します。ただし、他にも多くの技術リソースがあるので、ぜひ調べてください。

蓝狐笔记
作者文库