問題タブ [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.
c++ - 無効なアルゴリズムが指定されました CryptoAPI
128BIT AES Decryption を使用して何かを解読しようとしています。CryptDecrypt を呼び出そうとすると、「無効なアルゴリズムが指定されました」というエラーが表示されます。ここに投稿されたライブラリを使用すると、同じ問題が発生します: http://www.codeproject.com/KB/security/WinAES.aspx
このエラーの原因は何ですか?
Visual Studio 2008 を使用して vista64bit で CryptoAPI を使用しています。レジストリをチェックインすると、AES ライブラリが存在します...
編集
InitWinCrypt 関数
AesOffering 構造体:
EDIT2
コンピューターを再起動し、CBC チャンクを削除した後。現在、Bad Data エラーが発生しています。データは C# で正常に復号化されます。しかし、wincrypt を使用してこれを行う必要があります。
encryption - ハイブリッド暗号システムのクライアントに AES 初期化ベクトルを通信する方法
クライアントとサーバー間の通信にセキュリティを実装する必要があります。次のハイブリッド暗号システムを実装しました
Alice 宛てのメッセージをハイブリッド暗号システムで暗号化するために、Bob は次のことを行います。
- Alice の公開鍵を取得します。
- データ カプセル化スキームの新しい対称キーを生成します。
- 生成されたばかりの対称キーを使用して、データ カプセル化スキームでメッセージを暗号化します。
- アリスの公開鍵を使用して、鍵のカプセル化方式で対称鍵を暗号化します。
- これらの暗号化を両方とも Alice に送信します。
このハイブリッド暗号文を復号化するために、Alice は次のことを行います。
- 彼女の秘密鍵を使用して、鍵カプセル化セグメントに含まれる対称鍵を復号化します。
- この対称キーを使用して、データ カプセル化セグメントに含まれるメッセージを復号化します。
公開鍵暗号システムには RSA を使用し、対称鍵暗号システムには AES を使用しています。すべてが正常に動作しますが、AES 初期化ベクトルを処理する方法がわかりません。現在、AESキーと初期化ベクトルを連結して公開キーで暗号化し、それをサーバーに送信しています。
このアプローチについて意見を求めたかっただけです。この問題が他の通信プロトコル SSL などでどのように解決されているか。
ありがとう。
encryption - どの暗号化アプローチを使用する必要がありますか?
非常に機密性の高いデータ (企業秘密であるソース コード) を交換するシステムが必要です。私は Crypto++ を使用するので、実際にはすべての暗号化アルゴリズムを使用できますが、業界標準を使用することを本当に好みます。
現在、私はこれらの方法について考えています:
- サーバーに 2048/4096 ビットの RSA キーを生成させ、公開キーをクライアントに送信し、クライアントにデータを暗号化してからサーバーに送信させます。
- AES-256 キーを交換するには、Diffie-Hellman (正確には Diffie-Hellman-Merkle) などのキー交換方法を使用します。
- TLS 接続を開始し、サーバーに AES キーを直接伝えます。
どのアプローチを使用する必要があると思いますか? 合理的である限り、パフォーマンスは気にしません。セキュリティが重要です。それらのいずれでもない場合は、別の方法を提案してください。
PS: AES-Twofish-Serpent のような対称アルゴリズムでチェーンを使用する場合があります。
編集: 推奨されるソフトウェアは、独自の使用を制限しないライセンスに含まれている必要があります。LGPL は、取得しなければならないほど制限的です。それはGPLを除外します。
c# - C# の XTS-AES モード
C# (.net 3.5) の XTC モードで AES を使用することは可能ですか? CipherMode 列挙体にはないようです。ウェブ上でその実装を見つけることができないようです。
編集: .net 実装が見つからなかったので、1 つ書きました: https://bitbucket.org/garethl/xtssharp
aes - AESアルゴリズムSボックスの一意性
これはAESアルゴリズムに関するものです。
AESアルゴリズムを実装し、アルゴリズムを使用してデータを暗号化したとします。ここで、他の誰かが同じAESアルゴリズム(128ビット)を実装したとします。今、自分のアルゴリズムを使用してデータを暗号化すると、データを復号化し、他の人が開発した2番目のアルゴリズムを使用して元のデータを取り戻すことができます。アルゴリズムの根本的な違いは何ですか。
S-BOXに関連するものですか
ありがとう
php - PHPでAES256復号化を行う方法は?
復号化する必要のある暗号化されたテキストがあります。AES-256-CBCで暗号化されています。暗号化されたテキスト、キー、およびivがあります。しかし、何を試してもうまくいかないようです。
インターネットは、mcryptのRijndaelサイファーがこれを実行できるはずだと示唆しているので、これが私が今持っているものです:
現在のところ、2つの警告が表示され、出力はぎこちないものになっています。
どんな助けでもいただければ幸いです。
php - Ruby AES256 復号関数を PHP に変換する
Ruby には、データの一部を復号化する次の関数があります。
PHPでまったく同じことをしようとしていますが、何が間違っているのかわかりません。これが私が持っているものです:
出力は、探している文字列ではなく、ゴミになってしまいます。アイデア?
そして、始める前に、それをに切り替えてもMCRYPT_RIJNDAEL_256
役に立たないようで、iv がブロックサイズほど長くないという不平を言うだけです。このサイトでは、128/256 はキー サイズではなくブロック サイズを示していると述べているため、この場合は 128 が正しいと思います。
ruby - PerlとRubyはAES暗号化情報を交換します
PerlforRubyのCrypt::CBCに相当するものは何ですか?
注:この問題は、stackoverflow:655691のPHP/Perlに似ています。
Perlバージョン
私のルビーバージョンは次のようになります。
Base64はRubyとPerlで同じように機能すると確信しています。正しい方法は何ですか?
更新(解決策)
ルビー
encryption - AES 128 ビット CFB 実装またはサンプル アプリケーションへのリンク
パスワードといくつかのデータを指定して128ビットAES CFB実装をテストできるサンプルアプリケーションまたはリンクを知っている人はいますか。
ありがとう
java - iPhone (Objective-c) と Java の AES の違い
私はこれを解決しようとして一日中髪を引き裂いています...
Java サーバーに接続している iPhone で Objective-C クライアントを実行しています。iPhone は AES を使用してデータを暗号化していますが、サーバーで復号化できません。私は既知のパスフレーズとメッセージ (単一の文字列) を使用しており、iPhone でバイト配列を生成し、Java サーバーで同じキーとメッセージを使用して比較バイト配列を生成していますが、バイト配列は完全に異なります (したがって、 Java 側でデコードされます)。
クライアントは次の設定で CommonCrypto ライブラリを使用しています...
データは、
キーNSData
を使用して単語「メッセージ」を保持しています。これは、上記のエンコーディングを使用して、フレーズ「1234567891123456」を保持しています。アルゴリズムは
オプションです(サーバー上のECBと同等だと思いますか?!)dataUsingEncoding:NSASCIIStringEncoding
NSData
kCCAlgorithmAES128
kCCOptionsPKCS7Padding
サーバーは次のコードを使用しています...
しかし、encryptedData のデータは、objective-c コードで生成されているデータと一致しません。バイト配列は完全に異なります。
私が間違っていることは明らかですか?設定はすべて同じだと思います... :(
- 更新 - 要求に応じて....
わかりましたので、ここに行きます....
iPhoneクライアントは次の文字列「メッセージ」を暗号化しています。キー「1234567891123456」を使用します。「1010101010101010」の初期化ベクトルを使用します。AES128を使用し、CBCモード(私が知る限り)とkCCOptionsPKCS7Paddingのオプションを使用しています。
暗号化 (base64 エンコード) の結果は UHIYllDFAXl81ZM7OZPAuA== です。
サーバーは、同じキーと初期化ベクトルを使用して、同じ文字列を暗号化しています。次の Cipher.getInstance("AES/CBC/PKCS5Padding"); を使用しています。
暗号化 (base64 エンコード) の結果は、ALBnFIHysLbvAxjvtNo9vQ== です。
ありがとう。
- 更新 2 - 要求に応じて...
これがiPhoneコードです....
暗号化の NSData カテゴリはここから来ています...
http://github.com/AlanQuatermain/aqtoolkit/tree/master/CommonCrypto/
ちなみに、toencrypt、pass、iv にあるバイト配列を確認したところ、サーバーにあるものと一致しています。