IoT/QR/전자태그용 저용량 메시지 데이터 암호화 적용을 위한 새로운 방식의 스트림 경량 암호화 알고리즘 모티브 제안 A new type of lightweight stream encryption algorithm motif for applying low capacity messaging data encryption for IoT / QR / electronic tags원문보기
최근 IoT 기술의 확산이 본격화 되면서, 홈/가전/의료등 전 산업 분야에 적용되고 있는데, IoT의 저 사양, 저 전력 소모 특성과 통신 데이터 특성으로 인하여, 기존 암호화 알고리즘의 적용이 용이하지 않으며, 따라서 보안 위협에 대한 우려가 커지고 있다. 이에 대응하여 본 연구에서는, 기존의 고정비트에 대한 XOR연산을 이용한 스트림 암호화 방식에 비하여, 해당 기준 비트에서 상위 방향의 비트 패턴에 따라 불규칙적으로 결정되는 특정한 바이너리 클러스터를 기준으로 암호 키 값에 따라 자리내림, 자리올림 방식을 이용하여, 비트 값에 변화를 주는 일종의 가변 길이 비트 XOR연산 방식을 도입하여 암호화 및 복호화가 진행될 수 있음을 처음으로 제시하였다. 제안 알고리즘의 특징상 암호화 전후의 데이터 크기 변화가 없고, IoT 디바이스/QR코드/RFID/NFC가 빈번히 처리하는 짧은 메시지 데이터에 대해서도 암호화하는 실용성을 확인하였다.
최근 IoT 기술의 확산이 본격화 되면서, 홈/가전/의료등 전 산업 분야에 적용되고 있는데, IoT의 저 사양, 저 전력 소모 특성과 통신 데이터 특성으로 인하여, 기존 암호화 알고리즘의 적용이 용이하지 않으며, 따라서 보안 위협에 대한 우려가 커지고 있다. 이에 대응하여 본 연구에서는, 기존의 고정비트에 대한 XOR연산을 이용한 스트림 암호화 방식에 비하여, 해당 기준 비트에서 상위 방향의 비트 패턴에 따라 불규칙적으로 결정되는 특정한 바이너리 클러스터를 기준으로 암호 키 값에 따라 자리내림, 자리올림 방식을 이용하여, 비트 값에 변화를 주는 일종의 가변 길이 비트 XOR연산 방식을 도입하여 암호화 및 복호화가 진행될 수 있음을 처음으로 제시하였다. 제안 알고리즘의 특징상 암호화 전후의 데이터 크기 변화가 없고, IoT 디바이스/QR코드/RFID/NFC가 빈번히 처리하는 짧은 메시지 데이터에 대해서도 암호화하는 실용성을 확인하였다.
Recently, the spread of IoT technology has been spreading, and it has been applied to all industrial fields such as home / home appliance / medical care. Due to the low specification, low power consumption characteristic and communication data characteristic of IoT, implementation of existing algori...
Recently, the spread of IoT technology has been spreading, and it has been applied to all industrial fields such as home / home appliance / medical care. Due to the low specification, low power consumption characteristic and communication data characteristic of IoT, implementation of existing algorithm is difficult thing. From this reason, we have proposed for the first time that encryption and decryption can be proceeded by introducing a kind of variable length bit XOR operation method which changes a variable the bit length value by using carry up and carry down method. We confirmed the practicality of encrypting short message data frequently processed by IoT device / QR code / RFID / NFC without changing the size of data before and after encryption.
Recently, the spread of IoT technology has been spreading, and it has been applied to all industrial fields such as home / home appliance / medical care. Due to the low specification, low power consumption characteristic and communication data characteristic of IoT, implementation of existing algorithm is difficult thing. From this reason, we have proposed for the first time that encryption and decryption can be proceeded by introducing a kind of variable length bit XOR operation method which changes a variable the bit length value by using carry up and carry down method. We confirmed the practicality of encrypting short message data frequently processed by IoT device / QR code / RFID / NFC without changing the size of data before and after encryption.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
이에 본 논문에서는 간단하고 단순한 연산만을 활용한 암호화 기술을 연구하였고, 바이너리 클러스터라는 가변적 비트수를 가진 이진수 박스에 대하여 자리올림/내리내림 연산을 통한 일종의 가변적인 XOR 블록을 이용한 스트림 암호화 방식을 제안하였다. 특히 스트림 암호화에서는 스트림 키의 예측 불가성이 매우 중요한 요소로 여기지고 있는데[3], 본 연구 논문은 스트림 키 이외에, 키 스트림을 이용하여 실제 평문을 암호화 과정에 있어서 바이너리 클러스터 기반의 자리올림, 자리내림 방식이라는 가변적인 XOR 방식을 새롭게 제안하여 기존 스트림 암호화에 있어서 보안성을 높일 수 있는 방법을 제시하였고, 특히 평문과 암호문의 크기가 변화하지 않아서 암호 특성상 암호문의 길이가 길 경우 기존 IoT device가 미리 고려한 정보량 특성을 넘쳐서 data overflow가 발생할 우려가 없을 것으로 기대된다.
이에 본 논문에서는 간단하고 단순한 연산만을 활용한 암호화 기술을 연구하였고, 바이너리 클러스터라는 가변적 비트수를 가진 이진수 박스에 대하여 자리올림/내리내림 연산을 통한 일종의 가변적인 XOR 블록을 이용한 스트림 암호화 방식을 제안하였다. 특히 스트림 암호화에서는 스트림 키의 예측 불가성이 매우 중요한 요소로 여기지고 있는데[3], 본 연구 논문은 스트림 키 이외에, 키 스트림을 이용하여 실제 평문을 암호화 과정에 있어서 바이너리 클러스터 기반의 자리올림, 자리내림 방식이라는 가변적인 XOR 방식을 새롭게 제안하여 기존 스트림 암호화에 있어서 보안성을 높일 수 있는 방법을 제시하였고, 특히 평문과 암호문의 크기가 변화하지 않아서 암호 특성상 암호문의 길이가 길 경우 기존 IoT device가 미리 고려한 정보량 특성을 넘쳐서 data overflow가 발생할 우려가 없을 것으로 기대된다.
제안 방법
이와 같은 선행 연구를 참고하여, 본 연구에서는 새롭게 제안된 암호화 알고리즘의 암호화 및 복호화가 완전하게 수행되는지를 확인하는 방법으로서 MKT(몬테카를로 검사)를 활용하였다. 먼저 임의의 16,438 개의 고정길이 평문에 동일 패스워드에 대해 동일한 캐리포인터 이동 수를 적용하여 암/복호화가 완벽히 재연되는지 확인하였고, 두 번째로, 44192개의 다양한 길이와 내용을 가진 원문 텍스트에 대해 다양한 암호 키와 다양한 캐리포인터 이동수를 적용하여 암호화 하였다가 다시 복호화 하는 과정을 통해 그 결과 값이 완전히 일치하는지를 확인하는 방식으로 알고리즘을 테스트 하였다.
본 알고리즘의 암호화/복호화의 처리속도 성능평가는 Intel CORE i7-6500U CPU(2.5Ghz), 8GB RAM, SSD 시스템, 64bit Windows 7에서 진행하였으며, Visual Studio 2015 C#으로 개발, 컴파일(Compile)한 알고리즘을 이용하여 성능을 테스트 하였다.
암호화 키는 일정길이를 가진 이진수 비트열 인데, 본 연구에서는 캐리 포인터가 이동할 때 마다 암호화 키 포인터도 특정한 규칙에 따라 이동시키면서 해당 암호 키 포인터가 가리키고 있는 비트값에 따라 자리내림 연산 또는 캐리 업 연산을 수행하도록 하였다. 본 연구에서는 간명하게, 캐리포인터 이동시마다 1비트씩 상위로 암호 키 포인터를 이동시켰고, 암호 키 포인터가 암호 키의 최 상위 비트에 도달 시 역시 순환하여 다시 암호 키의 최하위 비트를 가리키도록 하였으며, 캐리포인터 이동수가 설정된 값에 도달하면 그때 정확히 어떠한 비트 열을 가리키고 있는지를 알려주는 것이 암호 키 포인터 수이다. 이 값은 복호화에 있어 정확히 복호화 하기 위한 대단히 중요한 값이 된다.
복호화 시에도 이 캐리 포인터 이동수를 정확히 알고 있어야 완벽히 복호화가 된다. 본 연구에서는 개발의 간소화를 위해 캐리 포인터 이동수를 평문의 비트 수 길이의 2배, 3배, 4배등으로 하였으나, 후술하겠으나 암호의 안전성 검증을 위해서 다양한 임의(random)의 수로 수행하였다.
본 연구에서는 기존의 스트림 암호화 알고리즘에서 주로 쓰이는 고정 비트에 대한 XOR연산 방식[3]과 달리 , 해당 기준 비트에서 상위 방향의 비트 패턴에 따라 불규칙적으로 결정되는 특정한 바이너리 클러스터를 기준으로 암호 키 값에 따라 자리내림, 자리올림 방식을 이용하여 비트 값에 변화를 주는 일종의 가변길이에 대한 XOR연산을 통해서도 암호화 및 복호화가 진행될 수 있음을 처음으로 제시하였으며, 특정 비트 위치에서의 비트 패턴 뿐만 아니라, 암호화가 일어나는 범위가 달라지는 패턴과 범위라는 두 가지 불규칙성을 추가로스트림 암호화 알고리즘에 부여할 수 있게 되었다.
본 연구에서는 상기와 같은 암호화 알고리즘을 Visual Studio Community 2015를 이용하여 Visual C# 으로 실제구현 하여 암호화 및 복호화를 수행하여 암호알고리즘의 알고리즘으로서의 가능성을 테스트 하였다.
본 연구에서는 암호 키를 연구의 간소화를 위해 string type으로 지정하였고 이를 내부적으로는 각 string 문자를 구성하는 Ascii 코드의 이진화된 형태를 각 password 열의 비트로 활용하였다. 즉 8글자의 문자는 8*8=64비트의 암호 키 비트 열을 구성하는데, 바람직하게는 Password key에 대하여 별도로 암호화를 커지거나 Hash code로 변환하여 이를 본 연구의 암호 키로 활용하는 것이 보안성을 높일 것으로 기대된다.
본 제안 알고리즘은 평문, CPM으로 정의된 캐리포인터 이동 수, 암호 키라는 3가지 input을 투입하여 구현된다. 캐리 포인터 이동수가 클수록 암호화는 중첩적으로 이루어져 보안성이 높아질 수 있으며, 암호 키의 길이는 무제한이므로 암호화 목적에 맞추어 입력한다.
상기 자리내림, 자리올림 연산을 이용하여, 그림 4 과 같이 암호 키의 값에 따라 평문을 자리내림 또는 자리올림 연산 중에 하나를 선택하는 형태로 암호화를 수행할 수 있는데, 복호화 시에도 암호화 키 값에 따라 암호문에 대하여 암호화시의 반대방향으로 복호화를 수행하는 원리를 이용하는 것이 본 연구에서 제안하는 암호화의 기본 원리이다. “100011” 이라는 이진수에 대하여, 최하위 비트에 캐리 포인터가 위치한 상태에서, 암호 키가 “1”인 경우, 암호화 시에는 자리올림 연산을 수행하여 “100100”으로 암호화하고, 복호화 시에는 암호 키 “1”을 이용하여 자리내림 연산을 수행하여 암호문에서 “100011” 평문으로 복호화한다.
암호화 키는 일정길이를 가진 이진수 비트열 인데, 본 연구에서는 캐리 포인터가 이동할 때 마다 암호화 키 포인터도 특정한 규칙에 따라 이동시키면서 해당 암호 키 포인터가 가리키고 있는 비트값에 따라 자리내림 연산 또는 캐리 업 연산을 수행하도록 하였다. 본 연구에서는 간명하게, 캐리포인터 이동시마다 1비트씩 상위로 암호 키 포인터를 이동시켰고, 암호 키 포인터가 암호 키의 최 상위 비트에 도달 시 역시 순환하여 다시 암호 키의 최하위 비트를 가리키도록 하였으며, 캐리포인터 이동수가 설정된 값에 도달하면 그때 정확히 어떠한 비트 열을 가리키고 있는지를 알려주는 것이 암호 키 포인터 수이다.
이론/모형
FPGA(Field Programmable Gate Array)로 LEA(Lightweight Encryption Algorithm) 경량암호화 알고리즘을 구현한 경우 성능 검증을 위해 평문을 암호문으로 바꾸고 이를 다시 평문으로 복원하는 과정을 통해 검증[4]을 하는 방식을 활용하였다. 이와 같은 선행 연구를 참고하여, 본 연구에서는 새롭게 제안된 암호화 알고리즘의 암호화 및 복호화가 완전하게 수행되는지를 확인하는 방법으로서 MKT(몬테카를로 검사)를 활용하였다.
이러한 데이터는 그 특징상 길이가 짧고, 암호화할 경우 더 크기가 커지며, 따라서 암호문의 크기가 정보저장 한계를 넘어서는 경우가 있기 때문에, 기존 암호화 알고리즘을 적용하기가 용이하지 않으며, 저사양성으로 인하여 암호화 복호화 자체가 쉽지 않다. 본 연구의 제안 알고리즘을 실제로 저자가 개발한 QR코드 압축 알고리즘인 QR2x 알고리즘을 생성한 QR코드를 스캐닝하고 해독하는 모바일 앱에 적용하여 활용하였다.
FPGA(Field Programmable Gate Array)로 LEA(Lightweight Encryption Algorithm) 경량암호화 알고리즘을 구현한 경우 성능 검증을 위해 평문을 암호문으로 바꾸고 이를 다시 평문으로 복원하는 과정을 통해 검증[4]을 하는 방식을 활용하였다. 이와 같은 선행 연구를 참고하여, 본 연구에서는 새롭게 제안된 암호화 알고리즘의 암호화 및 복호화가 완전하게 수행되는지를 확인하는 방법으로서 MKT(몬테카를로 검사)를 활용하였다. 먼저 임의의 16,438 개의 고정길이 평문에 동일 패스워드에 대해 동일한 캐리포인터 이동 수를 적용하여 암/복호화가 완벽히 재연되는지 확인하였고, 두 번째로, 44192개의 다양한 길이와 내용을 가진 원문 텍스트에 대해 다양한 암호 키와 다양한 캐리포인터 이동수를 적용하여 암호화 하였다가 다시 복호화 하는 과정을 통해 그 결과 값이 완전히 일치하는지를 확인하는 방식으로 알고리즘을 테스트 하였다.
성능/효과
Cryptography” 내의 AES 알고리즘과 비교했을 때, 본 알고리즘은 매우 짧은 데이터에서부터 비교적 큰 데이터까지 고른 암호화 속도를 보이는 것을 알 수 있다.
동일한 방식을 차용하여 먼저, 100바이트의 고정길이 평문에 대해 동일한 암호 키를 이용하여, CPM은 평문길이의 1배수로 하여 16438가지의 경우의 수로부터 나온 16438건의 평문 메시지의 암호화 / 복호화에 대하여 암호화 및 복호화가 정상적으로 되었다.
또한 본 연구의 암호화 알고리즘은 저사양의 저효율 디바이스에 사용될 수 있는 암호화 알고리즘으로서 암호화와 복호화 결과 평문과 암호문의 길이의 변화가 일어나지 않는 점이 특징적이다. 특히 10~200 byte 정도의 짧은 길이의 메시지를 암호문의 크기 증가 없이 암호화 할 수 있으므로, QR 코드/RFID등 한정된 저장 공간에서 다양한 단문 메시지만을 저장할 수 있는 매체의 정보를 크기 확장의 우려 없이 암호화 할 수 있게 되었다.
자리올림 연산과 자리내림 연산의 기준이 되는 비트를 캐리 포인터라고 본 연구에서는 명명하였는데, 캐리 포인터를 상위 방향으로 1비트씩 이동하면서, 본 연구에서 제안한 자리올림 연산 및 자리내림 연산을 반복적으로 적용할 수 있다. 아래 그림 5와 같이 특정한 캐리 포인터에 있어서, 암호키 값이 0 일 경우, 자리 내림 연산을 수행하고, 1비트 상위 방향으로 캐리 포인터를 이동한 뒤, 키 값에 따라 자리 올림 또는 자리 내림 연산을 반복하는 방법을 통해 암호의 보안성을 향상 시킬 수 있다.
또한 본 연구의 암호화 알고리즘은 저사양의 저효율 디바이스에 사용될 수 있는 암호화 알고리즘으로서 암호화와 복호화 결과 평문과 암호문의 길이의 변화가 일어나지 않는 점이 특징적이다. 특히 10~200 byte 정도의 짧은 길이의 메시지를 암호문의 크기 증가 없이 암호화 할 수 있으므로, QR 코드/RFID등 한정된 저장 공간에서 다양한 단문 메시지만을 저장할 수 있는 매체의 정보를 크기 확장의 우려 없이 암호화 할 수 있게 되었다.
한 번의 시도에서 임의로 20∼220 byte의 가변 길이의 평문에 대하여, 암호 키 또한 임의로 8비트∼160비트 길이를 적용하고, CPM 또한 가변길이 원문의 1∼4배로 하고 이 값에 추가로 0∼50회를 적용한 44,192건의 경우에 대하여 암호화 및 복호화 또한 완벽히 진행되었음을 확인했다.
한편, 표3는 동일한 평문데이터 셋에 대하여 AES-128 알고리즘으로 암·복호화한 시간을 측정한 결과 값이며, 복호화 속도는 본 제안 알고리즘보다 2배정도 빨랐으나, 암호화 속도는 전반적으로 본 제안 알고리즘보다 느리거나 비슷하다고 볼 수 있으나, 처리해야할 평문 데이터가 커질수록 3배∼30배까지 급격하게 느려짐을 알 수 있었다.
후속연구
따라서 이러한 부분을 통해 본 연구에서 제안하는 암호화 알고리즘의 IoT device적용에 대하여 경량성을 확인할 수 있었으며, 향후 본 제안 알고리즘의 최적화를 고려한다면, 충분히 실용적이 가치가 있을 것으로 판단된다.
한편, 표3는 동일한 평문데이터 셋에 대하여 AES-128 알고리즘으로 암·복호화한 시간을 측정한 결과 값이며, 복호화 속도는 본 제안 알고리즘보다 2배정도 빨랐으나, 암호화 속도는 전반적으로 본 제안 알고리즘보다 느리거나 비슷하다고 볼 수 있으나, 처리해야할 평문 데이터가 커질수록 3배∼30배까지 급격하게 느려짐을 알 수 있었다. 이는 비주얼스튜디오의 AES 알고리즘 라이브러리의 문제일 가능성이 크나, 닷넷 라이브러리를 사용할 경우에 본 제안 알고리즘을 쓴다면 빠른 암호화시에 보다 더 나은 처리속도를 나타낼 수 있을 것으로 예상된다.
이러한 장점에도 불구하고, 본 제안 알고리즘의 보안적 안전성이 정량적이고 수학적으로 엄밀히 입증하여야 할 부분이 있으며 이는 추후 지속적인 연구개발을 통해 확인할 예정이다. 특히 암호화 알고리즘의 안전성이 어느 정도인지에 따라 활용될 수 있는 용도와 적용 가능한 산업분야가 명확해질 것으로 판단된다.
본 연구에서는 암호 키를 연구의 간소화를 위해 string type으로 지정하였고 이를 내부적으로는 각 string 문자를 구성하는 Ascii 코드의 이진화된 형태를 각 password 열의 비트로 활용하였다. 즉 8글자의 문자는 8*8=64비트의 암호 키 비트 열을 구성하는데, 바람직하게는 Password key에 대하여 별도로 암호화를 커지거나 Hash code로 변환하여 이를 본 연구의 암호 키로 활용하는 것이 보안성을 높일 것으로 기대된다.
이러한 장점에도 불구하고, 본 제안 알고리즘의 보안적 안전성이 정량적이고 수학적으로 엄밀히 입증하여야 할 부분이 있으며 이는 추후 지속적인 연구개발을 통해 확인할 예정이다. 특히 암호화 알고리즘의 안전성이 어느 정도인지에 따라 활용될 수 있는 용도와 적용 가능한 산업분야가 명확해질 것으로 판단된다.
질의응답
핵심어
질문
논문에서 추출한 답변
사물 인터넷의 활성화에 따라, 2020년까지 몇 개의 사물이 인터넷과 연결될 거라 추정되는가?
가트너(Gartner, Inc)에 따르면, 최근 사물 인터넷의 활성화에 따라 2020년까지 약 260 억 개의 사물이 인터넷과 연결될 것으로 추정되고 있다. 이는 우리의 실 생활과 밀접한 사물이 인터넷에 직접 연결되고, 이에 따라 기존 사이버 공간의 보안 위험이 일상현실로 확대 될 수 있음을 의미한다[1].
IoT에 기존 AES, DES 등의 암호화 알고리즘의 적용이 어려운 이유는?
이는 우리의 실 생활과 밀접한 사물이 인터넷에 직접 연결되고, 이에 따라 기존 사이버 공간의 보안 위험이 일상현실로 확대 될 수 있음을 의미한다[1]. 그런데 IoT device들은 특성상 CPU나 메모리 자원이 제한적이며, 전력 소모가 작아야하는 특성이 있기 때문에[2], 기존의 AES, DES등 블록 암호화 알고리즘의 적용이 어렵다. 이에 따라 컴퓨팅 능력이 아주 적은 응용 분야에서는 주로 스트림(Stream) 암호가 사용되며, 스트림 암호중에 A5/1암호는 GSM 휴대폰 표준의 일부로 음성 암호화에 사용된다.
IoT device의 특성상 어떤 암호가 사용되는가?
그런데 IoT device들은 특성상 CPU나 메모리 자원이 제한적이며, 전력 소모가 작아야하는 특성이 있기 때문에[2], 기존의 AES, DES등 블록 암호화 알고리즘의 적용이 어렵다. 이에 따라 컴퓨팅 능력이 아주 적은 응용 분야에서는 주로 스트림(Stream) 암호가 사용되며, 스트림 암호중에 A5/1암호는 GSM 휴대폰 표준의 일부로 음성 암호화에 사용된다. 한편 RC4와 같은 스트림 암호는 인터넷 트래픽 암호에도 사용된다[3]. 한편, 국내에서는 IoT device적용을 위해 LEA등 경량블록 암호화를 개발하여 보급 중에 있으나[4], 경량 블록 암호화 알고리즘조차도 적용되기 어려운 초경량 IoT device 들은 여전히 존재하며 이들 또한 해킹이나 정보 탈취 시에 심각한 문제를 일으킬 수 있는 가능성이 높다[5].
참고문헌 (9)
Kyeoung-Ju Ha., Chang-Ho Seo, Dae-Youb Kim, "Design of Validation System for a Crypto-Algorithm Implementation", The Journal of Korea Information and Communications Society, 39(B), pp. 242-250, Apr. 2014
Jianying Zhou and Dieter Gollmann, "Evidence and Non-repudiation," Journal of Network and Computer Applications, Vol. 20, No. 3, pp. 267-281, Jul. 1997
Ministry of Science,ICT and Future Planning, "Roadmap of IoT Information Security ", p 68, Oct. 2014
Je-Seong Jeong, Kyung-min Kim, HakJu Kim,Joon-jeong Park, Soo-Hyun, Ahn, Dongsoo Lee,Rakyong Choi, Kwangjo Kim,Daeyoung Kim, Shin,"Configuration of IoT Secure SNAIL Platform Using Lightweight Crypto primitives (I)", CISC-W'14, v.0, Dec. 2014
When encrypting personal information of large capacity OLTP system System Performance Improvement Plan (Focused on Public A System), INNOVATION STUDIES, Vol. 9, No. 1, pp. 115-118, Jun. 2014
Kyuwoon Kim and Hyunwoo Kim and Huijeong Kim and Taeyoung Huh and Sanghyuk Jung, and Yong Ho SongAn "Analytical Model for Performance Prediction of AES on GPU Architecture", Journal of The Institute of Electronics Engineers of Korea Vol. 50, NO. 4, pp. 852-854, April 2013
Jang-Hyun Kim, Hyo-Joong Suh, "Implementation of Verification and Evaluation Testbed of WiMax2 PKMv2 Encryption Layer", The Journal of the Institute of Internet, Broadcasting and Communication, Vol. 15 No.1, pp.80-81. Feb. 2015
※ AI-Helper는 부적절한 답변을 할 수 있습니다.