스마트 시대가 도래함에 따라 스마트 기기의 사용이 점차 늘고 있다. 스마트 기기는 인류의 편의를 제공하여 널리 사용하고 있지만 정보가 노출될 위험이 존재한다. 이러한 문제를 보안하기 위해 스마트 기기는 자체적으로 다양한 암호 알고리즘이 포함되어 있다. 이 중 해시함수는 데이터 무결성, 인증, 서명 등의 알고리즘을 수행하기 위해 필수적으로 사용되는 암호 알고리즘이다. 최근 SHA-1의 충돌 저항성에 문제가 제기되면서 안전성에 문제가 생기게 되었고 SHA-1을 기반으로 한 현재 표준 해시함수인 SHA-2 또한 머지않아 안전성에 문제가 생길 것이다. 이에 따라 2012년 NIST는 KECCAK알고리즘을 새로운 해시함수 표준인 SHA-3로 선정하였고 이 알고리즘에 대한 다양한 환경에서의 구현이 필요해졌다. 본 논문에서는 SHA-3로 선정된 KECCAK 알고리즘과 기존의 해시 함수인 SHA-2를 ARM-11 프로세서에 구현하고 성능을 비교 분석하여 시사점을 도출하였다.
스마트 시대가 도래함에 따라 스마트 기기의 사용이 점차 늘고 있다. 스마트 기기는 인류의 편의를 제공하여 널리 사용하고 있지만 정보가 노출될 위험이 존재한다. 이러한 문제를 보안하기 위해 스마트 기기는 자체적으로 다양한 암호 알고리즘이 포함되어 있다. 이 중 해시함수는 데이터 무결성, 인증, 서명 등의 알고리즘을 수행하기 위해 필수적으로 사용되는 암호 알고리즘이다. 최근 SHA-1의 충돌 저항성에 문제가 제기되면서 안전성에 문제가 생기게 되었고 SHA-1을 기반으로 한 현재 표준 해시함수인 SHA-2 또한 머지않아 안전성에 문제가 생길 것이다. 이에 따라 2012년 NIST는 KECCAK알고리즘을 새로운 해시함수 표준인 SHA-3로 선정하였고 이 알고리즘에 대한 다양한 환경에서의 구현이 필요해졌다. 본 논문에서는 SHA-3로 선정된 KECCAK 알고리즘과 기존의 해시 함수인 SHA-2를 ARM-11 프로세서에 구현하고 성능을 비교 분석하여 시사점을 도출하였다.
As the smart era, the use of smart devices is increasing. Smart devices are widely used to provide a human convenience, but there is a risk that information is exposed. The smart devices to prevent this problem includes the encryption algorithm. Among them, The hash function is an encryption algorit...
As the smart era, the use of smart devices is increasing. Smart devices are widely used to provide a human convenience, but there is a risk that information is exposed. The smart devices to prevent this problem includes the encryption algorithm. Among them, The hash function is an encryption algorithm that is used essentially to carry out the algorithm, such as data integrity, authentication, signature. As the issue raised in the collision resistance of SHA-1 has recently been causing a safety problem, and SHA-1 hash function based on the current standard of SHA-2 would also be a problem in the near future safety. Accordingly, NIST selected KECCAK algorithm as SHA-3, it has become necessary to implement this in various environments for this algorithm. In this paper, implementation of KECCAK algorithm. And SHA-2 On The ARM-11 processor, and compare performance.
As the smart era, the use of smart devices is increasing. Smart devices are widely used to provide a human convenience, but there is a risk that information is exposed. The smart devices to prevent this problem includes the encryption algorithm. Among them, The hash function is an encryption algorithm that is used essentially to carry out the algorithm, such as data integrity, authentication, signature. As the issue raised in the collision resistance of SHA-1 has recently been causing a safety problem, and SHA-1 hash function based on the current standard of SHA-2 would also be a problem in the near future safety. Accordingly, NIST selected KECCAK algorithm as SHA-3, it has become necessary to implement this in various environments for this algorithm. In this paper, implementation of KECCAK algorithm. And SHA-2 On The ARM-11 processor, and compare performance.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
SHA-3 프로젝트는 SHA-1의 충돌쌍 공격이 발견되면서 안전성에 문제가 생기게 되어 현재 사용 중인 SHA-2 또한 머지않아 안전성에 문제가 생길 것에 대비하기 위해 기획되었다. 기존의 SHA-1과 SHA-2까지는 NIST에서 자체적으로 디자인했지만 SHA-3 알고리즘은 공개경쟁을 통해 후보를 모집하고 안전성을 분석하여 몇 차례에 걸쳐 후보를 줄여나가는 방식으로 진행되었다.
제안 방법
SHA-2의 경우 출력의 길이가 256bit일 때는 연산을 32bit단위로 하기 때문에 메시지블록의 크기인 512bit에 맞게 패딩하고 64라운드를 반복하도록 하였다. 512bit인 경우는 256bit의 출력과는 달리 연산이 64bit워드 단위로 되기 때문에 프로세서에 맞게 32bit워드연산으로 수정하고 메시지블록의 크기를 1024bit로 총 80번 반복되도록 출력하였다.
SHA-2 알고리즘과 SHA-3 알고리즘 비교방법은 메시지가 입력되는 시간을 t0 , 다이제스트가 출력되는 시간을 t1으로 정하고 이것을 10,000번 반복했을 때 t1-t0인 td를 알고리즘의 성능으로 측정하였다.
x86 프로세서 환경이 ARM 프로세서 환경보다 우수하지만, 본 논문에서는 각 프로세서 상에서 중점적으로 SHA-2와 SHA-3 알고리즘의 성능을 비교 분석하였다. 표3은 x86과 ARM 프로세서의 사양이다.
본 논문에서는 기존의 해시함수인 SHA-2와 SHA-3로 선정된 KECCAK 알고리즘을 저전력 임베디드인 ARM 프로세서와 x86 프로세서에서 각프로세서의 성질에 맞게 구현하고 성능을 비교하였다. 그 결과 출력 길이가 256bit의 경우 x86 프로세서는 SHA-3 알고리즘이 최대 4배의 좋은 성능을 보였고 ARM-11 프로세서에서는 SHA-3 알고리즘이 최대 6배의 좋은 성능을 보였다.
일반적으로 암호 알고리즘의 성능측정은 cycle-per-byte로 하지만 본 논문에서는 td를 구함으로써 ARM 프로세서상에서 SHA-2 알고리즘과 SHA-3 알고리즘의 성능을 보다 정확하게 비교하였다.
또한 SHA2와의 성능을 비교하는 것이기 때문에 b가 1600일 경우 연산이 64bit워드로 진행되기 때문에 그림9와 같이 b가 800또는 400일 경우와 같은 32bit워드를 두 개 사용하여 구현하였고 따로 Squeeze 과정의 f함수는 구현하지 않았다. 패딩 함수는 출력이 256bit일 경우 메시지블록의 크기를 1088bit로 512bit의 경우 576bit의 크기로 f함수에 24번 반복되도록 한 뒤 마지막 메시지에만 메시지 블록의 크기가 되도록 패딩 하였다.
대상 데이터
따라서 NIST(National Institute of Standards and Technology)에서는 2007년부터 공개경쟁을 통해 SHA-3 알고리즘을 공모하여 총 64개의 알고리즘이 후보에 등록되었고 2008년에 1차 후보로 51개의 알고리즘이 선정되었다. 2009년에 취약성이 드러난 후보들을 제외한 14개의 알고리즘이 2차 후보로 선정되었고 2010년 최종 후보로 5개의 알고리즘이 선정되어 2012년 최종적으로 KECCAK 알고리즘이 SHA-3 함수로 선정되었다 [4]. 이렇게 선정된 SHA-3 알고리즘은 다양한 시스템에서 구현될 것으로 전망된다.
2차 후보에는 안전성, 알고리즘의 구현 효율성 그리고 알고리즘의 유연성과 단순성을 분석해 14개의 알고리즘이 선정되었다. 2010년 최종후보로 5개의 알고리즘이 발표되었고, 2012년 10월 1일 조앤 데먼, 질 반 아쉐, 마이클 피터스, 귀도 베르토니가 설계한 KECCAK이 SHA-3의 알고리즘으로 선정되었다.
Complete는 레퍼런스코드 및 최적화된 코드 구현 결과를 제출하는 것이고 Proper은 별도의 로열티 없이 전 세계적으로 누구나 사용 가능하고 다양한 하드웨어 및 소프트웨어에서 구현 할 수 있어야 함을 의미한다. 2차 후보에는 안전성, 알고리즘의 구현 효율성 그리고 알고리즘의 유연성과 단순성을 분석해 14개의 알고리즘이 선정되었다. 2010년 최종후보로 5개의 알고리즘이 발표되었고, 2012년 10월 1일 조앤 데먼, 질 반 아쉐, 마이클 피터스, 귀도 베르토니가 설계한 KECCAK이 SHA-3의 알고리즘으로 선정되었다.
ARM 아키텍처는 임베디드 기기에 많이 사용되는 32-bit RISC 프로세서이고 저 전력을 사용하도록 설계하여 ARM CPU는 모바일 시장에서 뚜렷한 강세를 보인다[10]. 본 논문에서 사용한 ARM프로세서는 ARM-11으로 ARMv6에 속한다. 이 프로세서는 현재 생산되는 대다수 스마트폰에 쓰이고 있으며그 외에도 광범위한 컨슈머 제품, 가전제품, 임베디드 영역에 쓰이고 있다.
기존의 SHA-1과 SHA-2까지는 NIST에서 자체적으로 디자인했지만 SHA-3 알고리즘은 공개경쟁을 통해 후보를 모집하고 안전성을 분석하여 몇 차례에 걸쳐 후보를 줄여나가는 방식으로 진행되었다. 총 64개의 알고리즘이 등록되었고 Complete와 Proper 조건을 만족하는 51개의 알고리즘이 1차 후보에 선정되었다. Complete는 레퍼런스코드 및 최적화된 코드 구현 결과를 제출하는 것이고 Proper은 별도의 로열티 없이 전 세계적으로 누구나 사용 가능하고 다양한 하드웨어 및 소프트웨어에서 구현 할 수 있어야 함을 의미한다.
성능/효과
본 논문에서는 기존의 해시함수인 SHA-2와 SHA-3로 선정된 KECCAK 알고리즘을 저전력 임베디드인 ARM 프로세서와 x86 프로세서에서 각프로세서의 성질에 맞게 구현하고 성능을 비교하였다. 그 결과 출력 길이가 256bit의 경우 x86 프로세서는 SHA-3 알고리즘이 최대 4배의 좋은 성능을 보였고 ARM-11 프로세서에서는 SHA-3 알고리즘이 최대 6배의 좋은 성능을 보였다. 또한 출력 길이가 512bit인 경우 x86 프로세서는 SHA-3 알고리즘이 최대10배, ARM-11 프로세서에서는 최대 16배의 좋은 성능을 보였다.
5배에서 약16배의 좋은 성능을 보인다. 따라서 SHA-2와 비교한 SHA-3 알고리즘의 성능향상이 x86 프로세서보다 ARM-11 프로세서에서 훨씬 우수한 걸 확인 할 수 있다.
이 프로세서는 현재 생산되는 대다수 스마트폰에 쓰이고 있으며그 외에도 광범위한 컨슈머 제품, 가전제품, 임베디드 영역에 쓰이고 있다. 또한 SIMD(Single Instruction Multiple Data) 소프트웨어 실행을 지원하는 미디어 명령이 포함되어 있으며 SIMD 명령들은 오디오 및 비디오 코덱을 포함하는 응용 프로그램들의 사용 확대를 위해 최적화되었다. ARM -11 프로세서는 소비 전력이 매우 낮고 ARM 보드의 크기에 따라 350MHz부터 시작하여 최적화하면 1GHz까지 속도를 낼 수 있다.
특히 이번 연구에 사용한 프로세서는 Samsung 의 32bit 어플리케이션 프로세서인 S3C6410가 내장된 보드로서 매우 넓은 범위에서 사용되고 있고 멀티미디어와 브라우저 기능, 보안 계산 환경을 제공하며 저렴한 가격에 1GBz의 성능을 낼 수 있다. 또한 보안을 위한 ARM TrustZone[11] 기술을 지원하며 높은 효율의 임베디드 자바 시스템을 위한 ARM Jazelle[12]를 지원한다.
KECCAK 알고리즘은 높은 수준의 병렬 구조로 되어있고 비교적 빠른 연산인 XOR과 AND를 f함수에 사용하고 있기 때문에 효율성이 좋다. 표 2를 보면 SHA-3가 MD5보다 좋은 효율성을 보여줄 뿐만 아니라 현재 사용하고 있는 SHA-2보다도 효율이 좋은 것을 확인 할 수 있다. 따라서 현재 우리나라에서 지정하여 사용하고 있는 해시함수 인 SHA-224, 256, 384, 512가 향후 SHA-3 알고리즘으로 대체 되어야 할 것으로 보인다.
후속연구
이미 스마트 카드로 사용하고 있는 UICC에서도 SHA-2보다 SHA-3가 빠르다는 것을 알 수 있다[5]. 그러므로 SHA-3는 SHA-2를 대체하기에 충분한 알고리즘임을 확인 할수 있고 앞으로 SHA-3알고리즘에 대한 이해와 각 환경에 맞도록 알고리즘을 최적화하는 연구가 진행되어야 한다.
마지막으로 KECCAK은 하드웨어 성능이 우수하고 부채널 공격[7]에 대한 강점을 가지고 있다. 따라서 현재 SHA-2 알고리즘이 쓰이고 있는 모든 스마트기기에 SHA-3 알고리즘이 충분히 적용 가능 할 것이다.
표 2를 보면 SHA-3가 MD5보다 좋은 효율성을 보여줄 뿐만 아니라 현재 사용하고 있는 SHA-2보다도 효율이 좋은 것을 확인 할 수 있다. 따라서 현재 우리나라에서 지정하여 사용하고 있는 해시함수 인 SHA-224, 256, 384, 512가 향후 SHA-3 알고리즘으로 대체 되어야 할 것으로 보인다.
ARM프로세서는 명령 집합과 구조가 단순하지만 x86프로세서는 복잡한 명령에 의해 동작되는 만큼 비싼 부품을 필요로 한다. 이처럼 타입이 다른 두 프로세서가 암호 모듈 성능에 얼마나 영향을 미치는지 확인해 봐야 할 것이다.
질의응답
핵심어
질문
논문에서 추출한 답변
데이터를 주고받을 때 데이터의 기밀성과 무결성이 입증되어야하는 이유는 무엇인가?
현대사회는 스마트화가 급속도로 진행되면서 스마 트기기들을 주변에서 쉽게 접할 수 있게 되었다. 스마트기기들에는 필수적으로 암호 알고리즘이 내장되어 있는데 암호는 데이터를 주고받을 때 도청이나 데이터를 가로채거나 중간자공격[1]에 의해 데이터의 원본이 수정될 수 있기 때문에 기본적으로 데이터의 기밀성과 무결성이 입증 되어야 한다. 이러한 요구사 항을 만족시키기 위한 암호알고리즘들로 블록 암호, 공개키 암호, 해시함수, 난수 생성기 등이 존재하는데 이들 중 해시 함수는 메시지의 무결성이나 전자서명 등 다양한 곳에 사용되는 필수적인 알고리즘이다.
해시함수가 무결성이나 전자서명 등 다양한 곳에 사용되는 이유는 무엇인가?
이러한 요구사 항을 만족시키기 위한 암호알고리즘들로 블록 암호, 공개키 암호, 해시함수, 난수 생성기 등이 존재하는데 이들 중 해시 함수는 메시지의 무결성이나 전자서명 등 다양한 곳에 사용되는 필수적인 알고리즘이다.데이터를 주고받을 때 수신자와 발신자의 데이터의 해시 값을 서로 비교하면 주고받는 도중 데이터에 변경이 가해졌는지 원문 그대로인지를 확인하는 무결성 검증을 할 수 있기 때문이다. 이러한 암호학적 해시 함수는 일방향성을 포함하고 있기 때문에 해시값을 이용하여 원문을 재현할 수는 없고, 역상저항성을 가지고 있어 같은 해시값을 가진 데이터를 만들어 내는 것도 어려워서 통신의 암호화 수단이나 인증, 디지털 서명에서 사용되고 있다.
전송 과정에서 데이터의 기밀성과 무결성을 만족시킬 수 있는 암호알고리즘에는 어떤것들이 있는가?
스마트기기들에는 필수적으로 암호 알고리즘이 내장되어 있는데 암호는 데이터를 주고받을 때 도청이나 데이터를 가로채거나 중간자공격[1]에 의해 데이터의 원본이 수정될 수 있기 때문에 기본적으로 데이터의 기밀성과 무결성이 입증 되어야 한다. 이러한 요구사 항을 만족시키기 위한 암호알고리즘들로 블록 암호, 공개키 암호, 해시함수, 난수 생성기 등이 존재하는데 이들 중 해시 함수는 메시지의 무결성이나 전자서명 등 다양한 곳에 사용되는 필수적인 알고리즘이다.데이터를 주고받을 때 수신자와 발신자의 데이터의 해시 값을 서로 비교하면 주고받는 도중 데이터에 변경이 가해졌는지 원문 그대로인지를 확인하는 무결성 검증을 할 수 있기 때문이다.
참고문헌 (13)
Y. Desmedt, "Man-in-the-middle attack," Encyclopedia of Cryptography and Security. Springer US, pp.759-759, 2011
NIST, "FIPS PUB 180-4(SHS)" Mar. 2012
X. Wang, A. C. Yao and F. Yao, "Cryptanalysis on SHA-1", CRYPTOGRAPHIC HASH WORKSHOP, Oct 31 - Nov 1. 2005
NIST, "DRAFT FIPS PUB 202", May. 2014
H Lee, D Hong, H Kim, C Seo & K Park, "An Implementation of SHA-3 Hash Function Validation Program and Hash Algorithm on UICC-16bit," Journal of KIISE, 41(11) pp.885-891, Nov. 2014
MPG Bertoni, J Daemen, G Van Assche, "KECCAK (sha-3)" Icebreak2013, Jun. 2013
R Novak, "Side-channel attack on substitution blocks," Applied Cryptography and Network Security. Springer Berlin Heidelberg, pp.307-318, Oct. 2003
G.Bertoni, J. Daemen, M. Peeters, and G. Van Assche, "The KECCAK reference Version 3.0," Citations in this document 14, Jan. 2011
SHA-3,https://en.wikipedia.org/wiki/SHA-3
O Yi, S Yun, M Park & H Song, "Implementation of ARIA Cryptographic Modules based on ARM9 Devices," International Journal of Security & Its Applications, 8(2) pp.243-250, Aug. 2014
T Frenzel, A Lackorzynski, A Warg, H Hartig, "Arm trustzone as a virtualization technique in embedded systems," In Proceedings of Twelfth Real-Time Linux Workshop, Nairobi, Kenya. Oct. 2010
M.A Fukase, P Khondkar & Nakamura. "Prototyping of a Java-embedded multimedia processor," Industrial Electronics Society, 2001. IECON'01. The 27th Annual Conference of the IEEE. Vol. 3. IEEE, pp.2126-2130, Nov 29 - Dec 2. 2001
※ AI-Helper는 부적절한 답변을 할 수 있습니다.