표제지
국문요약
Abstract
목차
제1장 서론 18
제2장 본론 22
제1절 배경 지식 22
1.1. 대칭키 암호 23
1.2. 공개키 암호 23
1.3. NIST(National Institute of Standards and Technology) 양자내성암호 공모전 24
1.4. 격자-기반(Lattice-based) 암호 알고리즘 26
1.5. Module-LWE 암호 시스템 27
1.6. 해시 함수 28
제2절 Crystals-Kyber 암호 알고리즘 30
2.1. Crystals-Kyber 알고리즘 31
2.2. Key Generation 알고리즘 33
2.3. Encryption 알고리즘 33
2.4. Decryption 알고리즘 35
2.5. Rejection Sampling 알고리즘 36
2.6. Binomial Sampling 알고리즘 39
2.7. Decode 알고리즘 40
2.8. Montgomery reduction 알고리즘 40
2.9. Barrett reduction 알고리즘 41
제3절 NTT 코어 아키텍처 43
3.1. NTT-기반 다항식 곱셈기 43
3.2. 파이프라인-기반 NTT 구조 46
제4절 Crystals-Kyber 암호 아키텍처 51
4.1. Crystals-Kyber 아키텍처 51
4.2. Crystals-Kyber 세부 모듈 53
4.3. Key generator 66
4.4. Encryptor 67
4.5. Decryptor 68
제5절 구현 및 성능 비교 70
5.1. Crystals-Kyber 암호 아키텍처 시뮬레이션 결과 70
5.2. 제안된 Crystals-Kyber-1024 암호 아키텍처 구현 결과 분석 75
제3장 결론 78
참고문헌 80
표 1. 양자내성암호 표준 공모전 후보군 종류 25
표 2. Crystals-Kyber 파라미터 30
표 3. Crystals-Kyber 에서 사용하는 SHA3 의 입력 크기 53
표 4. 입력 메시지(Crystals-Kyber Cryptography~ :D)의 ASCII 코드표 71
표 5. 제안된 2-병렬 MDF NTT를 사용한 Crystals-Kyber-1024 암호 아키텍처의 각 모듈별 구현 결과 (Virtex-7 VC707 FPGA 사용) 75
표 6. 제안된 2-병렬 MDF NTT 를 사용한 Crystals-Kyber-1024 암호 아키텍처 성능 비교 76
표 7. Virtex-7 에 구현된 Crystals-Kyber-1024 와 CPU 간의 동작 시간 비교 77
그림 1. 대칭키(Symmetric key) 암호 시스템 22
그림 2. 공개키(Public key) 암호 시스템 24
그림 3. Ring-LWE 기반의 암호 시스템 블록도 27
그림 4. Cooley-Tukey 알고리즘 신호 흐름 (n = 8) 45
그림 5. Gentlemen-Sande 알고리즘 신호 흐름 (n = 8) 45
그림 6. NTT-기반 다항식 곱셈기 블록도 46
그림 7. NTT-기반 다항식 곱셈기 타이밍도 46
그림 8. SDF 기반 NTT 신호 흐름 (n = 64) 47
그림 9. SDF 기반 NTT 구조 (n = 64) 48
그림 10. 2-병렬 MDF NTT 신호 흐름 (n = 64) 49
그림 11. 2-병렬 MDF NTT 구조 (n = 64) 49
그림 12. Crystals-Kyber 공개키 암호 아키텍처 블록도 52
그림 13. PRNG 코어 모듈 구조 54
그림 14. Rejection Uniform 구조 54
그림 15. CBD(Centered Binomial Distribution) 구조 55
그림 16. Montgomery Reduction 구조 56
그림 17. Barrett Reduction 구조 57
그림 18. 7-stage 2-병렬 MDF NTT 구조 (n=256, q=3329) 58
그림 19. Processing Element(NTT) 구조 58
그림 20. Butterfly Unit(BU) 구조 58
그림 21. 7-stage 2-병렬 MDF INTT 구조 (n=256, q=3329) 59
그림 22. Processing Element(INTT) 구조 59
그림 23. Compress 구조 60
그림 24. Compress Element(CE) 구조 61
그림 25. Decompress 구조 62
그림 26. Decompress Element(DE) 구조 62
그림 27. Encoder 구조 63
그림 28. Decoder 구조 64
그림 29. Message Encoder 구조 64
그림 30. Message Decoder 구조 64
그림 31. Base multiplier 구조 65
그림 32. Accumulator 구조 66
그림 33. Key generator 구조 67
그림 34. Encryptor 구조 68
그림 35. Decryptor 구조 69
그림 36. Key generator로 생성한 비밀키(sk) 값 시뮬레이션 결과 72
그림 37. Key generator로 생성한 공개키(pk) 값 시뮬레이션 결과 72
그림 38. Encryptor 모듈의 입력 값 73
그림 39. Encryptor 모듈로 암호화한 암호문 결과 73
그림 40. Decryptor 모듈로 복호화한 메시지 결과 74