Skip to content

태그: 암호화

총 9개의 글이 있습니다.
정수론부터 RSA까지
공부
RSA는 대표적인 비대칭 암호화 방식 중 하나이다. RSA의 기반이 되는 정수론 개념과 암호화 원리를 알아보자. 군 RSA를 이해하기 위해선 우선 군(group)이 무엇인지 알아야 한다. 오늘날 RSA를 비롯한 많은 암호화 방식이 군론을 기반으로 한다. 개념은 어렵지 않다. 군이란, 아래 규칙에 맞게 원소의 집합과 연산(덧셈, 곱셈)을 정의한 것이다. 닫힘: 집합 안의 두 원소를 연산했을 때, 그 결과가 군 안에 속해야 한다. 결합법칙: 여러 원소에 대한 연산을 임의의 순서로 수행할 수 있다. (e.g. (a+b)+c = a+(b+c)) 항등원: 특정 원소와 항등원을 연산한 결과가 그 원소 자신이 되어야 한다. (e.g. a+0=a, 이 경우 항등원 0이 군 내에 존재함) 역원: 두 원소를 연산한 결과가
RSA
암호화
RSA는 Ron Rivest, Adi Shamir, Leonard Adleman에 의해 1977년 개발된 최초의 실용적인 공개 키 암호화 알고리즘이다. 두 큰 소수를 곱하는 것은 쉽지만, 그 결과를 소인수분해하는 것은 계산적으로 매우 어렵다는 수학적 난제를 기반으로 한다. 충분히 큰 키 크기를 사용하면 현재 알려진 알고리즘으로는 현실적인 시간 내에 해독이 불가능하다. 키 생성 과정 RSA 키 쌍을 생성하는 단계는 다음과 같다: 두 소수 선택 두 개의 큰 소수 p와 q를 무작위로 선택한다. 실제 사용에서는 각각 1024비트 이상의 소수를 선택한다. 모듈러스 계산 n = p × q를 계산한다. n은 공개 키와 개인 키 모두에 포함되는 모듈러스이다. 오일러 피 함수 계산 φ(n) = (p-1)
서명과 영지식 증명
암호화
암호학에서는 서명을 Digital signature(디지털 서명) 또는 Signature scheme(서명 체계)이라 한다. 서명 체계는 일반적으로 다음 세 가지 알고리즘으로 구성된다. 서명자가 새로운 비밀키(서명키)와 공개키(검증키)를 생성하는 데 사용하는 키 쌍 생성 알고리즘 비밀키와 메시지를 사용하여 서명을 생성하는 서명 알고리즘 공개키, 메시지, 서명을 사용하여 성공 또는 오류 메시지를 반환하는 확인 알고리즘 서명은 메시지의 원본과 메시지의 무결성을 인증하는 데 유용하다. 원본(origin): 내 서명이 있는 경우 내가 보낸 것이다. 무결성(integrity): 누군가가 메시지를 수정하면 서명이 무효화된다. MAC에서 생성된 인증 태그는 타이밍 공격을 피하기 위해 상수 시간에 검
대칭암호화
암호화
AES (Advanced Encryption Standard) 현재 가장 널리 사용되는 대칭 암호화 표준이다. NIST에서 2001년 표준으로 채택되었으며, 이전 암호화 표준이었던 DES를 대체했다. 128비트의 평문을 128비트의 암호문으로 암호화한다. 고정된 크기의 평문을 암호화하기 때문에 블록 암호(Block cipher) 내부 동작 AES는 암호화 과정에서 평문의 state를 4*4 행렬로 본다. 여러 번 반복하는 라운드 함수에서, 라운드별로 (기본 대칭키에서 파생된) 각각 다른 라운드 키를 사용한다. 이를 통해 대칭 키의 비트를 약간만 변경함녀 완전히 다른 암호화가 가능하다 (확산 diffusion) 각 라운드엔 4개의 내부 단계가 있다. SubBytes: S-box를 사
비대칭암호화
암호화
비대칭 암호화는 공개 키와 개인 키라는 두 개의 서로 다른 키를 사용하는 암호화 방식이다. 공개 키로 암호화한 데이터는 개인 키로만 복호화할 수 있다. 공개 키는 안전하지 않은 채널로 전송해도 안전하다. n명이 통신하려면 n개의 키 쌍만 필요하다. (대칭 암호화는 n(n-1)/2개) RSA (Rivest-Shamir-Adleman) 1977년 개발된 최초의 실용적 공개 키 암호 시스템이다. 큰 소수의 곱셈은 쉽지만, 그 결과를 소인수분해하는 것은 계산적으로 어렵다는 원리를 이용한다. 키 생성 두 개의 큰 소수 p, q를 선택한다. n = p × q를 계산한다. (공개 모듈러스) φ(n) = (p-1)(q-1)을 계산한다. φ(n)과 서로소인 e를 선택한다. (공개 지수, 보통 65537
해시와 MAC
암호화
해시 함수 해시 함수는 데이터를 입력으로 받고 고유한 바이트 문자열을 생성한다. 출력을 다이제스트, 혹은 해시라고 한다. 해시의 특징 3가지가 있다. 역상 저항성(Preimage resistance): 역상(Preimage == y) 추측에 저항하는(Resistance) 성질 최초, 해시값(y)이 확인된 상태 입력값(x)을 찾는 것은 계산적으로 불가능 제2 역상 저항성(Second preimage resistance): 역상 추측에 저항하는 성질 최초, 입력값(x)이 확인된 상태 동일한 해시값(y)이 나오는 다른 입력값(x’)을 찾는 것은 계산적으로 불가능 충돌 저항성(Collision resistance): 서로 다른 입력값 추측에 저항하는 성질. 서로 다른 입력값은 동일한 해시값을