【3話】やさしく学ぶBitcoinの暗号技術:RSA暗号の準備体操

第3話です。前回は共通鍵の弱点、公開鍵の基本的概念、公開鍵暗号の安全性について解説をいたしました。

【2話】やさしく学ぶBitcoinの暗号技術:公開鍵の安全性

2017.09.29

前回のおさらい


え?なになに。「もう待ちくたびれた。あんたがBitcoinの話をしたのは第1話の最初だけじゃないか。スキャムだ!はやくBitcoinの話をしろ!」だって?焦ってはいけません。慌てる貧乏人は貰いが少ないですよ。で、何の話でしたっけ。思考が飛びすぎていつも困っています。そうだ。公開鍵暗号について考えていましたね。

そもそもBitcoinで使われている公開鍵暗号って何?

公開鍵暗号っていっても色々ありますが、この記事はBitcoinの技術的な話を見ていく記事なので、じゃあBitcoinで使われている公開鍵暗号って何なの?という話に当然なってきます。ズバリ答えてしまうと「楕円曲線暗号」です。この楕円曲線暗号について理解するには、まずはRSA暗号について知る必要があります。少しずつ階段を上っていきましょう。

そんな都合のいい鍵のペアは存在するのか

そもそも論として、頭のいい方は疑問に思うでしょう。もう一度公開鍵暗号について考えてみましょう。

「そんな都合のいいことって起こりえるのか?片方(公開鍵)では復号できずに、もう片方(秘密鍵)でだけ復号できる数字のペアってあるの?オーケー認めよう。仮にそんなものがあったとしよう。でも、公開鍵の数値から秘密鍵は求められたりしないの?安全なの?」みたいな疑問ですよね。うーん。ごもっともです。この質問は。実はディフィとヘルマンでさえ、公開鍵暗号を提唱した当初はこの性質を実現できていませんでした。しかし、ついにリベスト、シャミア、エイドルマンの3人がこの性質を実現する方法を発見したのです。彼らの名前の頭文字をとってこの方法はRSA公開鍵暗号と名付けられました。

RSA暗号の準備体操


ということでRAS暗号についてみていきたいのですが、文系のみんな、少し揺れるからしっかりHODLしてください。どんな風に揺れるかって?数式がでてきますよ。RSA暗号を理解するためにはすこしの準備体操が必要です。これをやっとかないとアキレス腱を切って即刻退場です。私も文系の人間ですが、数式のせいで危うくやる気というアキレス腱を切るところでした。いやですよね。少しずつ身体をあっためていきましょう。

modとは何か

RSA暗号を理解するにはmod(モッド)が不可欠です。数式いくぞー!
$$10\ {\rm mod}\ 4=2$$
なんのことはありません。これは10を4で割った余りは2という意味です。
例を他にもあげましょう。
\(20\ {\rm mod}\ 4=0\)
\(21\ {\rm mod}\ 4=1\)
\(22\ {\rm mod}\ 4=2\)
\(23\ {\rm mod}\ 4=3\)
\(24\ {\rm mod}\ 4=0\)
なんとなくわかってきました?
これらの計算は \({\rm mod}\ 4\)で計算してきました。
一般化すれば
$$x\ {\rm mod}\ 4=y$$
となりますね。
\(x\)は任意の数をいれてください。
\(y\)の値は必ず0、1、2、3のいづれかになるはずです。
これを4を法とする世界ということにします。
つまり、4を法とする世界では0から3までの数しか存在しません。
3の次は0です。

ふたつの素数を用意する

RSA暗号では二つの素数を使用します。ここでは\(p\)と\(q\)とします。そして素数\(p\)に素数\(q\)を乗じたものを\(N\)とします。
$$p,q\in素数$$
$$N=p\times q$$
\(\in\)の意味は\(p\)と\(q\)は素数の要素であるという意味です。
そして、この\(N\)を法とする世界が、今回のRSA暗号の世界となります。
つまり、例えば3と7を選んだのであれば21を法とする世界。3と11を選んだのであれば、33を法とする世界になります。

さて、これで準備運動は終わりました。次回は本丸のRSA暗号の仕組みを理解していきましょう!

【4話】やさしく学ぶBitcoinの暗号技術:RSA暗号の仕組み(前編)

2017.10.01

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です