Java에서 RSA 비대칭 암호화 알고리즘 구현 방법
RSA는 공개키와 개인키를 사용하는 대표적인 비대칭 암호화 알고리즘입니다. 공개키로 암호화한 데이터는 개인키로만 복호화할 수 있으며, 반대의 경우도 가능합니다.
RSA 주요 특징
공개키와 개인키는 서로 독립적으로 생성되며 상호 변환 불가
암호화와 디지털 서명 기능 모두 제공
대칭키 암호화 방식보다 상대적으로 느림
Java RSA 구현 예제
키 생성 클래스
im ...
9월 14일 16:24에 게시됨
RSA 이중 암호화 구조 분석 및 Coppersmith 공격을 이용한 복호화
문제 구조 분석
제공된 코드는 두 개의 RSA 암호화 시스템으로 구성됩니다. 첫 번째 시스템(소문자 변수)은 flag 암호화에, 두 번째 시스템(대문자 변수)은 첫 번째 시스템의 모듈러스 n을 암호화하는 데 사용됩니다. 두 번째 시스템에서는 P와 Q의 관계에 대한 힌트(gift)가 제공됩니다.
키 복구 공격
gift 값은 P XOR (Q >> 16)으로 정의됩니다. 이를 이용해 Q의 상위 1 ...
9월 12일 12:06에 게시됨
JWT 기반의 무상태 인증 시스템 설계 및 구현
JWT의 핵심 개념
JSON Web Token(JWT)은 애플리케이션 간에 안전하게 정보를 전달하기 위한 표준 형식입니다. 주로 사용자 인증, 정보 공유 및 권한 부여 등에 활용되며, 서버 상태를 유지하지 않는 무상태 아키텍처에서 적합합니다.
JWT의 구성 요소
헤더(Header): 토큰 유형과 서명 알고리즘을 정의합니다. 예: {"typ": "JWT", "alg": "RS256"}
페이로드(Payload): 실 ...
7월 29일 13:33에 게시됨
2023 "技能兴鲁" 직업기능대회 - 네트워크 보안 Crypto Writeup
BabyRSA: 공통 모듈러스 공격(Common Modulus Attack)
BabyRSA 문제는 동일한 모듈러스 $n$을 사용하고 서로 다른 공개키 $e_1, e_2$로 암호화된 두 개의 암호문 $c_1, c_2$가 주어졌을 때, 메시지 $m$을 복구하는 문제입니다. $gcd(e_1, e_2) = 1$인 경우 확장 유클리드 알고리즘을 사용하여 $s_1 e_1 + s_2 e_2 = 1$을 만족하는 $s_1, s_2$를 구할 수 있으며, 이를 통해 ...
7월 20일 07:10에 게시됨
RSA 암호화에서의 특정 취약점 분석 및 해독
RSA 암호화 시스템에서 발생하는 몇 가지 흥미로운 취약점을 분석하고 이를 이용해 암호문을 해독하는 방법을 살펴보겠습니다. 특히, 소인수 $p$와 $q$가 매우 가까운 경우를 다루는 기법에 초점을 맞춥니다.
취약점 분석: $p$와 $q$의 근접성
RSA의 공개키는 모듈러스 $n$과 공개 지수 $e$로 구성됩니다. 여기서 $n = p \times q$이며, $p$와 $q$는 큰 소수입니다. 만약 $ ...
6월 10일 20:51에 게시됨