問題タブ [xtea]
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.
python - 16 進形式のキーを使用した XTEA 復号化
XTEA アルゴリズムを使用して暗号化されたデータを復号化しようとしています。私は128ビットの鍵を持っています。
これまでに確認したすべての実装は、キーを 16 文字の文字列 (ASCII) として受け入れます。ただし、私のキーは 16 進数形式 (32 文字) または 4 つの DWORD です。
データを復号化するためにキーを 16 進形式で指定できる実装はありますか?
オンラインでいくつかの実装を確認しました。たとえば、次のとおりです。
https://code.google.com/p/zzt-code-base/source/browse/trunk/src/python/xtea.py
16 進数形式のキーを使用して復号化するには、ソース コードを変更する必要があります。
具体的には、次の行の関数 xtea_decrypt() で:
キーを 16 進形式で指定できるようにするには、どのような変更を加える必要がありますか?
また、16 進形式のキーを受け入れることができる既存の実装があれば、それが役立ちます。
python - Python での XTEA テストベクトル
Python で xtea アルゴリズムのこの実装をテストしようとしています。私が見つけた唯一のテストベクトルはこれらです。バイトごとに比較できるように、アルゴリズムの出力をテストするにはどうすればよいですか? どのパスワード/キーを選択すればよいですか? どのエンディアンが最適でしょうか? (私は 64 ビットの xubuntu/x86/リトル エンディアンを使用しています)
XTEA
最初の 64 ビット テスト入力
テストベクター (ここからコピー)
c++ - std::vector を使用した XTEA 関数
XTEA で std::vector を暗号化しようとしています。std::vector を使用すると、大量のデータを扱う際にさまざまな利点が得られるので、使用したいと考えています。
XTEA アルゴリズムは、64 ビットのデータを使用する 2 つの符号なし long (v0 と v1) を使用して、それらを暗号化します。
私の問題は、char ベクトルを unsigned long ポインターに変換する最良の方法を探していることです。
または、暗号化機能のためにベクトルを 64 ビット部分に分割する別の方法はありますか?
c# - byte[16] を uint32[4] に取得する
XTEA アルゴリズムを C# で実装しようとしていますが、それを行う関数を見つけました。
ただ、越えなければならないハードルがあります。この関数では、データとキーを UInt32 配列に入れる必要があります。
時間のために、キーを使用可能な形式にすることに関連するものだけを投稿します。
C#擬似コードでやろうとしていることは次のとおりです。
Bitwise OR などを使用する必要があると聞いたことがありますが、それがどのように機能するのか完全にはわかりません。また、BitConverter.ToString を使用して正しく解析し、結果が文字列「666F6F62」であると仮定すると、それを uint32 の 1 つに変換できると聞いたことがあります。しかし、それはずさん/怠惰/非効率的です。
この質問を書いている間、私もこれを試しましたが、うまくいかなくても明確になるかもしれません:
encryption - ValueError: キーは 128 ビット長 XTEA でなければなりません
データを暗号化し、TCP ソケット経由でサーバーに送信しようとしています。ただし、次のコードでは ValueError: Key must be 128 bit long というエラーが表示されます。
誰でもこれについてコメントできますか?
php - PHP xtea 実装 (cfb)
理解できない奇妙な行動に出くわしました。
一部のデータを暗号化するために mcrypt xtea (cfb モード) を使用しています。PHP 7.2 では mcrypt が取り除かれ、openssl は Xtea をサポートしていないため、アルゴリズムを自分で実装する必要がありました。
問題は、使用されるアルゴリズムに関係なく、次のとおりです。
ここで提供されているものをテストしました: ECB モードのみのpear 実装(初期化ベクトルなし)
そして、このstackoverflowトピックから取られたウィキペディアのページで提供されているもの
そして、私がここで(CFBモード用に)開発したものは、ウィキペディアのここ とここの2つの次の記事と、ここにあるmcryptソースコードに基づいています 。
/li>
私は別の結果を得て、さらに、mcryptが使用して与えるものとまったく同じ結果を与えるものはありません:
同じデータ/キー/IV を使用して、ここで行ったさまざまなテストを確認してテストできます。
CFB モードでの私の実装 VS mcrypt。ご了承ください :
- ラウンド数は何も変わりません (32 または 64)
- N モード (ビッグ エンディアン) または V モード (リトルエンディアン) を使用したパック/アンパックは何も変更しません
異なる結果が得られる理由を誰かが知っていますか?