RSA の変更点


#author("2022-07-24T11:16:49+09:00","default:k1rou","k1rou")
#author("2022-07-24T11:18:50+09:00","default:k1rou","k1rou")
*RSA とは [#qa95a280]
**名称 [#taafcdff]
-Rivest Shamir Adleman

**概要 [#u2f7c726]
-MITの技術者3人(Rivest, Shamir, Adleman)が[[DH鍵共有]]を参考に開発した[[公開鍵暗号方式]]
-MITの技術者3人(Rivest, Shamir, Adleman)が[[DH鍵共有]]の考えをベースに開発した[[公開鍵暗号方式]]
-桁数の大きな数の素因数分解の困難性を利用することで安全性を確保している

-桁数の大きな数の素因数分解の困難性を利用した[[公開鍵暗号方式]]
-実用的な[[公開鍵暗号方式]]として最初に公開された方式。
-比較的少ないデータ量のデータの暗号化に使われる。
-鍵の長さ:1024bitまたは2048bit(2048bitが推奨)
--2048bitのRSAより、256bitの[[ECC]]の方が安全と言われている

*RSAの方式 [#q19db458]
-[[PKCS]] #1
--RFC8017

-RSA-OAEP

*RSAの仕組み [#r23deb11]
**鍵ペア(暗号鍵と復号鍵)の作成手順 [#l5f32889]
+Nを求める
--大きな2つの[[素数]]を生成して掛け合わせる
+Lを求める
--生成した2つの素数を-1した値の最小公倍数
+Eを求める ※暗号鍵が作成できる状態になる
--EとLの関係(1<E<L、EとLの最大公約数が1)を条件にEを生成する
+Dを求める ※復号鍵が作成できる状態になる
--DとEとLの関係(1<D<L、E * D mod 1=1)を条件にDを生成する

**鍵ペアを使った暗号化と復号 [#a17628af]
-暗号化
--暗号文 = 平文 ^ E mod N
---E: Encryption
---N: Number
--暗号鍵: (E,N)

-復号
--平文 = 暗号文 ^ D mod N
---D: Decryption
---N: Number
--復号鍵: (D,N)

*RSAの用途 [#gb78b354]
**鍵の生成・使用(カッコ内は順番) [#le645eff]
|                 | 暗号鍵     | 復号鍵  |h
| 鍵ペア生成 | 生成(1)    | 生成(2) |
| 鍵の使用    | 暗号化(1) | 復号(2) |

**用途 [#fd4cd8a8]
|                        | 暗号鍵      | 復号鍵  |h
| [[公開鍵暗号]]    | 公開鍵      | 秘密鍵 |
| [[デジタル署名]] | 秘密鍵(署名鍵) | 公開鍵(検証鍵) |

*関連サイト [#ddd38f82]
-PKCS #1: RSA Cryptography Specifications Version 2.2 - IETF~
https://datatracker.ietf.org/doc/html/rfc8017

-RSA暗号を破壊するとの論文が発表されるも「ほぼ誤報」とみられる - スラド (2021/3/5)~
https://idle.srad.jp/story/21/03/04/210213/

-RSAに対するフェルマー攻撃 (2022.3.16) - Qiita~
https://qiita.com/tnakagawa/items/d87fd8459ec9e1ce6844

*関連用語 [#b57625e1]
-[[暗号化]]
-[[OpenSSH]]
-[[OpenSSL]]
-[[PKCS]]
-[[RS256]]
-[[TPM]]
-[[ECC]]