본 논문은 대칭키 기반의 암호 알고리즘으로 사용하는 AES 암호 알고리즘을 정의하고, 멀티코어 프로세서의 자원을 최대 활용하기 위한 병렬 암호 알고리즘 설계를 제안한다. 제안한 병렬 암호 알고리즘은 코어의 개수에 따라 암호 알고리즘을 쓰레드별로 할당하여 암호 연산의 병렬 수행을 확인하였고, AES 암호 알고리즘에 비해 약 30% 성능향상을 확인하였다. 암호 알고리즘의 암 복호화 성능은 바이너리 비교 분석 툴을 통해 확인하여, AES 암호 알고리즘과 제안한 병렬 암호 알고리즘의 바이너리는 동일 결과를 확인하였으며, 복호화한 바이너리 또한 동일하였다. 본 논문에서 제안한 멀티코어 프로세서 환경의 병렬 암호 알고리즘은 개인 PC, 노트북, 서버, 모바일 환경에서 금융 서비스의 인증 및 결제에 적용 가능하고, 대형 데이터의 고속 암호화 연산이 필요한 분야에서 활용 가능하다.
본 논문은 대칭키 기반의 암호 알고리즘으로 사용하는 AES 암호 알고리즘을 정의하고, 멀티코어 프로세서의 자원을 최대 활용하기 위한 병렬 암호 알고리즘 설계를 제안한다. 제안한 병렬 암호 알고리즘은 코어의 개수에 따라 암호 알고리즘을 쓰레드별로 할당하여 암호 연산의 병렬 수행을 확인하였고, AES 암호 알고리즘에 비해 약 30% 성능향상을 확인하였다. 암호 알고리즘의 암 복호화 성능은 바이너리 비교 분석 툴을 통해 확인하여, AES 암호 알고리즘과 제안한 병렬 암호 알고리즘의 바이너리는 동일 결과를 확인하였으며, 복호화한 바이너리 또한 동일하였다. 본 논문에서 제안한 멀티코어 프로세서 환경의 병렬 암호 알고리즘은 개인 PC, 노트북, 서버, 모바일 환경에서 금융 서비스의 인증 및 결제에 적용 가능하고, 대형 데이터의 고속 암호화 연산이 필요한 분야에서 활용 가능하다.
This paper defines the AES password algorithm used as a symmetric-key-based password algorithm, and proposes the design of parallel password algorithm to utilize the resources of multi-core processor as much as possible. The proposed parallel password algorithm was confirmed for parallel execution o...
This paper defines the AES password algorithm used as a symmetric-key-based password algorithm, and proposes the design of parallel password algorithm to utilize the resources of multi-core processor as much as possible. The proposed parallel password algorithm was confirmed for parallel execution of password computation by allocating the password algorithm according to the number of cores, and about 30% of performance increase compared to AES password algorithm. The encryption/decryption performance of the password algorithm was confirmed through binary comparative analysis tool, which confirmed that the binary results were the same for AES password algorithm and proposed parallel password algorithm, and the decrypted binary were also the same. The parallel password algorithm for multi-core environment proposed in this paper can be applied to authentication/payment of financial service in PC, laptop, server, and mobile environment, and can be utilized in the area that required high-speed encryption operation of large-sized data.
This paper defines the AES password algorithm used as a symmetric-key-based password algorithm, and proposes the design of parallel password algorithm to utilize the resources of multi-core processor as much as possible. The proposed parallel password algorithm was confirmed for parallel execution of password computation by allocating the password algorithm according to the number of cores, and about 30% of performance increase compared to AES password algorithm. The encryption/decryption performance of the password algorithm was confirmed through binary comparative analysis tool, which confirmed that the binary results were the same for AES password algorithm and proposed parallel password algorithm, and the decrypted binary were also the same. The parallel password algorithm for multi-core environment proposed in this paper can be applied to authentication/payment of financial service in PC, laptop, server, and mobile environment, and can be utilized in the area that required high-speed encryption operation of large-sized data.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
따라서 본 논문에서는 멀티코어 프로세서의 자원을 활용하기 위한 AES 암호 알고리즘을 각 멀티쓰레드에 할당하여 연산하는 병렬화를 제안하고, 모바일 기기와 같은 저성능 멀티 코어 프로세서에서 암호 알고리즘의 효율성을 증대하며, 암호 연산 수행 시간을 최소화한다.
따라서 본 논문은 기존 싱글코어 기반의 AES 암호 알고리즘을 멀티코어 프로세서 환경에 적합한 알고리즘으로 재해석하고, 암호화 및 복호화 수행에 멀티코어를 활용하여 효율성을 높이는 암호 알고리즘을 제안한다.
본 논문에서는 효율성이 향상된 병렬 AES 암호 알고리즘을 제안하였다. 제안한 알고리즘은 최근 빠르게 발전하는 멀티코어 프로세서 환경에서 알고리즘을 효율적으로 최적화 하여 사용가능한 수행 성능을 평가하였다.
제안 방법
제안한 암호 알고리즘과 기존의 암호 알고리즘에서 4가지 함수에 대한 복잡도를 비교하여 평가하였다. AES 암호 알고리즘의 SubBytes, ShiftRows, MixColumns에 대한 명령어 실행 횟수를 분석하여 복잡도를 산출 하였으며, 복잡도는 시간복잡도를 이용하여 비교 및 평가하였다.
기존 AES 암호 알고리즘을 분석하고 재해석하여 논리적인 기능을 멀티코어 프로세서 환경에 적용하였다. 각 코어에 명령을 전달하여 128비트의 스테이트에서 각 행을 기준으로 일괄적인 연산을 제안하였다. 병렬 연산을 위해 OpenMP API를 활용하였고, 암·복호화 연산 수행시 자원 사용을 효율적으로 높였으며, 수행 속도 향상을 확인하였다.
제안한 알고리즘은 최근 빠르게 발전하는 멀티코어 프로세서 환경에서 알고리즘을 효율적으로 최적화 하여 사용가능한 수행 성능을 평가하였다. 기존 AES 암호 알고리즘을 분석하고 재해석하여 논리적인 기능을 멀티코어 프로세서 환경에 적용하였다. 각 코어에 명령을 전달하여 128비트의 스테이트에서 각 행을 기준으로 일괄적인 연산을 제안하였다.
기존 암호 알고리즘의 SubBytes 함수를 C 코드로 구현하였고, C코드에서 각각 구문별 소요되는 명령어를 분석하여 카운트하였다. 함수 내부에서 두 개의 루프가 사용되었으며, 최소 n×n 번 수행한다.
기존 암호 알고리즘의 성능을 IPS도구를 통하여 분석하였다. 그림 6과 같이 전체 수행시간을 7.
기존의 AES 암호 알고리즘과 본 논문에서 제안한 병렬 암호 알고리즘을 Text, MP3, MP4, Docx, Hwp의 파일 포맷 종류로 암호화하여, 이를 바이너리 분석 툴로 비교하여 암호화한 결과를 아래 표 4와 같이 정성적으로 비교 하였다.
본 논문에서 제안한 멀티코어 프로세서 기반의 병렬 AES 암호 알고리즘에 대한 성능을 평가한다. 성능 평가 및 분석을 위한 시스템 환경은 Intel Core2 CPU T5500 1.
본 논문에서는 기존의 AES 암호 알고리즘과 동일한 4×4 행렬 스테이트를 각 함수마다 행 단위로 분할하여 각각의 코어에서 연산을 수행하는 SubBytes, ShiftRows, MixColumns 함수에 대한 병렬화를 제안하였다.
본 논문에서는 효율성이 향상된 병렬 AES 암호 알고리즘을 제안하였다. 제안한 알고리즘은 최근 빠르게 발전하는 멀티코어 프로세서 환경에서 알고리즘을 효율적으로 최적화 하여 사용가능한 수행 성능을 평가하였다. 기존 AES 암호 알고리즘을 분석하고 재해석하여 논리적인 기능을 멀티코어 프로세서 환경에 적용하였다.
제안한 알고리즘의 PA_SubBytes() 함수를 C 코드로 구현하였고, C코드에서 각각 구문별 소요되는 명령어를 분석하여 카운트하였다. 함수 내부에서 기존 암호 알고리즘과 마찬가지로 두 개의 루프를 사용한다.
평문이 기존 AES 암호 알고리즘과 동일한 AddRoundKey 함수와 병렬 SubBytes 함수를 거쳐, 병렬 MixColumns 함수의 연산은 병렬로 수행한다. 4×4 행렬 스테이트에서 각 열들은 멀티코어 프로세서의 개수에 맞게 치환 연산을 수행하고, 멀티코어 프로세서의 개수에 맞는 Thread에 할당하여 정해진 상수행렬(Constant Matrix)과 행렬 곱셈 연산을 수행하게 된다.
알고리즘 성능 분석을 위하여 IPS(Intel Parallel Studio) 프로파일링 도구를 사용하였다. 프로파일링 도구를 통하여 각 함수 별 수행시간 측정, 쓰레드의 정상적 생성 검사, 전체 수행시간 측정, 효율성 측정을 하였다.
SubBytes 함수는 AES 암호 알고리즘의 암호화 과정에서 사용하는 대치함수를 말한다[3]. 하나의 바이트를 대체하기 위해 각 바이트를 4비트씩 2개의 16진수로 계산하여 왼쪽 4비트를 S-Box의 행으로 오른쪽 4비트 열로 S-Box 테이블에서 읽고, 두 16진수의 행과 열이 교차하는 부분의 바이트 값을 출력한다[2].
병렬 SubBytes 함수 연산을 통해 나온 행렬 스테이트는 다시 병렬 ShiftRows 함수로 연산을 수행하는데, 그림 2와 같이 기존 AES 암호 알고리즘은 각 행을 순차적으로 연산하는 과정이었다. 하지만, 기존 AES의 ShiftRows 함수 또한 병렬 연산 이 가능한 함수이므로, 본 절에서는 병렬 ShiftRows 함수를 설계한다.
대상 데이터
본 논문에서 제안한 멀티코어 프로세서 기반의 병렬 AES 암호 알고리즘에 대한 성능을 평가한다. 성능 평가 및 분석을 위한 시스템 환경은 Intel Core2 CPU T5500 1.66GHz, 1GB RAM PC에서 Windows XP SP3 환경으로 구성하여 평가하였다.
데이터처리
그림 7 제안한 병렬 암호 알고리즘을 수행하면서 IPS 도구로 분석하였다. 분석결과 100MB 텍스트 파일을 암호화하기 위해 전체시간이 5.
제안한 암호 알고리즘과 기존의 암호 알고리즘에서 4가지 함수에 대한 복잡도를 비교하여 평가하였다. AES 암호 알고리즘의 SubBytes, ShiftRows, MixColumns에 대한 명령어 실행 횟수를 분석하여 복잡도를 산출 하였으며, 복잡도는 시간복잡도를 이용하여 비교 및 평가하였다.
평가 항목은 파일종류에 따른 기본적인 연산의 정상 수행을 확인하기 위한 암·복호화 결과 평가를 정성적 나타냈으며, 기존의 AES 암호 알고리즘과 본 논문에서 제안한 병렬 AES 암호 알고리즘을 시간 복잡도를 이용하여 효율성을 분석 하였으며, 프로파일링 툴을 통해 암호 알고리즘에 대한 성능을 분석하였다.
이론/모형
알고리즘 성능 분석을 위하여 IPS(Intel Parallel Studio) 프로파일링 도구를 사용하였다. 프로파일링 도구를 통하여 각 함수 별 수행시간 측정, 쓰레드의 정상적 생성 검사, 전체 수행시간 측정, 효율성 측정을 하였다.
성능/효과
이는 병렬화를 통한 문맥교환에 대한 오버헤드가 증가하고 빈번한 병렬처리 fork과 join으로 인한 오버헤드도 크기 때문이다. 33%의 단축된 속도는 상당히 향상된 수치이고, 복호화 연산도 동일한 수치를 나타냈다.
그림 11의 막대그래프 구간이 그림 8보다 줄어들었으며, ‘EncryptBlock’ 부분은 이상적인 부분으로써 효율성이 높고, 멀티 쓰레드가 생성되어 병렬 연산 수행을 나타낸다. 그림 14와 같이 생성된 쓰레드의 개수는 2개로 듀얼코어의 코어를 최대한 활용하여 효율적인 연산을 수행함으로써 시간이 단축됨을 검증하였다.
기존 AES 암호 알고리즘과 본 논문에서 제안한 알고리즘으로 암호화 및 복호화를 수행하였을 때 바이너리 값은 동일하였으며, 파일 포맷별로 암호화를 수행한 파일들은 해당 응용프로그램에서 확인이 불가능 하였다. 이는 암호화로 인한 결과로 나타낼수 있다.
이는 암호화로 인한 결과로 나타낼수 있다. 또한 복호화를 수행한 파일들의 바이너리 값도 동일하였고, 암호화한 파일과는 달리 해당 응용프로그램에서 정상적인 확인이 가능하였다. 제안한 알고리즘을 통해 생성된 암호문과 복호화한 평문은 기존의 AES 암호 알고리즘과 동일한 바이너리를 갖는 정상 수행을 확인하였다.
병렬 연산을 위해 OpenMP API를 활용하였고, 암·복호화 연산 수행시 자원 사용을 효율적으로 높였으며, 수행 속도 향상을 확인하였다.
그림 7 제안한 병렬 암호 알고리즘을 수행하면서 IPS 도구로 분석하였다. 분석결과 100MB 텍스트 파일을 암호화하기 위해 전체시간이 5.0127초로 기존 암호 알고리즘보다 2.4872초(7.4999초-5.0127초) 빨랐다. 약 33%의 속도 성능향상을 나타냈으며, 듀얼코어 프로세서 기반의 하드웨어에서 병렬처리는 50%의 성능향상을 기대 할 수 없다.
0127초) 빨랐다. 약 33%의 속도 성능향상을 나타냈으며, 듀얼코어 프로세서 기반의 하드웨어에서 병렬처리는 50%의 성능향상을 기대 할 수 없다. 이는 병렬화를 통한 문맥교환에 대한 오버헤드가 증가하고 빈번한 병렬처리 fork과 join으로 인한 오버헤드도 크기 때문이다.
기존 암호 알고리즘은 T(n)=23n+1, 제안 알고리즘은 T(n)=10n+n/2+10 의 시간복잡도를 갖는다. 이 시간복잡도 함수에서 해의 큰 영향을 미치는 항은 23n과 10n으로 n 값의 변화에 따라 두 함수 결과에 대한 격차가 커짐을 확인하였다.
제안한 병렬 연산 기법에 대한 성능과 시간복잡도를 통해 효율성을 분석하여 기존 알고리즘 신뢰적 수준 만족을 평가하였고, 프로파일링 툴을 통해 기존 암호화 알고리즘 보다 약 21%의 성능 향상이 있었으며, 암호화에 대한 보안 강도 또한 같음을 확인하였다.
또한 복호화를 수행한 파일들의 바이너리 값도 동일하였고, 암호화한 파일과는 달리 해당 응용프로그램에서 정상적인 확인이 가능하였다. 제안한 알고리즘을 통해 생성된 암호문과 복호화한 평문은 기존의 AES 암호 알고리즘과 동일한 바이너리를 갖는 정상 수행을 확인하였다.
이는 4개의 코어를 사용하는 쿼드코어 프로세서에서 처리하는 응용 프로그램의 병렬처리가 가능한 부분과 병렬처리가 불가능한 순차적인 부분에 의해 병렬화 처리에 대한 성능이 향상 되지 않는 한계가 존재하는 법칙이다. 처리해야 할 태스크의 20%를 병렬 처리로 구현할 때, 성능향상은 대략 1.176배의 성능향상을 나타낸다. 또한 같은 20% 병렬화 조건에서 코어의 수를 무한대(∞)로 증가하였을 경우, 최대 1.
후속연구
전자·정보 통신 기술의 발전으로 급격히 발전하고 있는 멀티코어 프로세서 환경에 필요한 암호화 알고리즘을 병렬연산이 가능함을 확인 하였으며, 나아가 서버나 개인 PC 환경에만 국한 된 것이 아니라, 모바일 기기에서 결제나, 인증 또는 금융 서비스에 적용하여 암호 알고리즘의 경량화로 인한 취약점 해소가 가능하며, 향후 연구과제로, 소형 멀티코어 프로세서 환경에 맞는 최적화된 병렬 연산 암호 알고리즘에 대한 연구가 필요한 것으로 판단한다.
질의응답
핵심어
질문
논문에서 추출한 답변
멀티코어 프로세서 기술이 등장하게 된 배경은?
멀티코어 프로세서 기술이 등장하게 된 배경에는 프로세서 속도를 기하급수적으로 증가시켜 성능을 높이는 방식이 한계에 도달하였다. Intel 사의 무어가 발표한 법칙에 따라 매년 프로세서의 성능이 기하급수적으로 성능이 빨라짐으로써 소프트웨어 성능 또한 향상되고, 이에 따라 시장규모도 기하급수적으로 성장하고 있다.
MixColumns은 무엇을 수행하는가?
MixColumns는 인접한 바이트들 안에 있는 비트를 기반으로 비트 값을 변환하는 함수이다. 즉, 바이트 내부 변환을 수행하는 바이트 섞음을 수행한다. 행렬에서 열 단위 연산을 순차적으로 수행하고, 각 스테이트의 열을 새로운 열로 변환을 한다.
SubBytes 함수는 무엇인가?
SubBytes 함수는 AES 암호 알고리즘의 암호화 과정에서 사용하는 대치함수를 말한다[3]. 하나의 바이트를 대체하기 위해 각 바이트를 4비트씩 2개의 16진수로 계산하여 왼쪽 4비트를 S-Box의 행으로 오른쪽 4비트 열로 S-Box 테이블에서 읽고, 두 16진수의 행과 열이 교차하는 부분의 바이트 값을 출력한다[2].
참고문헌 (13)
L. Di e, W., and Hellman, M., "New Direction in Cryptography," IEEE Trans. Inform. Theory IT-22, pp.644-654, 1976
Behrouz A. Forouzan, "Cryptography and Network Security", McGraw Hill. 2007.
William Stallings, "Cryptography and Network Security, Principles and Practices", 4th ed. Pearson Education, 2006.
L. T. Smit. G. K. Rauwerda, A. Molderink, P. T. Wolkotte, G. J. M. Smit, "Implementation of A 2-D 8x8 IDCT on The Reconfigurerable Montium Core," International Conference on Field Programmable Logic and Applications, 2007, pp.562-566, Aug. 2007.
Feng Liu and Vipin Chudhary, "Extending OpenMP for Heterogeneous Chip Multiprocessors," Proceedings of the 2003 International Conference on Parallel Processing, Kaohsiung, Taiwan, pp.161-165, Oct. 2003.
Amdahl, G.M. "Validity of the Single-Processor Approach to Achieving Large Scale Computing Capabilities," In AFIPS Conference Proceedings, AFIPS Press, pp. 483-485, Apr. 1967.
J.M. Paul and B.H. Meyer, "Amdahl' Law Revisited for Single Chip Systems," International Journal of Parallel Programming, Vol. 35, No.2, pp.101-123, Apr. 2007.
Audenaert. K., "Maintaining Concurrency Information for On-the-fly Data Race Detection," Parallel Computing 97, North-Holland, pp.1-8, Sept. 1997.
OpenMP Architecture Review Board, "OpenMP Fort ran Application Program In-terface Version 2.0," Nov. 2000.
Fei Cai, Shaogang Wu, Longbing Zhang and Zhiming Tang, "Parallel Program Performance Evaluation and Their Behavior Analysis on An OpenMP Cluster," IEEE International Symposium on Cluster Computing and the Grid(CCGrid 2004), pp.508-514, Apr. 2004.
Dagum, L, and R. Menon, "OpenMP: An Industry-Standard API for Shared-Memory Programming," IEEE Computational Science and Engineering, Vol. 5, No. 1, pp.46-55, Mar. 1998.
Vassilios V. Dimakopoulos and Elias Leontiadis, "A portable C Compiler for OpenMP V.2.0" In the proceeding of 5th European Workshop on OpenMP(EWOMP 2003), Aachen, Germany, pp.5-11, Sept. 2003.
M. D. Jones, R. Yao, and C. P. Bhole, "Hybrid MPI-OpenMP Programming for Parallel OSEM PET Reconstruction," IEEE Transactions on Nuclear Science, Vol. 53, No. 5, pp.2752-2758, Oct. 2006.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.