티스토리 뷰
728x90
암호화 모듈 개발 프로젝트 계획서
1. 프로젝트 개요
- 프로젝트 명: 암호화 모듈 개발 (CMVP 인증 목표)
- 개발 언어: C/C++
- 목표: ARIA, RSA-2048, SHA-256, SHA-1 알고리즘을 직접 구현하고, CMVP(FIPS 140-2/140-3) 인증 기준에 맞는 난수 생성기(RNG) 개발
- 제약 사항: 오픈소스 사용 금지
2. 프로젝트 범위
- 암호화 알고리즘 구현
- ARIA (256비트 암호화 지원)
- RSA-2048 (공개 키 기반 암호화)
- SHA-256, SHA-1 (해시 알고리즘)
- 난수 생성기(RNG) 개발
- AES-CTR 기반 DRBG 직접 구현 (NIST SP 800-90A 준수)
- 엔트로피 수집을 위한 하드웨어 기반 소스 또는 시스템 타이머(RDTSC) 활용
- 자체 테스트 기능(Self-test)
- 초기화 및 재시드(reseed) 기능 구현
- 동작 중 실패 감지 및 복구 로직 포함
- SIMD 확장 버전 개발
- 기본 C/C++ 연산 기반 버전과 SIMD(Single Instruction, Multiple Data) 명령어 셋을 활용한 최적화 버전 개발
3. 기술 요구사항
- CSPRNG (Cryptographically Secure Pseudorandom Number Generator) 설계
- NIST SP 800-90A 기준 DRBG 구현 (CTR-DRBG, HMAC-DRBG, Hash-DRBG 중 CTR-DRBG 우선 적용)
- 초기화 시 시스템 엔트로피 소스를 활용한 난수 수집
- RSA 키 생성
- 소수 생성 알고리즘(밀러-라빈 테스트) 직접 구현
- 키 페어 생성 및 공개/개인 키 관리 모듈 작성
- SHA-256, SHA-1
- 직접 구현한 해시 알고리즘으로 데이터 무결성 검증 기능 제공
- ARIA 알고리즘
- KISA 표준 ARIA 암호화 알고리즘 직접 구현 (128, 192, 256비트 키 길이 지원)
- SIMD 확장
- AES-NI, AVX, SSE4 등 SIMD 명령어 셋을 사용해 암호화 및 해시 알고리즘 속도 향상
4. 개발 일정
- 1주차: 프로젝트 초기 설계 및 난수 생성기 설계 (AES-CTR 기반 DRBG 설계)
- 2~3주차: AES-256 알고리즘 직접 구현 및 DRBG 모듈 작성 (일반 버전)
- 4주차: SHA-256, SHA-1 알고리즘 구현 (일반 버전)
- 5주차: RSA-2048 키 생성 및 암호화 모듈 개발 (일반 버전)
- 6주차: ARIA 알고리즘 설계 및 개발 (일반 버전)
- 7주차: SIMD 명령어 셋을 이용한 AES, SHA-256, ARIA 등 최적화 버전 개발
- 8주차: 자체 테스트 및 디버깅, CMVP 요구사항 검토 및 보완
5. 기대 성과
- 오픈소스 사용 없이 순수 C/C++로 암호화 모듈 개발 완료
- FIPS 140-2/140-3 기반 난수 생성기 구현 완료
- RSA, SHA, ARIA 알고리즘이 포함된 보안 모듈 개발 및 CMVP 인증 준비 완료
- SIMD 명령어를 활용해 성능이 향상된 고속 암호화 및 해시 모듈 구현
6. 리스크 및 대응 방안
- 리스크:
- 난수 생성기의 안전성 확보 어려움
- 알고리즘 구현 시 성능 저하 가능성
- SIMD 명령어 활용 시 하드웨어 종속성 증가
- 대응 방안:
- 초기 설계 단계에서 NIST 문서 및 KISA 자료를 철저히 분석
- 하드웨어 엔트로피 소스를 병행 활용해 예측 불가능성 확보
- SIMD 명령어와 일반 연산을 분리해 모듈화, 환경에 따라 선택 가능하도록 설계
7. 팀 구성 및 역할
- 프로젝트 매니저: 일정 관리 및 요구사항 수립
- 암호화 개발자: 알고리즘 설계 및 구현
- 시스템 엔지니어: 엔트로피 소스 및 하드웨어 접근 모듈 개발
- QA 엔지니어: 자체 테스트 및 CMVP 요구사항 검증
- 최적화 엔지니어: SIMD 명령어를 활용한 암호화 알고리즘 최적화
8. 결론
본 프로젝트는 오픈소스를 배제하고 순수 C/C++로 암호화 모듈을 직접 개발하여, 국가 공인 인증(CMVP)을 목표로 진행됩니다. 일반 연산 버전과 SIMD 확장 버전을 모두 개발해 다양한 환경에서 최적의 성능을 보장할 계획입니다. 이를 통해 고유의 보안 솔루션을 확보하고, 향후 상용화 및 다양한 보안 프로젝트에 활용될 예정입니다.
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 블루버블다이빙팀
- 제주도
- Build
- ip
- Linux
- 스쿠버다이빙
- 현포다이브
- C
- PowerShell
- 블루버블다이브팀
- 암호화
- 리눅스
- Windows
- C# 고급 기술
- C#
- 외돌개
- 블루버블
- OpenSource
- 울릉도
- 스쿠버 다이빙
- Thread
- 성산블루버블
- C#.NET
- 서귀포블루버블
- CMake
- 패턴
- C++
- 윈도우
- DLL
- 서귀포
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함
250x250