問題タブ [block-cipher]
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.
endianness - C コードのブロック XTEA について
エンディアンの異なるシステムで暗号化データを送受信したいのですが可能ですか?それは同じエンディアン システムで可能であると聞きました xxtea コードはインターネットで xtea をブロックしています...
php - XTEAC++コードをPHPに移植するのに助けが必要
C++コードをPHPに変換する際に問題が発生しました。目的は、 XTEA暗号を使用してアプリケーション(C ++でビルド)をWebサーバー(PHP)と通信し、XMLRPCを介して要求されたパケットを暗号化/復号化する必要があることです。
いくつかのプロジェクトLodeのプログラミングインターフェイスから取得した元のコードと、私が意味するコードはこれです。
いくつかのスニペット:
上記のコードをPHPコードに変換するのを手伝ってくれる人がいるかもしれません。与えられたすべての助けは大歓迎です。
前もって感謝します。
python - Python 24ビットストリームが正しい値を与えていませんか?
3文字をASCIIバイナリ表記に変換してから、最初の文字を16桁、2番目の文字を8桁インクリメントし、最後の文字をそのままにして、24ビットストリームを構成すると、最初の8ビットが場所は最初の文字を表し、次の8つは中央の文字を表し、最後は最後の文字を表します。これが私のコードです:
そのため、問題が発生した場合、最初の文字はとして復号化されO、最後の文字も同様に正しくなりましyたが、何らかの理由で、に対して正しいことを実行できませんz。どうしたの?
security - How to choose an AES padding mode?
Depending on the framework you are using, there are various padding modes that can be used with AES encryption. For example, with .NET we can choose PKCS7, ISO10126, ANSIX923, Zeros or None. Similar options are available in Java.
I understand that the encryptor and decryptor need to use the same mode to be interoperable.
What considerations are there when choosing a padding mode? With the exception of 'None', does it even matter which you choose? Can some be considered more secure than others?
encryption - MD5 ハッシュを使用するプロトコルはありますか?
プロトコルについて学習する目的でリバースエンジニアリングを行っているプログラムがあります(およびアセンブリスキルを磨くため)。私はプロトコル全体を逆にして、暗号化がどこで行われるかをすべて知っています。プログラムは CBC (チェーン ブロック暗号) を使用しますが、パケットは送信前に MD5 ハッシュを通過し続けます。
私はこれが不可能であることを知っています (またはそうですか?) 長い間 Google を検索しましたが、情報が見つかりませんでした。このようなプロトコルが可能かどうか、またその名前を知っている人はいますか?
c# - PRESENT Ultra-Lightweight Block Cipher 暗号化の C#、Delphi、または FreePascal 実装を持っている人はいますか?
少し前に、PRESENT: An Ultra-Lightweight Block Cipher by Andrey Bogdanovらの論文がISO 標準 29192-2:2012として公開されました。
単体テストを備えた C#、Delphi、または FreePascal の実装を持っている人はいますか?
これはここで尋ねられました。私はただ助けようとしています。
java - gzencodedデータをmcrypt_encryptに渡すと、復号化後に解凍できません
これを短くするために、gzencode(または他の非テキストデータ)の結果をmcrypt_encrypt関数に渡すときに既知の問題がありますか?
詳細:
基本的に、プレーンテキストに対して暗号化/復号化が機能するという問題がありますが、圧縮データを暗号化関数に渡してから復号化して解凍すると、解凍中にエラーが発生します。
したがって、PHPでは、gzencode()の結果を暗号化関数に渡します。次に、WebサービスのWebページに結果を表示するためにbase64エンコードします。次に、Javaアプリで、GZIPInputStreamを使用してbase64をデコード、復号化、および解凍しています。最後のステップでエラーが発生します。
ただし、圧縮手順をスキップすると(プレーンテキストを暗号化関数に渡すだけで)、すべてが正常に機能します。暗号化をスキップして圧縮を行うだけでも、すべて正常に機能します。したがって、これらの関数を組み合わせない場合、これらの関数はPHP側とJava側の両方で正常に機能するようです。
Java関数:
したがって、PHPでこれを行う場合:base64_encode(encrypt(gzencode($ plain_text)));
そしてこれはJavaで
unzipPrint(decrypt(decodeBase64(data)));
解凍フェーズ中に、「java.util.zip.ZipException:オーバーサブスクライブされた動的ビット長ツリー」という恐ろしいものが表示されます。
繰り返しますが、両端で圧縮/解凍の手順をスキップすると、すべて問題ありません。そして、両端で暗号化をスキップすると、圧縮/解凍は正常に機能します。
編集:奇妙なことに、圧縮されたデータの結果のバイト配列をバイトごとにチェックした後(base64のデコードと復号化の後)、値が1だけずれている(元のPHPバイト配列と比較して)SINGLEバイトが見つかりました。これはバイト番号14(Javaではインデックス13)で、値は111ではなく110でした。これがどのように当てはまるのかまったくわかりません。
したがって、その1バイトを110から111に変更すると、GZIPOutputStreamを使用してデータを正常に解凍できます。
だから私は何が悪いのかは知っていますが、理由はわかりません。
編集2:これは解決されました-> Owlsteadによるコメントのおかげで、私はIV値を再確認し、phpとjavaコードの間にわずかな不一致があることを発見しました。これがどのようにして結果の復号化されたデータにわずか1バイトの違いをもたらすことができるのか私にはわかりません。
それは私のIVの0x12の代わりに単一の0x13で1日無駄になりました。
java - 復号化時のIllegalBLockSizeException
暗号化と復号化の機能を書きました。暗号化は正常に機能しますが、復号化で常にIllegalBlockSizeExceptionが発生します。
そして、これが復号化機能です:
これをテストする簡単なメインメソッドは次のとおりです。
暗号化された文字列を正しく「パディング」して復号化する方法を知っている人はいますか?(長さが16の倍数になるまで、文字列に0を埋めてみましたが、次のようになりstring not properly paddedました。)
ありがとう
c++ - AES および Crypto++ を使用した単一ブロックの暗号化/復号化
AES の単一ブロックを暗号化する必要があります。CBC などのモードは使用できません。私が見たすべての例では、ストリーミング モードを使用しています。
編集:わかりました、次の方法でやりましたが、この試みは本当に嫌いです。
encryption - ショートメッセージを使用するAESCTRモード
CTRモードのAESは、短いメッセージ(ブロックサイズ未満)を暗号化するときに安全に使用できますか?例として、SSNまたはクレジットカード番号の暗号化があります。私はこれに関して矛盾する情報を見たので、明確にしたいと思います。ありがとうございました