暗号化において、PKCS #1 は、 RSA Laboratoriesが発行した公開鍵暗号化標準 (PKCS)と呼ばれる一連の標準の最初のものです。公開鍵暗号化のRSAアルゴリズムの実装に関する基本的な定義と推奨事項を提供します。公開鍵と秘密鍵の数学的特性、暗号化と署名の基本操作、安全な暗号化方式、および関連するASN.1構文表現を定義します。
現在のバージョンは 2.2 (2012-10-27) です。RFC 3447 として再公開された 2.1 (2002-06-14) と比較すると、バージョン 2.2 では、許可されたハッシュ アルゴリズムのリストが FIPS 180-4 に合わせて更新され、SHA-224、SHA-512/224、SHA-512/256 が追加されています。
キー
PKCS #1 標準は、 RSA 公開鍵と秘密鍵に必要な数学的な定義とプロパティを定義します。従来の鍵ペアは、 2 つの異なる大きな素数pとqの積である係数nに基づいています。
バージョン 2.1 以降、この定義は一般化され、異なる素数の数が 2 以上のマルチプライム キーが使用できるようになりました。マルチプライム キーを扱う場合、素因数はすべて、次のようなiに対して一般にラベル付けされます。
- のために
表記上の便宜上、および。
RSA 公開鍵はタプル として表され、整数eは公開指数です。
RSA秘密鍵には2つの表現方法があります。最初のコンパクトな形式はタプル で、dは秘密指数です。2番目の形式には少なくとも5つの項 があり、マルチプライムキーの場合はそれ以上になります。コンパクトな形式とは数学的に冗長ですが、追加の項により、キーを使用するときに特定の計算最適化が可能になります。特に、2番目の形式では公開鍵を導出できます。[1]
プリミティブ
この標準では、いくつかの基本的なプリミティブが定義されています。プリミティブ操作は、生の数式を計算可能なアルゴリズムに変換するための基本的な指示を提供します。
- I2OSP - 整数からオクテット文字列へのプリミティブ - (潜在的に非常に大きい) 負でない整数をバイトのシーケンス (オクテット文字列) に変換します。
- OS2IP - オクテット文字列から整数プリミティブ - バイトシーケンスを非負整数として解釈します
- RSAEP - RSA暗号化プリミティブ - 公開鍵を使用してメッセージを暗号化します
- RSADP - RSA 復号化プリミティブ - 秘密鍵を使用して暗号文を復号化します
- RSASP1 - RSA 署名プリミティブ 1 - 秘密鍵を使用してメッセージに署名を作成します
- RSAVP1 - RSA検証プリミティブ1 - 公開鍵を使用して署名がメッセージのものであることを検証します
スキーム
プリミティブ操作自体は必ずしもセキュリティを提供するものではありません。暗号化スキームの概念は、特定のセキュリティ目標を達成できるように、より高レベルのアルゴリズムまたはプリミティブの使用を定義することです。
暗号化と復号化には 2 つの方式があります。
- RSAES-PKCS1-v1_5 : PKCS #1 のバージョン 1.5 で最初に標準化された古い暗号化/復号化スキーム (ES)。既知の脆弱性があります。
- RSAES-OAEP : 改良されたES。Mihir BellareとPhillip Rogawayが提案した最適非対称暗号化パディング(OAEP)方式に基づいています。新しいアプリケーションに推奨されます。[a]
署名を処理するためのスキームも 2 つあります。
- RSASSA-PKCS1-v1_5 : PKCS #1のバージョン1.5で初めて標準化された、付録付き古い署名スキーム(SSA)。Jagerら(2018)によると、偽造不可能です。[2]
- RSASSA-PSS : 改良された SSA。Bellareと Rogaway によって最初に発明された確率的署名方式(PSS) に基づいています。新しいアプリケーションに推奨されます。
2 つの署名方式は、別々に定義されたエンコード方式を使用します。
- EMSA-PKCS1-v1_5 : PKCS #1 のバージョン 1.5 で最初に標準化された署名付録 (EMSA) の古いエンコード方式。
- EMSA-PSS : 確率的署名方式に基づく改良された EMSA。新しいアプリケーションに推奨されます。
署名方式は、実際には付録付きの署名です。つまり、入力データに直接署名するのではなく、最初にハッシュ関数を使用してデータの中間表現を生成し、次にハッシュの結果に署名します。この手法は、直接署名できるデータの量がキーのサイズに比例するため、ほとんどの場合 RSA で使用されます。キーのサイズは、アプリケーションが署名するデータの量よりも常にはるかに小さくなります。
- ^ 注: PKCS #1 バージョン 2.1 の RSAES-OAEP に小さな変更が加えられたため、PKCS #1 バージョン 2.0 の RSAES-OAEP は、PKCS #1 バージョン 2.1 およびバージョン 2.2 の RSA-OAEP と完全に互換性がなくなりました。
バージョン履歴
- バージョン 1.1 ~ 1.3、1991 年 2 月から 3 月、非公開で配布。
- バージョン 1.4、1991 年 6 月、NIST/OSI 実装者ワークショップ向けに公開。
- バージョン 1.5、1993 年 11 月。最初の公開。RFC 2313 として再公開 。
- バージョン 2.0、1998 年 9 月。RFC 2437 として再発行。RSAEP - OAEP 暗号化方式が導入されました。
- バージョン 2.1、2002 年 6 月。RFC 3447 として再公開。マルチプライム RSA と RSASSA-PSS 署名方式を導入
- バージョン 2.2、2012 年 10 月。RFC 8017 として再発行 。
実装
以下は、PKCS#1 をサポートする暗号化ライブラリの一覧です。
攻撃
PKCS #1 v1.5、特にそのパディングスキームに対して複数の攻撃が発見されました。[3] [4]
1998 年、ダニエル ブライヘンバッハーは、後にブライヘンバッハーの攻撃(「ミリオン メッセージ攻撃」とも呼ばれる) として知られるようになった攻撃に関する重要な論文を発表しました。この攻撃では、パディングをオラクルとして使用します。 [4] [5]その後、PKCS #1 はリリース 2.0 で更新され、古いバージョンの標準を引き続き使用したいユーザー向けにパッチが発行されました。[3]しかし、脆弱なパディング スキームは引き続き使用されており、その後の攻撃につながっています。
- Bardouら(2012)は、 PKCS 11トークンのいくつかのモデルが、依然として RSA の v1.5 パディング スキームを使用していることを発見しました。彼らは、より少ないメッセージを必要とする Bleichenbacher 攻撃の改良版を提案しました。この改良の結果、彼らは 1 時間以内にいくつかのモデルから秘密鍵を抽出することができました。彼らはまた、AES-CBC スキームが別のパディング オラクル攻撃に対して脆弱であることも示しています。[4] [6]
- Böckら(2018)は、多くの最新のHTTPSサーバーがこの攻撃のバリエーションに対して脆弱であると報告しています。TLS 1.2にはBleichenbacher対策が含まれていますが、その複雑さゆえに多くのソフトウェアで回避策が正しく実装されていません。[7]
2006年、Bleichenbacherは署名方式RSASSA-PKCS1-v1_5に対する新しい偽造攻撃を発表しました。[8]この攻撃の変種は2008年[9]と2014年に報告されています。 [10]このクラスの攻撃は署名検証の欠陥のある実装を悪用します。適切な実装では脆弱ではありません。[2]
参照
参考文献
- ^ Ilmari Karonen (2017 年 10 月 27 日)。「RSA 秘密鍵から公開鍵を取得できますか?」。Stack Exchange。
- ^ ab Jager, Tibor; Kakvi, Saqib A.; May, Alexander (2018 年 10 月 15 日). PKCS#1 v1.5 署名スキームのセキュリティについて(PDF)。第 2 回可用性、信頼性、セキュリティに関する国際会議 (ARES'07)。pp. 1195–1208。doi :10.1145/3243734.3243798 。
- ^ ab ジャン=セバスチャン・コロン、マーク・ジョイ、デヴィッド・ナカッシュ、パスカル・パリエ (2000)。暗号学の進歩 — EUROCRYPT 2000 (PDF)。コンピューターサイエンスの講義ノート。 Vol. 1807年。ユーロクリプト。 369–381ページ。土井:10.1007/3-540-45539-6。ISBN 978-3-540-67517-4. S2CID 8447520。
{{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ abc ロマン・バルドゥ;リッカルド・フォカルディ;川本裕介;ロレンツォ・シミオナート。グラハム・スティール。ジョー・カイ・ツァイ (2012)。暗号化ハードウェアに対する Oracle 攻撃の効率的なパディング。Rr-7944 (レポート)。インリア。 p. 19.
- ^ RFC 3218 – 暗号メッセージ構文に対する百万メッセージ攻撃の防止
- ^ Green, Matthew (2012 年 6 月 21 日)。「暗号トークン業界にとっての悪い数年間」。暗号エンジニアリングに関するいくつかの考察。
- ^ Hanno Böck、Juraj Somorovsky、Craig Young。「ROBOT攻撃:BleichenbacherのOracle脅威の復活」。2018年2月27日閲覧。
- ^ 伊豆哲也、竹中正彦、下山健(2007年4月)。「Bleichenbacherの偽造攻撃の分析」第2回可用性、信頼性、セキュリティに関する国際会議(ARES'07)。IEEE。pp . 1167–1174。doi : 10.1109/ARES.2007.38。ISBN 978-0-7695-2775-8. S2CID 2459509。
- ^ キューン、ウルリッヒ;ピシキン、アンドレイ。テューズ、エリック。 Weinmann、Ralf-Philipp (2008): PKCS#1 RSA 署名に対する Bleichenbacher の低指数攻撃の亜種。 SICHERHEIT 2008 – Sicherheit、Schutz und Zuverlässigkeit。 Beiträge der 4. Jahresttagung des Fachbereichs Sicherheit der Gesellschaft für Informatik eV (GI)。ボン: Gesellschaft für Informatik e. V..PISN 1617-5468。ISBN 978-3-88579-222-2。 97–109ページ。定期的な研究論文。ザールブリュッケン。 2.-4. 2008 年 4 月
- ^ 「Advanced Threat Research | Intel Security」。2015年4月1日。2015年4月1日時点のオリジナルよりアーカイブ。
外部リンク
- RFC 8017 - PKCS #1: RSA 暗号化仕様バージョン 2.2
- PKCS #1 v2.2: RSA 暗号化標準 ( Wayback Machineより) (2016 年 4 月 10 日アーカイブ)
- RSA 署名の標準の向上: Wayback Machineの RSA-PSS (2004-04-04 アーカイブ)
