#author("2024-06-16T16:14:53+09:00","default:k1rou","k1rou") #author("2024-07-14T22:56:23+09:00","default:k1rou","k1rou") *RSA とは [#qa95a280] **名称 [#taafcdff] -Rivest Shamir Adleman **概要 [#u2f7c726] -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(秘密鍵)を求める ※暗号鍵が作成できる状態になる --EとLの関係(1<E<L、EとLの最大公約数が1)を条件にEを生成する +Dを求める ※復号鍵が作成できる状態になる +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]]