2010-11-18 19 views
2

XML文書を暗号化して圧縮したファイルがあります。このファイルは、ラインダールとSHA256を使用して、「DcpCrypt」と呼ばれるパッケージで、Delphiで暗号化されていますC#とDelphi。 C#を使用してDelphiで暗号化および圧縮されたXMLを読む

fRijndael:=TDCP_rijndael.Create(nil); 
fRijndael.BlockSize:=16; 
fRijndael.CipherMode:=cmCBC; 
fSHA256:=TDCP_sha256.Create(nil); 
fSHA256.HashSize:=256; 

はこれをuncryptingできるC#のですか?私はたくさんのグーグルグーグルを行っており、DcpCryptは.NETのlibとは異なるキーを計算しているようです。

多くのありがとうございます。

+1

はい、そうです。最悪の場合:C#から呼び出すことができるDelphi DLLを作成し、それを復号化します。幸いにも、C#用の暗号化/復号化ソリューションがいくつかあり、ジッパー/アンジッピングでさえ問題にはなりません。私はちょうどあなたが使用できるものを知りません。 –

答えて

3

短い答えははいです。長い答えは "それは依存する"です。

「自分の鍵を計算する」とは、暗号鍵の生成を意味します。鍵の生成方法は、暗号化と復号化にthos鍵を使用するプロセスとはまったく関係ありません。

RijndaelがAES標準になる前にDcpCryptが書かれました(それはずっと前です)。プリスタンダードのRijndaelの実装がAESと同じであると仮定すると(おそらくそうである)、AESの暗号化/復号化の相互運用性は、実装オプションにのみ依存する言語と実装の中立でなければなりません。

しかし、これらのオプションを特定し、これらを暗号化コーデックと復号化コーデックの両方で同じに設定するのは難しい場合があります。

どのようなオプションがありますか?

  1. 連鎖モード。
  2. IV
  3. メッセージはどのように塩化されていますか?もしかして?
  4. 終了:AESは、非キーストリーミングチェーンモードのブロック方式を指定していません。
  5. 一般に、AES以外の暗号では、キーのエンコード方法の指定に問題があるかもしれませんが、これはAESには問題ありません。

暗号化プログラムが使用するすべてのオプションを特定したら、それらのオプションを暗号解除プログラムに適用する必要があります。この問題は、Rijndael/AESに固有の問題ではなく、すべての暗号に共通しています。

ちなみに、圧縮の目的で圧縮している場合、暗号化に続く圧縮は無意味です。 Zipは、内容がすでに最大限にランダムなファイル(暗号文など)を圧縮しません。

DcpCryptではなく、AESでTurboPower LockBox 3を使用して暗号化することをお勧めします。 Dave BartonのDCPcryptは当時は良好でしたが、標準では最新ではなく、安全にIVを管理していません。

LockBoxを使用する場合のオプションは何ですか? CBCモードでLockBox 3のAESコーデックを使用する場合、塩析とIVは、IVをナンスに設定してそれを事前に放出することによって管理されます。 1ブロックよりも長いメッセージの場合、ブロックは暗号文の盗聴によって実現されます。 1ブロックよりも短いメッセージの場合、連鎖モードは強制的に8ビットCFBになります。これはキーストリーミングです。

また、SHA256でファイルを暗号化することについてのあなたのコメントは意味をなさない。 SHAはハッシュであり、暗号ではありません。

+0

Sean、あなたはあなたの応答に非常に有用な情報を提供しました。私はLockBoxの暗号化に関する情報を標準の暗号化オプションと比較して検索しました。たとえば、私はLockBoxで何かを暗号化し、OpenSSL.exeで解読できるようにします。直接私に連絡する方法はありますか?私はここで別の質問を投稿することになります。私がしているなら、私は自分の質問へのリンクでこのコメントを編集します。私の懸念は、私が今のところたくさんの質問をしていることです。 ;)ありがとう –

+0

LockBoxにはlockbox.seanbdurkin.id.auでのフォーラムのアクティブセットがあります。そこに質問を投稿することができます。 LB3にはOpenSSL用のラッパーも含まれていますが、署名と検証の機能にのみ関連し、暗号化/復号化機能には関係ありません。 - それでも、私はあなたを助けることができるかもしれません。 –

+0

この質問と回答もご覧ください: http://stackoverflow.com/questions/9188045/how-to-aes-128-encrypt-a-string-using-a-password-in-delph-and-decrypt-in -c/9203567#9203567 –

関連する問題