센서 트래픽을 암호화하면 어떤 영향이 있습니까?


13

일반적인 유형의 응용 프로그램을 고려할 때 10 분마다 판독 값 (32 비트 값)을 취하는 배터리 전원 센서는 암호화 된 전송과 비교하여 암호화되지 않은 간단한 온에어 프로토콜을 선택하면 배터리 수명에 어떤 영향을 미칩니 까?

내 데이터가 특히 비밀이 아니라고 가정하지만 이 질문 에 따르면 실제로 상당한 디자인 비용이 없다면 데이터 암호화를 고려해야합니다.

간단히하기 위해 BLE 스택과 더 간단한 2.4GHz 프로토콜을 지원하는 nRF51822 SoC를 사용한다고 가정하겠습니다 .

일회성 설치가 아닌 상업용 제품 응용 프로그램을 생각하고 있기 때문에 간단한 난독 처리가 아닌 암호화를 깨 뜨리려면 컴퓨팅 집약적이어야합니다 (예 : 2016 년 클라우드 컴퓨팅의 500 달러 이상). 장치 펌웨어에 액세스해도 보안이 유지됩니다.


2
"장치 펌웨어에 액세스하더라도 보안이 유지되는 것입니다." 즉, 계산 비용이 비대칭 인 비대칭 암호화를 사용해야하거나 복구 할 수없는 대칭 키를 저장해야합니다 (일반 텍스트 공격 등). 후자의 경우 일반적으로 제품의 각 사본에는 고유 한 키가 있으므로 한 샘플에서 복구해도 전체 시스템이 손상되지 않습니다. 그러나 이것은 수신기가 모든 키를 저장해야 함을 의미합니다.
Chris Stratton

답변:


8

암호화 루틴에서 소비되는 CPU주기가 아니라 RF 전송에 전력이 많이 소비 될 수 있습니다. 전송되는 모든 추가 비트는 제안하는 암호화보다 더 많은 전력을 소비합니다. 즉, CBC 모드에서 AES를 사용하는 것과 같이 순진한 접근 방식을 취하면 각 블록에서 추가 비트를 전달하기 위해 메시지 크기를 늘릴 위험이 있습니다.

비즈니스에서 데이터를 암호화해야한다고 판단되면 CTR 모드 에서 AES를 사용하여 스트림 사이퍼 비트를 생성하십시오. 카운터 모드는 수신을 신뢰할 수없고 패킷이 손실 될 수있는 경우를 처리하는 데 유용합니다. 카운터를 동기화 된 상태로 유지해야하므로 주기적으로 카운터 값을 전송하면 오버 헤드가 발생합니다. 또한 암호화 된 비트 스트림을 재사용하면 데이터를 직접 복구 할 수 있으므로 카운터를 유지하기 위해 몇 바이트의 상태를 예약해야합니다.


설득력있게 들리며 문제에 대해 상당히 다른 스핀을 사용합니다. 이번에는 너무 많이 생각하지 않았습니다.
Sean Houlihane 2012 년

2
CTR은 데이터 신뢰성을 제공하지 않습니다. 인증이 응용 프로그램에서 문제가되지 않는 이유를 이해하지 않으면 인증 된 암호화 모드를 사용해야합니다 .
Gilles 'SO- 악마 그만'

10

트래픽을 보호하기 위해 사용할 수있는 다양한 암호화 방법이 있으며 각각 약간 씩 다른 전력 사용량이 있으므로 몇 가지 인기있는 선택을 선택하겠습니다. 각 방법을 평가하는 데 사용하는 방법은 찾고자하는 다른 암호에 적용 할 수 있어야합니다.

AES

AES 는 가장 널리 사용되는 대칭 키 암호화 알고리즘 중 하나입니다 (즉, 동일한 키를 사용하여 암호화 및 암호 해독). 보안 측면에서 AES는 안전한 방법입니다.

최고의 공개 암호화 분석

2013 년 현재 계산 가능한 것은 아니지만 전체 무차별 대입 공격보다 계산 속도가 빠른 공격이 게시되었습니다.

- 위키 백과

Full AES의 Biclique Cryptanalysis 논문 은 AES-128에 2 개의 126.1 작업이 필요 하고 AES-192에 2 개의 189.7 작업이 필요 하며 AES-256에 2 개의 254.4 작업이 필요하다고 설명합니다 . 2.9GHz 프로세서에서 각 '작동'이 1 CPU주기 (아마도 사실이 아님)라고 가정하면 AES-128을 끊는 데 시간이 오래 걸립니다 . 10,000 개가 실행 중이지만 여전히 거의 영원히 걸릴 입니다. 따라서 여기서 보안은 문제가되지 않습니다. 힘 측면을 고려해 봅시다.

이 백서 는 AES로 블록을 암호화 할 때 351 pJ가 사용되었음을 보여줍니다 (15 페이지). 다른 일반적인 알고리즘에 대해 이야기 한 후에 이것을 나중에 비교하겠습니다.

사이먼

나는 이전 에 SIMON과 SPECK 에 대해 질문 했는데, 읽을 가치가 있습니다. SIMON이 탁월한 곳은 자주 약간의 데이터 를 암호화해야하는 상황에 있습니다 . 이전에 링크 한 논문은 SIMON 64/96이 64 비트에 213 pJ를 사용한다고 명시하고 있는데 이는 32 비트 페이로드 만 보내면된다.

