センサートラフィックを暗号化することのパワーの意味は何ですか?


13

一般的なタイプのアプリケーション、10分ごとに読み取り値(32ビット値)を取得するバッテリー駆動センサーを考えると、暗号化された送信と比較して、単純な非暗号化オンエアプロトコルを選択した場合、バッテリー寿命にどのような影響がありますか?

私のデータは特に秘密ではないと仮定しますが、この質問によれば、実際に大きな設計コストがない限り、おそらく暗号化を検討する必要があります。

簡単にするために、BLEスタックとより単純な2.4 GHzプロトコルもサポートするnRF51822 SoCを使用していると仮定します。

私は一回限りのインストールではなく商用製品アプリケーションを考えているので、暗号化は単純な難読化ではなく、解読するために計算集中型である必要があります(2016年のクラウドコンピューティングの少なくとも500ドルなど)。デバイスのファームウェアにアクセスしても安全なもの。


2
「デバイスのファームウェアにアクセスしても安全に保たれるもの。」これは、逆に計算コストが高い非対称暗号を使用する必要があるか、対称キーを取得または回復することができない場所に対称キーを保存する必要があることを意味します(既知のプレーンテキスト攻撃など)。通常、後者の場合、製品の各コピーには一意のキーがあり、1つのサンプルからのリカバリがシステム全体を破壊することはありません。しかし、これは、受信者がこれらすべてのキーを保存する必要があることを意味します。
クリスストラットン

回答:


8

電力の大部分は、暗号化ルーチンで費やされるCPUサイクルではなく、RF送信に費やされる可能性があります。送信されるすべての追加ビットは、提案している暗号化よりも多くの電力を消費します。つまり、CBCモードでAESを使用するなど、素朴なアプローチをとる場合、各ブロックで余分なビットを運ぶためにメッセージサイズを増やす危険があります。

ビジネスでデータを暗号化する必要があると判断した場合、CTRモードでAESを使用してストリーム暗号ビットを生成することを検討してください。カウンタモードは、受信が信頼できず、パケットが失われる可能性がある場合に対処するのに実用的です。カウンタの同期を維持する必要があるため、カウンタの値を定期的に送信するとオーバーヘッドが増加することに注意してください。また、暗号化されたビットストリームを再利用するとデータを直接回復できるため、カウンターを保持するために数バイトの状態を予約する必要があります。


説得力があるように思われ、この問題についてはかなり違った見方をしていますが、今回はあまり考えていませんでした。
ショーンフーリハネ

2
CTRはデータの信頼性を提供しないことに注意してください。アプリケーションで信頼性が問題にならない理由を理解していない限り、認証された暗号化モードを使用する必要があります。
ジル 'SO-悪であるのをやめる'

10

トラフィックを保護するために使用できるさまざまな暗号化方式があり、それぞれの電力使用量がわずかに異なるため、いくつかの一般的な選択肢を選択します。私が各方法を評価するために使用する方法論は、あなたが見つけて比較したい他の暗号にも適用できるはずです。

AES

AESは、最も一般的な対称キー暗号化アルゴリズムの1つです(つまり、同じキーを使用して暗号化と復号化を行います)。セキュリティの観点から、AESは安全な賭けです。

最高の公開暗号解読

2013年時点で計算上実行可能なものはありませんが、完全な総当たり攻撃よりも計算上高速な攻撃が公開されています。

- ウィキペディア

完全なAESのBiclique暗号解読の論文では、AES-128には2 126.1の操作が必要であり、AES-192には2 189.7の操作が必要であり、AES-256には2 254.4の操作が必要です。2.9 GHzプロセッサーでは、各「操作」が1 CPUサイクル(おそらく正しくない)であると仮定すると、AES-128の破壊には非常に長い時間がかかります。それらの10000が実行されても、それはほぼ永遠にかかります。したがって、ここではセキュリティは問題になりません。パワーの側面を考えてみましょう。

このホワイトペーパーでは、ブロックをAESで暗号化するときに351 pJが使用されることを示しています(15ページ)。他の一般的なアルゴリズムについて説明した後、これを少し比較します。

サイモン

以前にSIMONとSPECKについて質問しましたが、読む価値はあります。SIMONが優れているのは、頻繁に少量のデータを暗号化する必要がある場合です。先ほどリンクした論文では、SIMON 64/96は64ビットに213pJを使用すると述べています。これは、32ビットのペイロードのみを送信する必要がある場合に実用的です。

