web-dev-qa-db-ja.com

RSA_DES_EDE3_CBCよりも優れた暗号化アルゴリズムは何ですか?

まず、私がこれをまったく求めない理由を説明させてください。

EnvelopedCms のデフォルトの実装は AlgorithmIdentifier を使用しており、それ自体はRSA_DES_EDE3_CBCまたは OIDを使用します
1.2.840.113549.3.7
暗号化アルゴリズムとして。 EnvelopedCms を使用する多くのツールは サンプルコード をコピーして貼り付けるだけのようです。今私はあなたのことを知りませんが、2017年に[〜#〜] des [〜#〜]を読んだとき、私は「ではない安全"。 DES少なくともまだここで使用されていますが、前回の推奨事項を確認したのは、AESなどのより高度なブロック暗号を使用することでした。

今私の質問のために:

  1. RSA_DES_EDE3_CBC はまだ「安全な」十分ですか?一般的なユーザーは毎年ファイルを再暗号化することを望まないため、これを尋ねると、今後数年間は十分に安全であると言えます。議論のために、ムーアの法則を仮定し、予期しないブレークスルーを無視してみましょう。量子コンピューティング。
  2. そうでない場合、私が推測しているように(タイトルを参照)、 [EnvelopedCms を使用する場合、どの [〜#〜] oid [〜#〜] を選択する方が良いでしょうか?おそらく OID 2.16.840.1.101.3.4.1.42(これは正しいブロック暗号OIDですか?)またはもっともっと何か?そして最も重要な:OID / FriendlyNames のリストはどこにありますか AlgorithmIdentifier でサポートされていますか?
2
masi

RSA_DES_EDE3_CBCは、RSAがDESの暗号化/復号化/暗号化(EDE3)バージョンと一緒に使用されることを意味します。各ステップ(E、D、E)で一意のキーが使用されている場合、Triple-DES(3-DES)を効果的に使用しています。 NISTによれば、112ビットのセキュリティがまだ提供されています。これで、今日(2017年6月-誰が知っているか...)で十分です。ただし、NISTではAES(128以上)の使用も推奨しています。

someでサポートされているOIDのリストは、次の場所にあります: https://msdn.Microsoft.com/en-us/library/windows /desktop/aa381133(v=vs.85).aspx

どのようなソフトウェアを作成しているのかはわかりません。何かを暗号化するだけの場合は、RSAAESを組み合わせて使用​​できます。したがって、AES128_CBC(OID 2.16.840.1.101.3.4.1.2)を使用してメッセージを暗号化し、RSAES_OAEP(OID 1.2.840.113549.1.1.7)を使用してキーを暗号化することになります。

個人的に私はlibsodium( https://download.libsodium.org/doc/ )を試してみると、ヘーゼル(キー生成、ラッピングなど)なしで多くのことができます。 AES-GCMの代わりにChaCha20-Poly1305を使用し、RSAの代わりにEd25519を使用します。

2
fr00tyl00p
  1. DESは安全ではないため、使用しないでください。 ただし、問題のアルゴリズムはDESではありませんが、暗号化-復号化-暗号化モード これが、このバージョンのセキュリティに関する回答 です。
  2. OIDは、推奨される最新のアルゴリズムであるAES256-CBC用です。CBCモードは でなくても使用できます 、対称暗号の場合、これはMicrosoftが提供する最高のものです- サポートされているOIDのリストはここにあります
1
buherator