問題タブ [rc2-cipher]
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.
cryptography - RC2 主要スケジュール
RC2 のキー スケジュールがどのように機能するか (特にその最初の部分) を誰か説明できますか? リトルエンディアンを使用していることはわかっていますが、「0000 0000 0000 0000」以外のキーでは実装が機能しません。
キーで最初に行うことは、キーを次のように変更することだと思います
はい、RC2はもう使用されていないことは知っていますが、それでも知りたいです
objective-c - CCCrypt を使用した RC2 復号化
RC2データを有効ビット64ビットのみで復号化しようとしています。
私は 64 ビットしか持てないので、呼び出す前にCCCrypt
メソッドを使用してキーをこの数のビットに減らす必要があることを理解しています。Apple の CommonCrypto ライブラリにはそのようなメソッドが見つからなかったので、見つけたこのkeyschedule メソッドを使用しています。
メソッドのパラメーターは次のとおりです。
実際の復号化部分については、 AES 256 を使用する例から作業しようとしています。これは私がこれまでに持っているものです:
これを実行すると、次のように文書化されcryptStatus
た値があります。kCCDecodeError
@constant kCCDecodeError 入力データが正しくデコードまたは復号化されませんでした。
to128
として送信する理由は、キーが 64 の short int の長さであり、1 つの short が 2 バイトに等しいと考えているためです。したがって、.keyLength
CCCrypt
64 * 2=128
オプションで何を送信すればよいかわかりません。kCCOptionPKCS7Padding
AESの例から取ったものを使用しました。利用可能なその他のオプションはkCCOptionECBMode
、 およびCBC
です。他の 2 つのオプションを試すと、 にcryptStatus
なりますkCCSuccess
が、データは常にnull
です。成功を誤って報告していると思います。
私が「手動で正確さをチェックした」と言うとき、私はそれらの時点でのキーと暗号を、正常に動作する JavaScript 実装と比較したことを意味します。
Apple のライブラリ (CommonCrypt など) を使用して RC2 データを復号化するにはどうすればよいですか?
security - 64ビットRC2はどの程度安全ですか?
暗号化では、キーサイズが同等である場合、2つの対称アルゴリズムはセキュリティの観点から同等であると見なされますか?(つまり、64ビットRC2アルゴリズムは、64ビットAESアルゴリズムとまったく同じセキュリティを提供しますか?)
64ビットRC2アルゴリズムを使用することはどれほど安全(または安全でない)でしょうか?
ブルートフォース攻撃がこの種の暗号化を解読するのにどれくらいの時間がかかると予想できますか?
このアルゴリズムで保護できるのはどのような種類のデータですか?(たとえば、アルゴリズムが十分に安全ではないため、クレジットカード情報をこのアルゴリズムで暗号化することはできません)。
c# - RC2 クリプト SQL サーバーと C#
彼は、私のアプリケーションに暗号化アルゴリズムを実装する方法を調査していました。彼はRC2を見たことがあります。
一方では、c# からの暗号化と復号化に成功しました。
一方で、SQL Server からの暗号化と復号化にも成功しました。
しかし、SQL サーバーから暗号化したものは C# から解読できず、また C# から暗号化すると SQL Server から解読できません。
もちろん、暗号鍵と初期ベクトルは同じです。
SQLサーバーをデータ暗号化として維持しているのは、単なるバイナリ暗号化ではなく、さらに何かを追加していると思います。
編集: C# コード:
暗号化するには、次を使用します。
T-SQL コード:
暗号化 "Perico" T-SQL のバイナリ結果: 0x009C6828879054489426381EFD2E3FD501000000266B3AF2ED7029C1F567AF8119C5D458FCDE1E984B2262A0
C#:
0x9FC66B77905837F5
ありがとう!
c# - RC2 暗号化とパケット区切り文字
私はクライアント/サーバー アプリケーションに取り組んでおり、2 つの間の通信は暗号化されています。クライアントが組み込まれており、CPU リソースが限られているため、RC2 暗号化を使用しています。System.Security.Cryptography.RC2CryptoServiceProvider.CreateDecryptor/CreateEncryptor メソッドを使用して暗号化クラスを作成しています。
私の問題は、メッセージを複数のパケットに分割するという TCP の傾向に起因しています。メッセージ全体が Socket.Receive() の 1 回の呼び出しで到着しない可能性があるため、送信パケットの最後にパケット区切り文字を含めて、受信側がパケットの終了場所を認識できるようにする必要があります (現在は 0x0D を使用)。ただし、RC2 暗号化はペイロードのどこかに 0x0D を作成することになり、受信側でパケットが完了したと解釈されます。この切り捨てられたパケットを復号化しようとすると、失敗します。
この種のことが通常どのように処理されるかについてのアドバイスはありますか? それとも、区切り文字として使用できる、RC2 暗号化で生成されないことが知られている文字だけでしょうか?
c# - Asp.Net での 20 バイト キーによる RC2 暗号化
Asp.Net サイトで RC2 暗号化/復号化を実装する必要がありました。他のシステムと安全に共有する必要があるデータがいくつかあり、これはすでに使用されている暗号化方法です。私はこれに対してさまざまなアプローチを試みましたが、すべての実装にはデフォルトのキーの長さがあり、アルゴリズムで可変のキーの長さが許可されていても変更できません ( http://en.wikipedia.org/wiki/RC2 )。
私の分析で何かを見落としていないか、または推奨できるより良いオプションがあるかどうかを調べています.
.Net アプローチ
私の最初のアプローチは、.NET RC2CryptoServiceProvider を試して使用することでした。キーの長さが制限されているため、これは機能しません。
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rc2.keysize.aspx
「このアルゴリズムは、8 ビット単位で 40 ビットから 1024 ビットまでのキーの長さをサポートしますが、RC2CryptoServiceProvider 実装は、8 ビット単位で 40 ビットから 128 ビットまでのキー長のみをサポートします。」
OpenSSL.Net アプローチ
使ってみたOpenSSLの.NETラッパーがあります。http://sourceforge.net/projects/openssl-net/
正常に機能しましたが、デフォルトの暗号化機能のみをサポートしているように見え、私が見つけたキーの長さを変更する方法はありません.
OpenSSL を直接呼び出す
また、プロセスを作成して出力を取得することにより、コマンドラインから OpenSSL を呼び出してみました。組み込み関数が可変キー長を許可しないという同じ問題に遭遇しました。
http://www.openssl.org/docs/apps/enc.html
enc プログラムは、特定のパラメーターを持つ一定数のアルゴリズムのみをサポートします。したがって、たとえば、76 ビット キーで RC2 を使用したい場合、または 84 ビット キーで RC4 を使用したい場合、このプログラムは使用できません。
node.js - Node.JS RC2-CBC の暗号化と復号化の暗号が C# と一致しない
キーと IV を使用した RSC2-cbc アルゴリズムを使用して、C# で実装された既存の暗号化および復号化ログインがあります。今度は、node.js に同じものを実装します。したがって、暗号化および復号化するために次のコードを記述しました。私が直面している問題は、node.js の暗号化された文字列 (chiper) または復号化された文字列が C# の encryptrd 文字列と一致しないことです。
既存の C# コード
同等/翻訳された node.js コード
android - Android RC2 暗号化
かなり古い Web サービス用の Android クライアントの作成に取り組んでいます。Web サービスでは、送信するデータの一部を RC2 スタイルで暗号化する必要があります。RC2 実装を利用できるようにするために、何か (Cipher、KeyFactory、KeyGenerator など) を取得するのに問題があります。
私は Web サービスを変更できないので、RC2 暗号化に固執しています (私はそれが古く、あまり好まれていないことを知っています)。
Java/Android ライブラリで使用できる実装はありますか? 組み込みのコンポーネントを使用したいのですが、必要に応じてサードパーティのライブラリを使用したいと考えています。
c# - RC2CryptoServiceProvider .NET アルゴリズムとノード js rc2 アルゴリズムの違い
.NET の RC2CryptoServiceProvider は OpenSSL に準拠していますか。CBC で RC2CryptoServiceProvider を使用していますが、同じテキストの暗号化された値 (同じキーと初期ベクトルを使用) は、nodejs 暗号ライブラリの rc2-cbc が生成するものとは異なります。Node js 暗号ライブラリは OpenSSL に準拠しています。
誰かがこの不一致について既に質問していましたが、まだ回答がありません - Node.JS RC2-CBC 暗号化と復号化の暗号が C# と一致しません
RC2CryptoServiceProvider の完全なソース コードを教えてもらえますか? 暗号化/復号化コードは、C# で利用できる完全に管理されたものですか、それともその下で C++ を使用していますか?
ノードjsで.NETアプリケーションの暗号化された文字列を解読する方法を探しているので、違いを見つけることに興味があります。
以下は、C# コードと対応するノード js コードです。同じデータ (HelloWorld)、キー、および iv に対して、生成される暗号化された値は異なります。
以下は、ノードの js コードです。
encryption - Cryptography.RC2 による不正なデータ
入力を暗号化および復号化する特別な作業の進行状況があります。突然、昨日、解読できなかった暗号化された文字列がありました。
私の暗号に関する知識は、この問題を解決するのに十分ではないようです。
コード:
この作業の進行状況は数か月間続きます。入力でテストできます
MIAU::__*?
あなたが得る
砿첩뜞ꦽ嶾蝡泛ɝࠪ塤偏ꍨ</p>
それを復号化すると、再び得られます
MIAU::__*?
しかし、暗号化された文字列 "鈦ꧪ㧘聯ꢮ玗硴廜᭮⸂濅�" はエラーをスローします: (もちろん、同じキーと iv を使用しました)