問題タブ [aes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
9475 参照

memory - 暗号化: メモリ内のキーのベスト プラクティスは?

背景: データベースで AES (対称暗号) で暗号化されたデータを取得しました。(想定) 安全で隔離された Linux ボックスで実行されるサーバー側アプリケーションは、このデータを使用します。DB から暗号化されたデータを読み取り、暗号化されたデータを書き戻し、メモリ内の暗号化されていないデータのみを処理します。そのため、これを行うには、アプリでキーをメモリに保存する必要があります。

問題は、これに対する適切なベスト プラクティスがあるかどうかです。メモリ内のキーを保護します。

いくつかのアイデア:

  1. スワップできないメモリに保持する (Linux の場合: ?SHM_LOCKで設定shmctl(2))
  2. キーを複数のメモリ ロケーションに分割します。
  3. キーの暗号化。キーキーを安全に保管するには、何を使用し、どのようにしますか?
  4. 必要なたびにファイルからキーをロードします (時間がかかり、悪意のある人物が私たちの記憶を読み取ることができれば、おそらくファイルも読み取ることができます)

キーが漏洩する可能性がある理由に関するいくつかのシナリオ: 悪者がメモリ ダンプ/コア ダンプを取得する。情報漏えいにつながるコード内の不適切な境界チェック。

最初の 1 つは、実行するのが適切で非常に単純なことのように思えますが、残りはどうですか? 他のアイデア?標準仕様/ベストプラクティスはありますか?

ご意見ありがとうございます。

0 投票する
3 に答える
26829 参照

java - Java PBEWithMD5AndDES

パスワードベースの暗号化を使用しています。私が最初に考えたのは、AES を使用してパスワードを含むファイルを暗号化することでした。パスワードベースの暗号化は AES をサポートしていないことが判明しました。DES を使用します。AFAIK desは安全ではありません。PBEWithMD5AndDES は私のデータを突き刺すのに十分安全ですか、それとも別の実装を探すべきですか?

0 投票する
1 に答える
203 参照

encryption - 強力な (つまり AES) 暗号化と非強力な (つまり従来の zip) 暗号化の間に非線形の違いはありますか?

AES およびその他の最新の暗号化アルゴリズムは強力であると見なされており、「強力であると見なされなくなったため、従来の zip 暗号化を使用することはお勧めしません」などの引用が見られることがあります。しかし、それらの間に本当に非線形の違いはありますか? たとえば、両方が高いエントロピーを持つシーケンスを生成する場合、非常に長いパスワード (512 ビット以上) を使用すると、どちらも見分けがつかないほど強力になることを意味しますか?その時の /10?

0 投票する
9 に答える
23757 参照

javascript - AES-512 アルゴリズムを実装するには?

AES-512 アルゴリズム (つまり、暗号化、復号化) を実装する JavaScript はありますか? ほとんどの JavaScript に AES-128、AES-192、AES-256 が実装されていることがわかりました。

0 投票する
1 に答える
1466 参照

c# - ruby から pkcs7 パディングされた aes 256 cbc の暗号化を解除する方法はありますか?

両側で同じ iv を使用して ac# プログラムから文字列の暗号化を解除しようとしているときに、常に「不正な復号化」が発生します。これは少し面倒になり、問題を本当に理解できません。

これがルビーコードです

そして、これがC#側で暗号化を行うものです

何か案は?乾杯デビッド

0 投票する
1 に答える
2437 参照

security - PBKDF2とSHA256を使用して128ビットのAESキーを生成するのは安全ですか?

PBKDF2と暗号化ハッシュ関数を使用して128ビットのAESキーを生成したいと思います。SHA1も128ビットなので、PBKDF2で使うことを考えましたが、壊れていたので、代わりにSHA256を使うことにしました。これは安全ですか、それともハッシュサイズと結果のキーサイズの違いにより、AESキーが弱くなるような悲惨なサイレント切り捨てが発生しますか?代わりに、AES用の256ビットキーを生成する必要がありますか?

0 投票する
5 に答える
145150 参照

iphone - iPhoneでのNSStringのAES暗号化

文字列を暗号化して、暗号化されたデータを含む別の文字列を返すことができるように、誰かが私を正しい方向に向けることができますか?(私はAES256暗号化を試してきました。)2つのNSStringインスタンスを受け取るメソッドを書きたいです。1つは暗号化するメッセージで、もう1つは暗号化するための「パスコード」です-生成する必要があると思いますパスコードが暗号化されたデータとともに提供されている場合に逆にすることができる方法で、パスコードを使用した暗号化キー。次に、メソッドは暗号化されたデータから作成されたNSStringを返す必要があります。

この投稿の最初のコメントで詳しく説明されているテクニックを試しましたが、今のところ運がありません。AppleのCryptoExerciseには確かに何かがありますが、私には理解できません... CCCryptへの参照をたくさん見ましたが、使用したすべてのケースで失敗しました。

暗号化された文字列も復号化できる必要がありますが、それがkCCEncrypt/kCCDecryptと同じくらい簡単であることを願っています。

0 投票する
2 に答える
50507 参照

java - CBC で Java 256 ビット AES 暗号化を実装する方法

次のスレッドを読み、少しは役に立ちましたが、もう少し情報を探しています。

BlackBerry の初期化ベクトル パラメータを使用して AES/CBC/PKCS5Padding 暗号化と復号化を記述する方法

Java 256 ビット AES 暗号化

基本的に、私がやっていることは、TCP/IP 経由で送信される要求を暗号化し、サーバー プログラムによって復号化するプログラムを作成することです。暗号化は AES である必要があり、調査の結果、CBC と PKCS5Padding を使用する必要があることがわかりました。したがって、基本的には秘密鍵と IV も必要です。

私が開発しているアプリケーションは携帯電話用なので、Java セキュリティ パッケージを使用してサイズを抑えたいと考えています。設計は完了しましたが、IV と共有キーの実装がわかりません。

ここにいくつかのコードがあります:

簡単に言えば、サーバーが電話からキーまたは IV を取得する必要なく、サーバーによって復号化できるメッセージを暗号化することです。電話でIVとキーを保護し、サーバーでもキーとIVを認識できるようにする方法はありますか? そうでない場合は、物事をより明確にするように遠慮なく言ってください。

0 投票する
1 に答える
961 参照

encryption - Javaでの電話からサーバーへの通信の暗号化

これは別のスレッドと一緒にここにあります: CBCでJava256ビットAES暗号化を実装する方法

主に、Javaを使用して電話でAES暗号化を取得しようとしています。

ここでの私の質問は、暗号化キーを処理する方法です。キーを保存するか、キーをハッシュしてそれを使用するか、公開鍵暗号方式を実行するかがわかりません。むしろ、キーを通信するためにサーバーから電話に最初のメッセージを送信しない方法が必要です。電話を暗号化する準備ができており、サーバーが暗号化されたメッセージを待機している必要があります。キー共有アルゴリズムのようなものを実装するには、サーバーアプリケーションを変更する必要がありますが、これはあまり望ましくありません。不可能ではありませんが、ここでコードを再利用します=)。

