1

複数のキーで復号化および暗号化できる暗号化アルゴリズムはありますか?

A = Key one
B = Key two

次のようにデータ交換が可能である必要があります

1. Clear Text == A ==> Encrypted == B ==> Clear Text
2. Clear Text == B ==> Encrypted == A ==> Clear Text

編集 1:
アルゴリズムは Java で使用できる必要があります。

編集 2:全体像
データベースには、暗号化されたデータが格納されます。ほとんどのユーザーは、個人のパスワードを使用してデータのごく一部を読み書き (復号化および暗号化) する必要があります。一部のユーザーは、個人のパスワードを使用してすべてのデータにアクセス (復号化および暗号化) する必要があります。
両方のユーザー グループのメンバーは、自分のパスワード以外のパスワードを知ってはなりません。

4

2 に答える 2

2

これは通常、1 つ以上の公開鍵で暗号化された対称鍵を保管することで解決されます。

対称キーは、データベース内のデータを暗号化するために使用されます。各ユーザーは非対称鍵ペアを持っています。ユーザーがデータの一部を表示する権利を持っている場合は、ユーザーの公開キーで暗号化された対称キーのコピーを保存する必要があります。

これはすべて Java で実現できます。Cipher.WRAP_MODEキーのラッピング/アンラッピングに使用できます。

Java を制約として言及したため、この質問はトピックに沿ったものだと感じました。ただし、暗号化とセキュリティ設計に関する一般的な議論は、スタック オーバーフローのトピックから外れていることに注意してください。

于 2013-10-21T13:24:12.273 に答える
2

PKI システムでA が公開鍵で、B が対応する秘密鍵である場合 (またはその逆) の場合は、はい、そうでない場合はいいえです。

更新:あなたは今「より広い視野」を提供しましたが、残念ながら答えは次のようになりました:いいえ、それはできません. その理由を理解するには、両方のグループが暗号化および復号化できる必要があることを理解する必要があります。したがって、実際の要件は次のとおりです。

  1. 平文 == A ==> 暗号化 == B ==> 平文
  2. 平文 == B ==> 暗号化 == A ==> 平文
  3. 平文 == A ==> 暗号化 == A ==> 平文
  4. 平文 == B ==> 暗号化 == B ==> 平文

最善の方法は、認証メカニズムを使用してデータにアクセスできるユーザーを制御し、データ自体を暗号化せずに保存することです。

于 2013-10-21T10:06:58.713 に答える