PromleeBlog
sitemap
aboutMe
Menu
Welcome to
✨ Promlee Blog ✨
View 📈
Total: -
Today: -
추천 포스트
개인학습
정보보호이론
공개 키 암호화
공개 키 암호화 개요
공개 키 암호화 개요
Overview of Public Key Cryptography
📅
🚀
공개 키 암호화란? (What is Public Key Cryptography?)
🔗
암호화에 사용되는 키와 복호화를 위한 키는 다르다.
RSA, ElGamal, NTRU 등이 있다.
장점: 키 공유가 쉽고, 키의 수가 적다.
단점: 대칭키 암호화보다 느리다.
🚀
공개 키 암호화의 정의 (Definition of Public Key Cryptography)
🔗
정의: 공개 키 암호화 PKE는 다음과 같은 알고리즘들로 구성된다.
KeyGen(λ): 보안 파라미터 λ를 입력으로 받아 (pk, sk)를 출력한다.
Enc(pk, M): 공개 키 pk와 평문 M을 입력으로 받아 암호문 C을 출력한다.
Dec(sk, C): 개인 키 sk와 암호문 C을 입력으로 받아 평문 M을 출력한다.
정확성
공개 키 암호화 PKE는 다음이 성립할 때 정확하다고 한다. 보안 파라미터 λ와 모든 평문 M에 대해,
👨💻
D
e
c
(
s
k
,
E
n
c
(
p
k
,
M
)
)
=
M
Dec(sk, Enc(pk, M)) = M
Dec
(
s
k
,
E
n
c
(
p
k
,
M
))
=
M
여기서 (pk, sk)는 KeyGen(λ)의 출력이다.
🚀
공개 키 암호화를 위한 보안 모델 (Security Model for Public Key Cryptography)
🔗
도전자 C와 적대자 A 사이의 게임을 고려하자
A의 목표는 공개 키 암호화를 해독하는 것이다. - 즉, 암호문에서 평문 M을 찾는 것이다.
Setup : 도전자 C는 보안 파라미터 λ를 입력으로 받아 (pk, sk)를 출력한다.
그 중, 공개 키 pk를 A에게 전달한다.
Phase1: A는 C에게 복호화 쿼리 요청을 보낸다.
즉, A는 임의의 암호문
C
i
C_i
C
i
를 C에게 보내고, C는
D
e
c
(
s
k
,
C
i
)
=
M
i
Dec(sk, C_i) = M_i
Dec
(
s
k
,
C
i
)
=
M
i
을 반환한다.
Challenge: A는 두 평문
M
0
,
M
1
M_0, M_1
M
0
,
M
1
을 선택하고, C는 둘 중 하나를 선택해(
b
∈
{
1
,
2
}
b \in \{1, 2\}
b
∈
{
1
,
2
}
)
E
n
c
(
p
k
,
M
b
)
=
C
b
Enc(pk, M_b) = C_b
E
n
c
(
p
k
,
M
b
)
=
C
b
를 반환한다.
이때, A는 어떤 평문에 해당하는 암호문인지
b
b
b
를 추측한다.
Phase2: A는 C에게 복호화 쿼리 요청을 보낸다.
즉, A는 임의의 암호문
C
i
C_i
C
i
를 C에게 보내고, C는
D
e
c
(
s
k
,
C
i
)
=
M
i
Dec(sk, C_i) = M_i
Dec
(
s
k
,
C
i
)
=
M
i
을 반환한다.
A는
b
b
b
를 추측하고, 이 추측이 맞는지 확인한다.
A
d
v
P
K
E
(
λ
)
=
P
r
[
b
=
b
′
]
−
1
2
Adv_{PKE}(\lambda) = Pr[b = b'] - \frac{1}{2}
A
d
v
P
K
E
(
λ
)
=
P
r
[
b
=
b
′
]
−
2
1
👍
공개 키 암호화 체계는 적이 보안 파라미터에서 중요하지 않은 이점을 가질 수 없을 때 IND-XXX 안전하다.
XXX: 적대자에게 허용된 복호화 오라클에 의해 결정된다.
CPA(Ciphertext Only Attack): 암호문만을 이용하여 평문을 찾는 공격
CCA(Chosen Ciphertext Attack): 임의의 암호문을 복호화하는 공격
CCA2: 암호문을 복호화하는 공격과 복호화 오라클을 이용하는 공격
🚀 공개 키 암호화란?
🚀 공개 키 암호화의 정의
🚀 공개 키 암호화를 위한 보안 모델