私はCで80ビットのキーを含む暗号アルゴリズムを実装しています。 特定の操作では、キーxビットをシフトする回転が必要です。Cで80ビットのデータ型を操作する
私は間違っていないと80bitsですが、ビットシフト演算子では動作しないlong double型を試しました。
私が思い付く唯一の選択肢は、いくつかの複雑なループとif-elseで10要素のchar配列を使用することです。
私の質問は、これを実行する簡単で効率的な方法があるかどうかです。
ありがとうございました。
私はCで80ビットのキーを含む暗号アルゴリズムを実装しています。 特定の操作では、キーxビットをシフトする回転が必要です。Cで80ビットのデータ型を操作する
私は間違っていないと80bitsですが、ビットシフト演算子では動作しないlong double型を試しました。
私が思い付く唯一の選択肢は、いくつかの複雑なループとif-elseで10要素のchar配列を使用することです。
私の質問は、これを実行する簡単で効率的な方法があるかどうかです。
ありがとうございました。
ここではちょっと混乱しています。私があなたを正しく理解していれば、あなたはFPGA上で「ソフト」なCPUを使用しています。
伝統的に、人々はFPGAを使用して、VHDL/Verilogを通して独自のシフトレジスタを作成します。このような種類のアルゴリズムは、実装するのが非常に簡単で非常に高速です。大学に戻ると、これは暗号化プロジェクトのためのものです。
また、上記の記事では128ビットのキーについて説明しています。これは実装がはるかに簡単ですか?
この論文では、アルゴリズムが80ビットと128ビットのキーの両方で機能することも述べています。前者はここで実装しようとしている軽量バージョンです。 – gamerx
これは良いことです:FPGAを使用している場合は、アルゴリズムをソフトCPU上で実行するのではなく、その中にアルゴリズムを組み込むことができます。 –
これはPC1アルゴリズムですか?私の理解は、80ビット版がMotorola 6809などの他の(x86ではなく)アーキテクチャで使用されていることです。あなたはプラットフォームを与えることができますか? – Mikhail
ちょうどcharの配列を使って、独自のshift/rotateを実装してください - 例についてはここを見てください:http://stackoverflow.com/questions/3918229/how-to-circular-shift-an-array-of-4-chars –
こんにちは、これはPRESENTブロック暗号アルゴリズムではありません。 http://homes.esat.kuleuven.be/~abogdano/papers/present_ches07.pdf 私は、Cでxilinx microblaze fpgaボードに実装しようとしています。 – gamerx