ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • KMS10 : C language RSA 키 연산 결과 보고(Arduino Due 순정)
    Program_Light 2021. 4. 17. 13:00

    KMS10 : RSA algorithm

    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에 최종적으로 수정된, 작성자의 전 네이버 블로그 글에 그 기반을 둡니다

하면된다 學業報國