うまく使いこなせる方法の鍵blobを生成からWin32CryptoAPIするNETアプリケーション?
-
09-06-2019 - |
質問
私は、既存のアプリはC++で記述されたします。こWin32CryptoAPIをTripleDESセッション鍵暗号化/復号化データです。我々の 指数のトリック エクスポートするセッション鍵としてblob、値を格納するか、復号化形式です。
問題はどのように使用できますです。NETアプリケーション(C#).の枠組みプ/ラップなどのCryptoAPIしています。問題の部分はCryptAPIはTripleDESアルゴリズムの Microsoftの強化暗号プロバイダ は168ビット(3キーの56ビット)します。NETフレームワークをキーは、192ビット(3キーの64ビット)どうやら、3つの別バイトができます。NETフレームワークがパリティ?
とにかく、読み取りが必要になりまのキー部分のblob、何とか利用できるのです。純ます。現在は少なくなってきている、期待される成果をはじめようとする場合、利用のキーです。います。の復号化は失敗を誇.自うぞよろしくお願い申し上げます。
更新:
できないかなぁ、とおもってる方法についてこれを解決していくソリューションとしました。しかしながら皆さまからのご意見からです。
解決
巻頭
私は最後に周辺への掲載ソリューションとなります。あなたにとってどんな年でしたが支援その他るのであれうるものとのこと。がんなどへの参照を行うことです。
前提条件
るためには、多くのことを意味する必要を読む 指数のトリック, ことができるエクスポートしているセッション鍵をblob(よく知られるバイト構造)。一ができないこのバイトストリームで開催するとともにすべての重要な鍵となる。
MSDNの文書が混乱
この例では、私が使っているの Microsoftの強化暗号プロバイダ, のTriple DES(CALG_3DES)アルゴリズムです。中でも、投げたというループは、この鍵長は次の168ビット、ブロック長の64ビット.どのように、鍵の長さを168?三鍵の56ビット?どうなるその他のバイト?
それでは、これからいただいた情報しか手に入らないため、他にどのように最後のバイトがパリティおよびその他の理由CryptoAPI帯がoffになります。そうでしょうか?そういういこともOKです。
消費が鍵です。当期純
を使用 TripleDESCryptoServiceProvider, いかれていることにお気づきの発言にdocs示される:
このアルゴリズムを支え鍵長128ビット192ビット単位の64ビット.
なCryptoAPIは鍵長168,どのように思います。純支援をサポートするだけでなく複数の64?そのため、.純側のAPIの間のパリティを考慮し、CryptoAPIはできません。として聞こえるのは仕方ないです... 混乱しているとして.
なのでこっそうとしていることへのキーできます。純側のパリティ情報です。可もない非常に楽し---みをお持ちいただくだけです。りますが、ものに終わずに資本金 F.
ですか?いから転げ落ちそうになりました馬。
電球と花火大会
低いと見よ、私は削MSDNべてのアリーナ、日産スタジアムの情報を見たいのは、相反する作品のWin32 CryptExportKey 機能です。低に見を見たいこの作品のinvaluble情報:
のDES鍵の順列を使用しPLAINTEXTKEYBLOB、完全鍵サイズを含む、パリティビットを輸出する場合.以下のキーサイズに対応しています。
アルゴリズムを支え鍵サイズ
CALG_DES64ビット
CALG_3DES_112 128ビット
CALG_3DES192ビット
では輸出の鍵となる複数の64ビット!わくわく現在のコードできます。純ます。
.純輸入コード調整
のバイト順序が重要である場合の注意点を教えて下さい輸入バイトストリームが含まれるキーに輸出されたとしてblobからCryptoAPI.二つのAPIを使用しない同一のバイト順序に従って @nic強 を示し、逆バイト配列が欠かせる前に実際に利用しようとします。その他にも、ものとして期待される。ける
Array.Reverse( keyByteArray );
結論
ということで誰かがあります。私は間もうこのトラックです。いずれのコメントださい問いにつなげるという試みをスタート記載す。
嬉しい暗号化!
他のヒント
Okを忘れて、最後の解答に読んでいる:)を使って作業3DesキーはRSA鍵となります。
になったバーコードシェアキーです。ネCryptoAPI、openssl.見直す点が多かったのコード例は、こちらのキーの変換:
http://www.jensign.com/JavaScience/cryptoutils/index.html
あ3desものであれば、その関連openssl->.純iirc.
もっと振り返り、RSA鍵コードおよびその告知んでいるのが配列になります。Reverse()すべてのキー部品のRSA鍵(D,DP,DQ,InverseQ,弾性率、P、Q)思変換エンディアンです。※ったのを覚えていて非自明が最初に取り組む問題です。
希望れることもありませんでした。テレビでも展開しております。