0

コードサイズが制限された組み込みデバイス (E) があります。UART (USB、シリアルなど) を使用してホスト プロセッサ (H) と通信します。組み込みデバイスの機能をロック解除するには、ホスト プロセッサの簡単な認証を実装する必要があります。

重要な問題は、USB/シリアル/UART が傍受される可能性があるため、チャネルが安全ではないことです。

使用方法は次のとおりです。製造中に、キー Ke と Kh のペアを生成します。E は Ke を格納 E は N ランダム バイト R を生成し、キー Ke を使用して R をシークレット S に暗号化し、H に送信します。H は Kh を使用して S を暗号化して R を明らかにする必要があります。

そう、

S = u(R, Ke)
R = v(S, Kh)

u()とは暗号v()化関数です (それは かもしれませんがu = vu小さなコード空間を使用する組み込みデバイスに簡単に実装できる必要があります)。

異なるユーザーにそれらを与えるために、同じ Ke に対して多くの Kh を持つことを可能にする alog を見つけることは、さらに良いことです。ただし、これはオプションです。

前述のように、チャネルは安全ではないため、R と S だけから Ke または Kh (または S から R を生成する方法) を明らかにする (USB スニファーを使用して) USB に座っている悪者を望んでいません。

したがって、XOR は機能しません ;)

何か提案してください

4

3 に答える 3

0

これを何回行う必要があり、K_h と K_e はペアごとに一意ですか? これを行う最も簡単な方法は、デバイスとホストの両方で (製造中に) ランダムな事前共有シークレットを生成し、これをワンタイム パッドとして使用することです。

ワンタイム パッドの基本的な考え方は、メッセージを受け取って、XOR でシークレットを使用することです。あなたの秘密があなたのメッセージと同じくらい長く、これを一度だけ行う限り、あなたは大丈夫です. あなたのチャンネルを盗聴している人は、秘密が何であるかも知らないため、メッセージが何であるかを理解できないはずです. もちろん、復号化された応答を送信すると、誰かがチャネルを盗聴してすべてを復号化できます。

于 2012-10-16T08:23:03.110 に答える
0

お使いのデバイスは、軽量の暗号化アルゴリズム (RC5 など) を使用して、プロセッサにナンスを与え、暗号化されたナンスとして応答を確認できますか? これは、デバイスとプロセッサの間に安全なチャネルを確立するのにも役立ちます。たとえば、答えは ですRC5_CBC( CONCAT(key_for_secure_channel, nonce) )。注: nonce は最後に記述する必要があるため、新しいキーの整合性はそれらによって検証されます。

于 2012-10-15T06:19:56.593 に答える