본문 바로가기 주메뉴 바로가기
국회도서관 홈으로 정보검색 소장정보 검색

결과 내 검색

동의어 포함

목차보기

표제지

목차

국문요약 10

Abstract 12

제1장 서론 14

제2장 본론 16

제1절 배경지식 16

1.1. 현대 암호체계 17

1.2. 양자내성암호(Post-Quantum Cryptography) 17

1.3. 격자-기반(Lattice-based) 암호 20

1.4. Ring-LWE 20

1.5. Module-LWE 23

제2절 Crystals-KYBER 암호화 알고리즘 24

2.1. Crystals-KYBER 알고리즘 25

2.2. Key Generation 25

2.3. Encryption 26

2.4. Decryption 28

2.5. Hash 29

2.6. Binomial Sampling 30

2.7. Rejection sampling 31

2.8. Encode 32

2.9. Compress 33

2.10. Barrett Reduction 33

2.11. Dadda Tree Reduction 34

제3절 NTT 알고리즘 36

3.1. NTT 다항식 곱셈기 36

3.2. Cooley-Tukey 알고리즘 37

3.3. Gentleman-Sande 알고리즘 38

3.4. 파이프라인-기반 NTT 구조 39

3.5. 1-Round Preprocess-then-NTT 40

제4절 Crystals-KYBER 암호 아키텍처 42

4.1. Crystals-KYBER 아키텍처 42

4.2. Crystals-KYBER 세부 모듈 44

제5절 구현 및 성능 비교 55

5.1. Crystals-KYBER 암호 아키텍처 검증 55

5.2. 제안하는 Crystals-KYBER 아키텍처의 성능 분석 및 비교 59

제3장 결론 63

참고문헌 64

표목차

표 1. 양자내성암호 공모전 3차 후보군 19

표 2. 양자내성암호 공모전 최종 채택 알고리즘 19

표 3. Crystals-KYBER 파라미터 24

표 4. 제안하는 Configurable Crystals-KYBER 아키텍처의 구현 및 성능 분석(key/enc/dec) 60

표 5. 제안하는 Crystals-KYBER 아키텍처의 Security level 1 성능 비교 61

표 6. 제안하는 Crystals-KYBER 아키텍처의 Security level 3 성능 비교 61

표 7. 제안하는 Crystals-KYBER 아키텍처의 Security level 5 성능 비교 62

그림목차

그림 1. 대칭키 암호 시스템 17

그림 2. 공개키 암호 시스템 18

그림 3. 격자의 예 20

그림 4. Ring-LWE 암호 21

그림 5. Ring-LWE 기반 암호 시스템 블록도 22

그림 6. Module-LWE 암호 23

그림 7. Keccak 스펀지 함수 29

그림 8. Cooley-Tukey 알고리즘의 Dataflow 38

그림 9. Gentleman-Sande 알고리즘의 Dataflow 39

그림 10. 반복 방식 NTT 아키텍처 40

그림 11. 파이프라인 방식 NTT 아키텍처 40

그림 12. 제안된 Crystals-KYBER 암호 아키텍처 블록도 42

그림 13. Key Generation 동작 Timing Diagram 43

그림 14. Encryption 동작 Timing Diagram 43

그림 15. Decryption 동작 Timing Diagram 43

그림 16. Hash Sampling 코어 구조 44

그림 17. Rejection Sampler 구조 45

그림 18. Binomial Sampler 구조 46

그림 19. Barrett Reduction 구조 46

그림 20. Dadda Tree Reduction 구조 47

그림 21. Butterfly Unit 구조 48

그림 22. NTT 구조 48

그림 23. INTT의 구조 49

그림 24. Bow-tie Multiplication 구조 50

그림 25. Compress 구조 51

그림 26. Decompress의 구조 52

그림 27. Encoder 구조 53

그림 28. Decoder 구조 53

그림 29. Message Encoder 구조 54

그림 30. Message Decoder의 구조 54

그림 31. Secret Key 값 시뮬레이션 결과 (k=2) 56

그림 32. Secret Key 값 시뮬레이션 결과 (k=3) 56

그림 33. Secret Key 값 시뮬레이션 결과 (k=4) 56

그림 34. Public Key 값 시뮬레이션 결과 (k=2) 56

그림 35. Public Key 값 시뮬레이션 결과 (k=3) 56

그림 36. Public Key 값 시뮬레이션 결과 (k=4) 57

그림 37. Cipher Text 값 시뮬레이션 결과 (k=2) 57

그림 38. Cipher Text 값 시뮬레이션 결과 (k=3) 57

그림 39. Cipher Text 값 시뮬레이션 결과 (k=4) 57

그림 40. Crystals-KYBER 전체 시뮬레이션 파형 (k=2) 58

그림 41. (a) Key Genration Secret Key 출력, (b) Key Generation Public Key 출력 58

그림 42. (a) Encryption 입력, (b) Encryption 출력 58

그림 43. Decryption 입력 59

그림 44. Decryption 출력 59

초록보기

본 논문에서는 양자내성암호인 Crystals-KYBER 암호화 알고리즘의 하드웨어 아키텍처를 제안하고 FPGA를 이용하여 하드웨어로 구현한다. Crystals-KYBER 암호 알고리즘은 미국 국립표준기술연구소(National Institute of Standards and Technology, NIST)에서 개최한 양자내성암호의 표준화를 위한 공모전의 최종 채택 알고리즘이다. 격자-기반으로 설계되어 높은 보안성과 빠른 키 생성 속도를 갖는다. 이에 더하여 Module-LWE 기법을 이용하여 암호문과 공개키, 비밀키의 크기를 줄였으며 보안 등급 조절에 유연성(Flexibility)을 갖는다.

Crystals-KYBER 암호 알고리즘은 공개키와 비밀키를 생성하는 Key generation 동작, 메시지를 암호화하는 Encryption 동작, 암호문을 해독하는 Decryption 동작, 총 3가지로 구성된다.

Crystals-KYBER 암호 알고리즘은 복수의 보안 수준을 지원한다. NIST에서 지정한 보안 수준은 AES-128(level 1), AES-196(level 3), AES-256(level 5)의 보안 수준을 각각 요구하였다. Crystals-KYBER에서는 보안 수준을 지원하기 위하여 Module-LWE의 성질을 이용하여 key와 암호문 벡터의 크기를 변환시킨다. 각각의 보안 등급은 암호화 강도와 속도에 영향을 미치기 때문에 효율과 보안성을 고려하여 사용자가 조절할 수 있어야한다.

제안하는 Crystals-KYBER 암호 아키텍처는 가변적으로 설계되어 사용자의 선택에 따라 보안 등급을 조절할 수 있고, 필요한 동작에 따라 공개키와 비밀키를 생성하는 Key generation 동작, 메시지를 암호화하는 Encryption 동작, 암호문을 해독하는 Decryption을 수행할 수 있는 구조로 설계되었다.

제안된 재구성형 Crystals-KYBER 암호 아키텍처는 Xilinx VIVADO 툴과 Virtex-7 FPGA 플랫폼에서 구현하였고 이를 통해 성능의 측정 및 검증을 진행한다. 제안된 구조는 FPGA 구현 후 LUT, Flip-Flop, DSP48e, Block RAM의 하드웨어 자원 사용량과 동작 시간, 동작 주파수, 데이터 처리량을 통해 성능을 분석한다.