-
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #31 from decipherhub/basic-cryptography
- Loading branch information
Showing
5 changed files
with
63 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
## Intuition | ||
|
||
$y = sx$인 직선을 고려하자. 여기서 $s$는 비밀 키이다. 이 직선 위의 점 $(a_i, b_i)$가 주어지면, 비밀 $s$를 쉽게 복원할 수 있다. Learning With Errors (LWE) 문제는 세 가지 조건을 추가하여 이 문제를 확장한 것이다: | ||
|
||
1. 유한체 $Z_q$ 위에서. | ||
|
||
2. $a_i$와 $s$는 벡터이다 ($s \cdot x$는 내적이다). | ||
|
||
3. 오류가 있는 직선 ($b_i = a_i \cdot s + e_i$). | ||
|
||
LWE는 몇 가지 격자 문제(예: GapSVP 및 SIVP)의 난이도를 가정할 때 계산하기 어렵다. | ||
|
||
## 정의 | ||
|
||
$q$가 소수이고 $n \in \mathbb{Z}_{>0}$라고 하자. $a_i \in \mathbb{Z}_q^n$는 균등한 랜덤 벡터 집합이고, $e_i \in \mathbb{Z}_q$는 작은 랜덤 미지수 집합이며, $s \in \mathbb{Z}_q^n$는 작은 미지수 벡터이고, $b_i = a_i \cdot s + e_i \in \mathbb{Z}_q$이다. 다항식 개수만큼의 쌍 $(b_i, a_i)$가 주어졌을 때, $s$를 찾아라. | ||
|
||
LWE의 보안은 $q$, $n$, $e$와 $s$의 분포에 의존한다. $q$가 작고, $n$이 크고, $e$와 $s$가 클수록 더 나은 보안을 제공한다. 보안을 측정하기 위해 lattice-estimator를 사용할 수 있다. |
5 changes: 5 additions & 0 deletions
5
content/Basic Cryptography/Module Learning with Errors(MLWE).md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
## 정의 | ||
$\Phi$가 차수 $d$인 기약 다항식이라고 하자. $a \in (\mathbb{Z}_q[X]/\Phi(X))^k$는 균등 랜덤 다항식이고, $e \in \mathbb{Z}_q[X]/\Phi(X)$는 작은 오류 다항식이며, $s \in (\mathbb{Z}_q[X]/\Phi(X))^k$는 작은 비밀 다항식이다. 쌍 $(as + e, a)$는 MLWE 쌍이다. | ||
|
||
## Remarks on MLWE | ||
[[Learning with Errors(LWE)]]는 $d = 1$인 MLWE이다. RLWE는 $k = 1$인 MLWE이다. NIST PQC 1차 라운드 수상자 중 유일한 PKE/KEM인 CRYSTALS-Kyber는 MLWE 기반 키 캡슐화 스킴이다. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Post-Quantum Cryptography | ||
|
||
## 양자 컴퓨팅과 암호학 | ||
현재 널리 사용되는 공개키 암호 시스템들은 양자 공격에 취약하다. 예를 들어, [[RSA]]는 정수 분해에 의존하는데, 이는 쇼어 알고리즘(Shor’s algorithm)을 사용하여 쉽게 계산할 수 있다. | ||
|
||
## 포스트-양자 암호학 (Post-Quantum Cryptography) | ||
포스트-양자 암호학은 양자 암호 분석 공격에 대해 안전한 암호 알고리즘을 개발하는 것을 목표로 한다. | ||
|
||
## NIST 포스트-양자 암호 표준화 프로그램 | ||
NIST 포스트-양자 암호 표준화 프로그램과 경쟁은 NIST 표준을 포스트-양자 암호학을 포함하도록 업데이트하기 위한 것이다. 이 프로그램은 디지털 서명과 키 캡슐화 메커니즘에 대한 공모를 진행하고 있다. | ||
|
||
## 2020년 NIST의 첫 번째 수상자 발표 | ||
2020년에 NIST는 첫 번째 수상자를 발표했다: | ||
- **CRYSTALS-Kyber (PKE/KEM)** | ||
- **CRYSTALS-Dilithium** | ||
- **FALCON** | ||
- **SPHINCS (Signature)** | ||
|
||
이 중 SPHINCS를 제외한 모든 알고리즘은 lattice-based이다. SPHINCS는 hash-based 알고리즘이다. |
21 changes: 21 additions & 0 deletions
21
content/Basic Cryptography/Ring Learning with Errors(RLWE).md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
## 정의 | ||
|
||
$q$가 소수이고 $\Phi(X) \in \mathbb{Z}_q[X]$는 $Z_q$ 위의 기약 다항식이라고 하자. $a_i(X) \in \mathbb{Z}_q[X]/\Phi(X)$는 균등한 랜덤 알려진 다항식 집합이고, $e_i(X) \in \mathbb{Z}_q[X]/\Phi(X)$는 작은 랜덤 미지수 다항식 집합이며, $s(X) \in \mathbb{Z}_q[X]/\Phi(X)$는 작은 미지수 다항식이고, $b_i(X) = a_i(X) \cdot s(X) + e_i(X) \in \mathbb{Z}_q[X]/\Phi(X)$이다. 다항식 개수만큼의 쌍 $(b_i, a_i)$가 주어졌을 때, $s$를 찾아라. | ||
## RLWE를 사용한 Symmetric key cryptography 스킴 | ||
|
||
RLWE 샘플을 사용하여 [[Symmetric key cryptography]] 스킴을 정의할 수 있다. | ||
### 암호화 (RLWE Encryption) | ||
|
||
메시지 $m \in R_q = \mathbb{Z}[X]/(X^N + 1)$가 주어졌을 때, $m$의 암호화는 다음과 같이 정의된다: | ||
|
||
$\text{Enc}(m) = (-as + e + m, a) \in R_q^2$ | ||
|
||
여기서 $a$는 균등 랜덤 다항식이고, $s$는 작은 비밀 다항식이며, $e$는 작은 오류 다항식이다. | ||
|
||
### 복호화 (RLWE Decryption) | ||
|
||
RLWE 암호문 $(b, a) \in R_q^2$가 주어졌을 때, $m$의 복호화는 다음과 같이 정의된다: | ||
|
||
$\text{Dec}(m) = b + a \cdot s$ | ||
|
||
암호화 스킴의 보안은 RLWE의 보안에서 비롯된다. |