問題タブ [pycryptodome]

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 投票する
2 に答える
1503 参照

encryption - DES アルゴリズムで CTR モードを使用する (Python で)

PyCryptodome パッケージを使用して、Python の DES アルゴリズムで CTR モードを使用したいと考えています。この投稿の最後に提示された私のコード。ただし、「TypeError:短いブロックサイズの安全なナンスを作成できません」というエラーが発生しました。このコードは AES アルゴリズムではうまく機能しますが、DES、DES3、Blowfish など (64 ブロック サイズ) では機能しません。私の知る限り、CTR モードは 64 ブロック暗号アルゴリズムに適用できます。

どうもありがとう。

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

python-3.x - pycrypto API でチェックすると、Python 暗号化 RSASSA PSS 署名が無効を返す

ハードウェア実装のテストベクトルのテストと生成のために、Python の Crypto モジュールの周りにラッパープログラムを構築しようとしています。ハードウェアでは、SHA256 データ ハッシュと MGF1 SHA1 識別子を持つ RSASSA_PSS が使用されます。

暗号化モジュールの場合、署名が無効であるように見えますが、pycrypto によって生成された署名から有効な署名応答を取得します。

以下の実装は pycrpto 用です。

以下の実装は cryptogrpahy モジュール用です。

PSS アルゴリズムの生成にはランダム性が伴うため、取得した署名が同じではないことを理解しています。どちらの場合もアルゴリズムの設定は同じです。

データの SHA256 からの HASH 値は両方のモジュールで一致しますが、暗号化モジュールの場合、ハードウェアでチェックしたときに生成された署名は無効を返します。

 

暗号化モジュールの場合、パラメーターの使用法に問題はありますか?

pycrypto モジュールのドキュメントから、SHA1 が mgf1 に使用され、ソルトの長さもハッシュ アルゴリズムの最大長に等しいことがわかります。

したがって、暗号化モジュールで同じ値を使用すると、有効な署名が得られます。

また、暗号化 API によって生成された署名を検証すると、pycrypto API で対応する公開鍵を使用してチェックすると、無効な署名が返されます。

最新の主要な組み込みハードウェア実装を確認するためだけに、sha256 のハッシュ Alg を使用して mgf1 で署名を生成しようとしましたが、ここでも進歩はありませんでした。

python3.6、pycrypto v2.6.1、および暗号化 v2.2.2 を使用