0 投票する
3 に答える
8756 参照

key - MD5を使用してパスワードから暗号化キーを生成しますか?

私はファイル暗号化のための簡単なプログラムを書いています。主に学術的な演習としてですが、将来の深刻な使用のために使用される可能性があります。面倒な作業はすべてサードパーティのライブラリを使用して行われますが、暗号化を行わない人にとっては、安全な方法でそれらをまとめることは依然として非常に困難です。基本的に、私はほぼすべてが私が思うように機能している。

128ビットのキー長の暗号化に128ビットのAESを使用しています。ユーザーが可変長のパスワードを入力できるようにしたいので、MD5でパスワードをハッシュしてから、そのハッシュをキーとして使用することにしました。これは許容できると思いました。キーは常に秘密であると想定されているため、衝突攻撃について心配する必要はありません。

これを実装したので、これが悪い考えであることを示すいくつかの記事に出くわしました。私の質問は:なぜですか?適切なパスワードが選択された場合、暗号はそれ自体で十分に強力であり、並外れた(現在は実行不可能な)ブルートフォース攻撃を除いて、キーを明らかにすることはありません。キーを生成するためにPBKDF2のようなものを使用する必要がありますか、それとも最も極端な暗号化アプリケーションを除くすべてのアプリケーションにとってそれはやり過ぎですか?