0

ファイルを組み込みデバイスに送信するための暗号化スキームを考案しています。開発者は共有公開鍵を介してログインできるため、この同じ鍵を使用して、送信されたファイルを暗号化/復号化することは理にかなっています。ファイルは開発者によってのみパッケージ化されるため、この公開鍵は決して​​配布されません。

送信されるファイルは、NSA の品質などではなく、解読を困難にするのに十分なだけ安全である必要があります。

次のようなものを使用して暗号化/復号化できます。

cat file | openssl [-d] aes-256-cbc -kfile path/to/public/key > outfile.aes

サーバーコードでこれを行いたいことを除いて、これはうまく機能しています。シェルアウトすることもできますが、コードで行うほうがよいでしょう。

キーから base64 データを取得しましたが、デコードすると 279 バイトの配列が得られますが、256 ビットのキー (32 バイト) が必要です。

openssl はキーファイルに対して正確に何を行い、コードでそれをどのようにエミュレートできますか?

を試しman opensslましたが、有用なものは見つかりませんでした。

問題がある場合は、Go でこれを行っています。

4

1 に答える 1

1

OpenSSL は、特定のキー導出関数を使用して、指定された「パスワード」からキーを計算します。この機能は と呼ばれEVP_BytesToKeyます。これは OpenSSL API の一部であるため、C/C++ 関数を呼び出すことができれば、直接使用できます。それ以外の場合は、他の実装も利用できます (実装はそれほど難しくありません。オブジェクト指向の Java バージョンを作成しました)。

よろしければ、このアルゴリズムのスタック オーバーフロー検索をご自身で行っていただきます:)

于 2012-12-14T23:35:14.340 に答える