問題タブ [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.

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

encryption - 暗号化アルゴリズム ブロック暗号とストリーム暗号

ストリーム暗号とブロック暗号の違いは何ですか?ブロック暗号のようにデータはチャックにあり、ストリーム暗号ではビットごとに暗号化されているので、ストリーム暗号の入力としていくつのデータがありますか?

0 投票する
0 に答える
22 参照

java - 16 進数値を受け入れる xxtea アルゴリズムを実装する

XXTEA アルゴリズムでコードを暗号化する必要があります。

暗号 = 16 バイト キー = 8 バイト

例 : キー: 0xAA 0xBB 0xCC 0xDD 0xAA 0xBB 0xCC 0xDD 0xAA 0xBB 0xCC 0xDD 0xAA 0xBB 0xCC 0xDD

メッセージ: 0xFF 0xFF 0x87 0x30 0xFF 0xFF 0x87 0x30

そして、私はこの暗号化された結果を期待しています: 0X24 0x81 0xCE 0x89 0xA5 0x58 0x57 0x35

今、私はこのコードを使用しています: https://code.google.com/p/ths-java/source/browse/trunk/ths/crypto/XXTEA.java?r=2

しかし、バイト関数が間違った値を与えるため、このコードを16進数のバイト値で使用するのはより困難です。

16 進値を受け入れ、暗号化された値をバイト配列で返すアルゴリズムを実装するにはどうすればよいですか

編集: 16 進ダンプ文字列をバイト配列に変換する方法は知っていますが (stackoverflow =D で学習しました)、使用するbyte[] encrypt(byte[] data, byte[] key)と間違った結果が得られるという問題があります。

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

c# - 整数の暗号化を保持するc#フォーマット

バウチャーなどの引き換えコードとして使用される数値コードを生成する必要があります。要件は、コードが数値であり、レジ オペレーターのデータ入力速度が比較的短いことです。約 6 文字の長さの数字。数が少ないことはわかっているため、コードの有効期限が切れて再利用できるようにするためのプロセスが用意されています。

一意のコードを生成するという点でうまく機能している順次整数ジェネレーターを使用することから始めました。これに関する問題は、生成されたコードがシーケンシャルであるため予測可能であることです。つまり、顧客は私たちが生成したコードを推測し、意図されていないバウチャーを引き換えることができます.

Format Preserving Encryptionについて読んでいますが、これはうまくいくようです。コード自体は任意であるため、いつでもコードを解読する必要はありません。(日常の人々が) 予測できないことを確認する必要があるだけです。正直な人々を正直に保つことは、セキュリティにとって重要ではありません。

ウィキペディアの記事で参照されているさまざまな暗号がありますが、私は非常に基本的な暗号化および数学のスキルを持っており、暗号に基づいてこれを達成するための独自のコードを作成することはできません。

私の質問は、整数を別の整数に暗号化し、同じ長さを維持するこれの ac# 実装を知っている人はいますか?

FPE は、16 桁のクレジット カード番号を別の 16 桁の番号に暗号化するためによく使用されるようです。同じ種類のものが必要ですが、必ずしも長さに固定されているわけではありませんが、プレーンな値の長​​さが暗号化された値の長さと一致する限りです。

したがって、次の 4 つの整数が暗号化されます。

123456 から 123457 123458 123459

このようなノンシーケンシャルなものに

521482 265012 961450 346582

この FPE を実現するための他の提案を受け入れるのは、良い選択肢のように思えたからです。

編集

一意のコードを生成して保存し、重複をチェックするだけの提案をありがとう。生成時にストレージをチェックする必要がないため、現時点ではこれを避けています。これが、コードが一意かどうかを確認する必要がないように、順次整数ジェネレーターを使用する理由です。これについては再調査しますが、今のところ、コードを生成するたびにストレージに移動する必要がないようにする方法を探しています。

0 投票する
0 に答える
49 参照

windows - Schannel 暗号の命名規則

特定の暗号を無効にすることを検討しており、Windows でブロック暗号がどのように命名されているかについて頭を悩ませようとしています。具体的には、名前に続く数字の意味。たとえば、RC4 40/128、DES 56/56、AES 128/128、または AES 256/256 です。これはおそらくキーサイズ/ブロックサイズだと思いましたが、意味がありません。AES 256/256 を取ります。それがAESであるためには128のブロックサイズが必要であることは私の理解です。したがって、最後の数字はブロックサイズを指定できません。または、RC4 暗号を使用します。最初の数字は鍵のサイズのように見えますが、これはストリーム暗号なので、128 は何ですか? または DES 56/56。DES のキー サイズは 56 ビットで、ブロック サイズは 64 ビットだと思いましたか? 歴史やネーミングの理由を知っている人はいますか?

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

c# - C#を使用した入力ブロック暗号のSystem.IndexOutOfRangeException

独自のパターンを使用して、256 ビット長のブロック暗号にバイナリ入力を試みます。

入力クラスの使用

ルールあり

結果は binary_[i] であり、指定された配列と一致しません。IndexOutOfRangeException was unhandled

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

c# - Speck32/64 ブロック暗号を実装しようとしています

c# で Speck 32/64 ブロック暗号を実装しようとしていますが、暗号化復号化アルゴリズムで立ち往生しています。アルゴリズムに従って、プレーンテキストを2つの単語に分割する必要があることを知っています

参考文献

軽量ブロック暗号の SIMON および SPECK ファミリ https://eprint.iacr.org/2013/404

私の質問は、平文は文字列でなければならないということです。次に、バイナリに変換するか、それを上記のアルゴリズムで使用しますか? アルゴリズムは平文のタイプを示さず、暗号化の例があります

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

aes - AES-CCM 暗号化メッセージの長さ

これを説明してください:

1バイトのプレーンテキストを8バイトのMACでAES-CCMで暗号化しました。結果の長さは 9 バイトです。

AES は 16 バイトのブロック暗号なので、結果は 24 バイトになるはずだと思っていましたが、そうではありません。

RFC 3610 の例は私の場合と非常に似ているため (31 バイトのデータ + 8 バイトの MAC で 39 バイトの出力が得られる)、これは間違いなく私のコードのバグではありません。