ただし、SIMON 64/96はAESよりも簡単に壊れます。私がリンクした論文は、2 63.9の操作を示唆しているため、数千万とは対照的に、10000 CPUのセットアップでわずか数年で暗号化破ることができました。

それは本当に重要ですか?

送信する予定のレートでは、答えはほぼ確実に「いいえ」です。暗号化によるエネルギー使用量は完全に無視できます。AESの場合、1日あたり50 544 pJを使用するため、エネルギーが2340 Jの安価な炭素亜鉛単3電池、デバイスの寿命をはるかに超えて持続します。SIMONを使用して計算を再評価すると、寿命非常に長いことがわかります。

要するに、非常に頻繁に送信するのでない限り、無線は電力をはるかに懸念します。ウィキペディアはあなたが送信した場合、0.01〜0.5 Wとして、電力使用量を引用0.01 Wで1秒AESは終日にわたりたよりすでに多くの電力を使用しました

ただし、BLEの場合は、おそらくデフォルトのセキュリティに頼るだけで問題ありません。BLEは、リンク層セキュリティのためにデフォルトでAES-CCMを使用します

低エネルギーのBluetoothでの暗号化には、AES-CCM暗号化が使用されます。BR / EDRと同様に、LEコントローラーは暗号化機能を実行します。この関数は、FIPS-1971で定義されているAES-128ビットブロック暗号を使用して、128ビットキーと128ビットのplaintextDataから128ビットのencryptedDataを生成します。

ただし、BLEのリンク層セキュリティの実装にはセキュリティ上の欠陥があるという懸念があります。これはAESの欠陥ではありません。むしろ、Bluetooth SIGは4.0および4.1で独自のキー交換メカニズムを導入することを決定しました。この問題は、楕円曲線Hellman-Diffieがサポートされるようになり、4.2で解決されました。


1
「各「操作」が1 CPUサイクルであると仮定した場合の2.9 GHzプロセッサー(おそらく事実ではない)」-おそらく低速で実行されているが、サイクルごとに複数の結果を生成する並列プロセッサー(GPUなど)によって補正されます(CPU IIRCでも可能です)シングルコアで1クロックに近い動作を達成する]。それは大きさのオーダーをあまり変えません。
マチェイピエチョトカ

@MaciejPiechotkaそれは良い点です。あなたが示唆するように、大きさの順序はあまり影響を受けてはならず、私たちが取り組んでいるスケールでは、10の係数はまだかなり重要ではありません(10 ^ 33日対10 ^ 32日は重要ではありませんひどい!)
Aurora0001

1
AESのような対称システムは、各デバイスに固有のキーがない限り問題があります。さもなければ、1つの切り出されたサンプルからそれを取り出すだけでシステム全体が破損します。
クリスストラットン

4

ハードウェアアクセラレーションによる暗号化を行っていない限り、基本的な(暗号化ではない)ニーズに対応するプロセッサが必要以上に強力になるため、電力コストが高くなる可能性があります。ただし、ほとんどの場合、とにかく最も電力を消費するのは無線の使用です。

特にBluetooth SOCを探しているので、チップ上にハードウェアアクセラレーションされた暗号化機能を備えたBGM-111を検討してください。私はこのチップを使ってプレイしましたが、暗号機能については特に見ていませんが、良いようです。

別のルート、場合によってはデバイスを分解したとしても誰もキーを取得できないようにする場合は「最適な」ルート。LinuxカーネルでサポートされているI2CおよびSPI TPMチップを備えたOPTIGA TPMなどのTPMチップを含めること。

要するに、特定のハードウェア暗号化なしでバッテリーを燃やします。TPMチップを搭載したボードを構築するか、ハードウェアクリプトが既に組み込まれている最新のSoCを選択します。


2
この質問は、2.5GHz SoCであり、10分ごとに32ビット値を送信することを示唆しています。暗号化に必要な計算量はまったく無視できます。確かに、そのSoCはタスクに対して圧倒されているようです。しかし、10分ごとに32ビットでは、最も安価なベースプロセッサで十分です。
ジル 'SO-悪であるのをやめる'

3
10分間隔で、暗号化にかかる時間は関係なく、エネルギー量だけが重要です。寄生負荷などの実装の詳細を見て、1ミリ秒でそれを行う高速チップまたは500ミリ秒かかる低速チップが消費電力で勝つかどうかを判断する必要があります。ハードウェアエンジンはソフトウェアよりも優れている可能性がありますが、エネルギー効率のためには、ジョブをより速く処理することは無関係です。
クリスストラットン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.