2017-10-06 19 views
0

私は、クライアント側のキーを使用していくつかのテキスト文字列を暗号化し、クライアント側の暗号化に使用したのと同じキーを使用してこの暗号化された文字列をサーバー側で復号化する必要があります。KMSでAESが使用されているため、クライアントでAES暗号化を使用し、サーバーでKMS暗号化を使用できますか?

私はこれを理解しているので、AWS KMSはAESの上に構築されています。

クライアント上でCryptoJSを使用し、サーバー上でAWS KMS SDKを使用して暗号化を解除するにはJavaScriptを使用してAES暗号化を使用できますか?

この質問の理由は、クライアント(ブラウザ)側でAWS Javascript SDKを使用できることですが... AWS Javascript SDKにはおそらく大きなメモリフットプリントがあると思います。また、AWS KMS JS SDKの単一の暗号化機能を使用するためにこれを行う必要があるかどうかはわかりませんが、クライアントサイドでAWS設定などを初期化したくありません。 CryptoJSはより滑らかで、メモリ占有量が少ないようです。そしてそれはAESをサポートします。クライアントサイドの暗号化を行い、対称暗号化を使用してサーバー上で暗号化を解除することが主な目標ですから、私の仕事を最小限に抑えたいと思います。

答えて

1

2つの実装が一致するのは偶然でしょう。 AESは暗号アルゴリズムだけであるため、通常は一致しませんが、これらの暗号フレームワークではそれ以上のものが使用されます。したがって、すべての他のアルゴリズムも、一致しなければならない:

  1. 使用するキー導出アルゴリズムは、
  2. 使用される暗号モード(提供されたパスワードからAESキーを作成します)。非常に異なる暗号モードがあります(ECB、CBC、OFB、GCM、...)全く異なる暗号文に結果
  3. (暗号モードで必要な場合)を使用パディング

のみが3つのアルゴリズムの場合クライアント側とサーバー側で同じであれば、1つのフレームワークで暗号化し、もう一方のフレームワークで復号化することができます。

関連する問題