KMS10 : C language RSA 키 연산 결과 보고(Arduino Due 순정)
2020년 2월에 기회가 생겨 RSA알고리즘이라는 것을 접하게 되었다. 이 알고리즘을 5달 반동안 개발하며, RSA를 거의 완벽하게 구현하여, 프로젝트를 마무리 지으며 최종결과 포스팅을 올린다.
이 글을 쓰는 시점에서 RSA과 ECC의 기반이 되는 2048bit 정수 변수 라이브러리를 모두 비공개로 전환했습니다.
그 이유는 이번에 제 스승님께 제가 만든 프로그램 배포에 관해 물었더니
극구 반대를 하시길래 기존에 공개되어있던 프로그램 까지 모두 비공개로 바꾸었습니다.(다시 보니 별 특별한 기술은 없더군요. 다행)
그래서 이번에는 소스를 제외하고, RSA키 생성 프로그램 결과만을 소개하려고 합니다.
제목에서와 같이 Arduino Due순정에서 테스트 하였으며, 설치한/삭제한 라이브러리는 듀에 라이브러리 하나 뿐입니다.
/*
made by KMS_STUDIO
KMS10_RSA_algorithm_10_0_Clock_progect
made by 2020 KMS studio(Myung Seok Kang)
20year 07m 18d 03h 42m 21s ~ 20year m d h m s(just 10.0 ver)
Copyright 2020 KMS studio all rights reserved.
thanks for Kyung Taek Park
Si Hyun Kim
*/
KMS10 10.3 CLOCK
Arduino Due 사양
우선 아두이노 듀에 사양을 보고 가도록 하겠습니다.(정말 간단하게만 알아봅시다.)
칩 : ARM Cortex -M3(AT91SAM3X8E)
입력전압 : 6~16V
falsh : 512kB
SRAM : 96KB
클럭 : 84MHz
RSA 2048 시간
20000번 산출 후 계산하였슴. 입력은 2048자리 소수
(단위는 milliseconds)
최저값 | 6 |
최고값 | 24 |
평균값 | 약 11.09 |
+ 추가로 8192까지 테스트해서 자랑같은걸 해볼라 했는데 100ms대가 나오는 상황이라 알고리즘 정리하고 더 쓰겠습니다
추가정보
메모리에 관해서는 최근 테스트를 해보지 않아 잘 모르겠으나, 이 버전의 전 전 버전 기준으로 약36000bit까지 RSA가 잘 돌아갔다.
이 프로그램은 내가 보안에 대해 1도 모르던 상태에서 2020년 2월초에 시작했다. 즉 이 프로젝트는 5개월 반 쯤 한 것이다.
이 프로젝트는 10.3까지의 버전이 나왔다. 자랑을 하자면 1.0에 비해 약 1500배 이상 성능이 향상되었다.
위에서 안한 예기를 하자면 RSA8192는 150ms정도가 나온다.(전 버전보다 오히려 시간이 늘어나서 다시 고치는 중이다.)
+ 60ms정도로 줄였으나 30ms정도까지 줄이고 다시 포스트 쓰겠다.
+ 2021/1/12, 약 45ms정도로 줄였다.
*이 글은 2020. 7. 28에 작성되고 2020.9.19에 최종적으로 수정된, 작성자의 전 네이버 블로그 글에 그 기반을 둡니다