SIMON 64/96은 AES보다 훨씬 쉽게 깨집니다 . 필자가 링크 한 백서는 2 63.9 개의 작업을 제안 하므로 10,000 개의 CPU 설정 수백만 이 아닌 몇 년 만에 암호화 해독 할 수 있습니다.

정말 문제가 되나요?

전송하려는 속도로 대답은 거의 없습니다 . 암호화의 에너지 사용은 전적으로 무시할 수 있습니다. AES의 경우 하루에 50 544pJ를 사용 하므로 2340J 의 에너지를 가진 저렴한 탄소-아연 AA 배터리 는 장치 수명보다 훨씬 오래 지속 됩니다. SIMON으로 계산을 다시 평가하면 수명 매우 길다 것을 알 수 있습니다

요컨대, 매우 자주 전송하지 않는 한 라디오는 전력에 훨씬 더 관심이 있습니다. Wikipedia 는 0.01 ~ 0.5W 사이의 전력 사용량을 인용합니다. 0.01W에서 1 초 동안 전송하는 경우 , 하루 종일 AES보다 많은 전력을 사용했습니다 .

그러나 BLE의 경우 기본 보안에 의존하는 것이 좋습니다. BLE는 링크 계층 보안을 위해 기본적으로 AES-CCM을 사용합니다 .

에너지가 적은 Bluetooth 암호화는 AES-CCM 암호화를 사용합니다. BR / EDR과 마찬가지로 LE 컨트롤러는 암호화 기능을 수행합니다. 이 기능은 FIPS-1971에 정의 된대로 AES-128 비트 블록 사이퍼를 사용하여 128 비트 키 및 128 비트 일반 텍스트 데이터에서 128 비트 encryptedData를 생성합니다.

몇 가지 우려 링크 계층 보안 불구의 BLE의 구현에 보안 결함이 있음은; 이것은 AES의 결함이 아닙니다. 오히려 Bluetooth SIG는 4.0과 4.1에서 자체 키 교환 메커니즘을 도입하기로 결정했습니다 . Elliptical Curve Hellman-Diffie가 지원되므로이 문제는 4.2에서 해결되었습니다.


1
"각 '작업'이 1 CPU주기라고 가정하면 (2.9GHz 프로세서에서 (아마도 사실이 아님))-아마도 속도가 느리게 실행되지만주기 당 여러 결과를 생성하는 병렬 프로세서 (GPU와 같은)에 의해 보상 될 수 있습니다. 심지어 CPU IIRC에서도 단일 코어에서 거의 1 번의 작동 / 클럭 달성]. 그것은 차수를 너무 많이 바꾸지 않습니다.
Maciej Piechotka

@MaciejPiechotka 좋은 지적입니다. 당신이 제안했듯이, 규모의 순서는 그다지 영향을받지 않아야하며 우리가 작업하는 규모에서 10의 요소는 여전히 중요하지 않습니다 (10 ^ 33 일 대 10 ^ 32 일은 중요하지 않습니다. 끔찍한!).
Aurora0001

1
각 장치에 고유 한 키가 없으면 AES와 같은 대칭 시스템이 문제가됩니다.
Chris Stratton

4

하드웨어 가속 암호화를 수행하지 않는 한 기본 (암호화 아님) 요구에 따라 본질적으로 과도하게 작동하는 프로세서를 사용하면 전력 비용이 높아질 수 있습니다. 그러나 대부분의 경우 어쨌든 가장 많은 전력을 소비하는 것은 라디오를 사용하는 것입니다.

블루투스 SOC를 구체적으로 살펴보고 있으므로 칩에 하드웨어 가속 암호화 기능이 있는 BGM-111을 고려하십시오 . 나는이 칩을 가지고 놀았지만 암호 기능을 구체적으로 보지 않았지만 좋아 보인다.

키가 장치를 분해하더라도 아무도 키를 얻을 수 없도록하려면 다른 경로 및 '최상의'경로. 여기에는 OPTIGA TPM 과 같은 TPM 칩이 포함 되며 Linux 커널에서 지원하는 I2C 및 SPI TPM 칩이 있습니다.

간단히 말해, 특정 하드웨어 암호화없이 배터리를 사용하여 화상을 입을 수 있습니다. TPM 칩으로 보드를 만들거나 하드웨어 암호화가 이미 내장 된 최신 SoC를 선택하십시오.


2
이 질문은 2.5GHz SoC를 제안하고 10 분마다 32 비트 값을 전송합니다. 암호화에 필요한 계산량은 거의 무시할 수 있습니다. 물론, SoC는 그 작업에 대해 압도적 인 것처럼 보입니다. 그러나 10 분마다 32 비트의 경우 가장 저렴한 기본 프로세서로 충분합니다.
Gilles 'SO- 악마 그만해'

3
10 분 간격 으로 암호화하는 데 걸리는 시간 은 중요하지 않으며 에너지의 양만 중요합니다 . 1ms 내에 빠른 칩 또는 500ms가 걸리는 느린 칩이 바쁘지 않을 때 효과적으로 슬립 상태를 유지한다고 가정하면 기생 부하와 같은 구현 세부 사항을 살펴보아야합니다. 하드웨어 엔진은 소프트웨어보다 훨씬 나을 수 있지만 에너지 효율성을 위해 작업 속도를 높이는 것은 중요하지 않습니다.
Chris Stratton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.