Skip to content

Commit

Permalink
Merge pull request #31 from decipherhub/basic-cryptography
Browse files Browse the repository at this point in the history
  • Loading branch information
yijun-lee authored Jul 20, 2024
2 parents 5d92f4a + 5f907e7 commit b0c675c
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 1 deletion.
2 changes: 1 addition & 1 deletion content/Basic Cryptography/Basic Cryptography.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
- [[RSA]]
- [[ElGamal]]
- [[ECDSA]]
- [[Post quantum cryptography]]
- [[Post-Quantum Cryptography]]
- [[Learning with Errors(LWE)]]
- [[Ring Learning with Errors(RLWE)]]
- [[Module Learning with Errors(MLWE)]]
17 changes: 17 additions & 0 deletions content/Basic Cryptography/Learning with Errors(LWE).md
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를 사용할 수 있다.
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 기반 키 캡슐화 스킴이다.
19 changes: 19 additions & 0 deletions content/Basic Cryptography/Post-Quantum Cryptography.md
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 content/Basic Cryptography/Ring Learning with Errors(RLWE).md
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의 보안에서 비롯된다.

0 comments on commit b0c675c

Please sign in to comment.