Cryptography Lec 3(Mathematical Background) - Notes
tags: Cryptography
NTU
Background
:::spoiler Euclidean Algorithm(輾轉相除法) Given $a$ and $b$ with $a \ge b$ Compute $gcd(a,\ b)=gcd(b,\ a\ mod\ b)$, $gcd(a,\ 0)=a$ For example \(Compute\ gcd(140,\ 297)\\ 297=2*140+17 \\ 140=8*17+4 \\ 17=4*4+1 \\ 4=4*4+0\) Then we found the $gcd(140,\ 297)=1$
Another Example: \(Compute\ gcd(270,\ 192)\\ 270=1*192+78\\ 192=2*78+36\\ 78=2*36+6\\ 36=6*6+0\) Then we found $gcd(270,\ 192)=6$ :::
:::spoiler Extended Euclidean Algorithm 其實就只是把原本用Euclidean Algorithm算出來的$gdc(a,\ b)$,變成Linear Combination的形式而已 For example above: As we know $gcd(270,\ 192)=6$, then… \(6=78-36*2\\ 36=192-2*78\\ 78=270-1*192\) \(\downarrow\) \(\begin{aligned} 6&=78-(192-2*78)*2\\ &=78-[192-2*(270-1*192)]*2\\ &=78-[192*3-2*270]*2\\ &=270-1*192-192*6+4*270\\ &=270*5-7*192 \end{aligned}\) Then we know the linear combination coefficient of $gcd(270,\ 192)$ is $+5$ and $-7$ :::
:::spoiler 質數愈大愈孤獨:談質數分布
Prime Number Theorem:
\(\lim\limits_{x\to \infty}{x \over \pi(x)}=\ln(x)\)
:::
Good Reference about Linear Algebra: 大學基礎代數 :::spoiler Linear Algebra - Group 純量加法的代數結構稱為阿貝爾群(Abelian Group)。考慮整數集 $\mathbb{Z}$ (包含正整數、負整數與零),我們觀察出任兩個整數的加法運算滿足以下五個性質:
- 加法具有封閉性,如果 $x$ 和 $y$ 屬於 $\mathbb{Z}$,那麼 $x+y$ 也屬於 $\mathbb{Z}$。
- 加法具有交換性,兩整數之和與其計算位置無關 $x+y=y+x$
- 加法具有結合性,排序固定的三個整數之和與其執行加法的順序無關, $(x+y)+z=x+(y+z)$
- 存在一整數 0 使得任何整數與其相加皆不改變, $x+0=0+x=x$, 因此 0 也稱為加法單位元。
- 任何加法都可以「回復」,意即每一整數皆存在逆元,如下: $x+(-x)=(-x)+x=0$。 — 再舉一個例子 考慮正實數集 $\mathbb{R}_{+}$,並以 $\times$ 表示一般的乘法運算:
$x\times y=xy$。
明顯地,正實數乘法滿足封閉性、交換性與結合性。上例中 $0$ 的角色被實數 $1$ 所取代,$1$ 稱為乘法單位元,滿足下式: $x\times 1=1\times x=x$
每一個正實數 $x$ 的逆元為其倒數,因為 $\displaystyle x\times\left(\frac{1}{x}\right)=\left(\frac{1}{x}\right)\times x=1$。
Example of Groups: Addition: Integers, Reals, Rationals Multiplication: Nonzero Reals, Rationals
:::success 上例整數 $\mathbb{Z}$ 的加法 $+$ 與正實數 $\mathbb{R}_{+}$ 的乘法 $\times$ 共同滿足的五個性質即為阿貝爾群的定義。正式地說,給定一個集合 ${G}$ 與二元運算 $\ast$,若滿足上述五個性質,即封閉性、交換性、結合性,存在一運算單位元,且每一元素皆存在對應的逆元,我們便稱 $({G},\ast)$ 為阿貝爾群。 :::
:::spoiler 【代數】Field:體
Def:Field 一個Field $\mathbb{F}$定義在一個集合與兩種運算方式之下,兩種運算分別為加法($+$)與乘法($*$)。若 a, b, c為F中的元素,則具有以下性質:
- 乘法與加法封閉性與唯一性:$a + b$ 與 $a * b$ 唯一且皆屬於$\mathbb{F}$
- 乘法與加法單位元素:$0$、$1$ 屬於$\mathbb{F}$,使得 a + 0 = a 且 a * 1 = a
- 乘法與加法反元素:任意$a$皆存在$b$、$c$ ,使得$a + b = 0$、$a * c = 1$,(只有$0$沒有乘法反元素)
- 乘法與加法交換律:$a + b = b + a$、$a * b = b * a$
- 乘法與加法結合律:$(a + b) + c = a + (b + c)$、$(a * b) * c = a * (b * c)$
- 乘法對加法的分配律:$a * (b + c) = ab + ac$ $\mathbb{R}$是一個Field、有理數也是一個 Field、$Z2:{0, 1}$,其中$1 + 1 = 0$,其餘運算與與正常運算相同,這也是一個Field。
經由加法與乘法反元素,可以定義減法與除法為與反元素相加或相乘。
:::info Field’s order代表field elements的數量,所以若是一個field的order是finite,就是一個finite field(Galois Fields),通常會表示成$GF(p)$
:::
:::spoiler 環 (Ring) 與體 (Field)
環是一個擁有兩個二元運算的集合,通常以加法和乘法表示,此集合在加法下會構成一個可交換群,並在乘法下構成一個 monoid,同時乘法對加法具有分配律,也就是說,滿足以下性質的集合就稱為一個環:
- 具有加法及乘法運算,且具有封閉性。
- 有加法單位元 0。
- 有加法反元素 -a。
- 有加法結合律。
- 有加法交換律。
- 有乘法單位元 1。
- 有乘法結合律。
- $a(b+c) = ab + ac$ $(b+c)a = ba + ca。$ :::
:::spoiler Polynomial Rings 其實就是一般的Rings只是裡面的元素都是由多項式組成 而我們說$f$ is irreducible over $R$代表$f$不能分解成degree是正的多項式乘積(簡單來說就是不能因式分解) :::info 承接上述的$GF(p)$為例,若是$GF(2)$就代表多項式的元素之間在做加減等運算時,每一個項的係數都要$mod\ 2$,例如: \(f(x)=x^7+x^5+x^4+x^3+x+1\) \(g(x)=x^3+x+1\) \(f(x)+g(x)=x^7+x^5+x^4\) 因為其他項次的係數$mod\ 2$之後就變成零了
- 多項式找最大公因式也可以使用Euclid’s Algorithm :::
:::spoiler Euler φ function φ(n):比$n$小且與$n$互質的數的數量 :::
:::spoiler 數論篇 What is $\mathbb{Z}, \mathbb{Z}_n, \mathbb{Z}_n^, \mathbb{Z}_p, \mathbb{Z}_p^$
Reference: 密碼學卷宗 數論篇 - 上卷 密碼卷宗 數論篇 - 下卷, Difference between $Z_n^*$ and $Z_n$[closed]
- $\mathbb{Z}$
整數集合
- 是從負無窮大到正無窮大的所有整數形成的集合
$\mathbb{Z} = { …,-2,-1,0,1,2,… }$
- $\mathbb{Z}_n$
餘數集合
- 模運算產生的集合,被稱為「模$n$之最小餘數集合(Set of least residues modulo n)」
- $\mathbb{Z}_n = {0,1,2,3,…,(n-1)}$
- 比較 $\mathbb{Z}$ 和 $\mathbb{Z}_n$
—
- $\mathbb{Z}_n^*$
$\mathbb{Z}_n^$ doesn’t mean $\mathbb{Z}_n−{0}$. You must remove all elements that are not invertible mod $n$, which is equivalent to keeping only the elements that are coprimes to $n$. For example: $Z_9^={1,2,4,5,7}$. —
- $\mathbb{Z}_p$
$\mathbb{Z}_p$就是上述的概念只是$n$一定是prime number,另外$\mathbb{Z}_p^$就是$\mathbb{Z}_p$除去0,意味着$\mathbb{Z}_p$中的所有元素都是可逆的,0除外,而$\mathbb{Z}_p^$的大小就是$p-1$ :::
:::spoiler 模運算 \(xy\ mod\ q=(x\ mod q)(y\ mod\ q)\ mod\ q\) :::
Chinese Remainder Theorem $\to$ RSA
:::spoiler Fermat’s Little Theorem {%youtube SyK3IXPITco %} :::warning 假定 $a∈Z$,$p$是一個質數,且: \((a,p)=1\) 則: \(a^{p−1}≡1(mod\ p)\)
::: $\downarrow$ 韓信點兵問題$\to$RSA 密碼系統上的應用
Discrete Logarithms
:::spoiler Basic Definition
If $g$ is a generator of $\mathbb{Z}_n^*$, then for all $y$ there is a unique $x$ such that
\(y=g^x\ mod\ n\)
This is called discrete algorithm of $y$ and we use the notation
\(x=\log_g(y)\)
or more precisely:
\(x=\log_{g,n}(y)\)
For example:
:::
:::spoiler Quadratic Residue
「二次剩餘」定義 任意非零平方整數除以某個數後可能的餘數,我們稱之為「二次剩餘」。用數學式表達如下: For $x,m≠0$, $a$ is a quadratic residue $mod\ m$ if $x^2=a\ (mod\ m)$. Otherwise, $a$ is a quadratic nonresidue(二次非剩餘).
例如對模10而言,可能的餘數集合為{0,1,4,5,6,9}: \(\left\{ \begin{array}{c} 0^2≡0\\ 1^2≡1\\ 2^2≡4\\ 3^2≡9\\ 4^2≡6\\ 5^2≡5\\ 6^2≡6\\ 7^2≡9\\ 8^2≡4\\ 9^2≡1 \end{array} \ \ mod\ 10 \right.\) :::
:::spoiler Blum Integers 簡單來說就是一個整數$N\in\mathbb{Z}$, 是兩個質數的乘積$N=p*q$,而$p,\ q$剛好滿足 \(\begin{aligned} 3&= q\ (mod\ 4)\\ 3&= p\ (mod\ 4) \end{aligned}\) 例如: \(\begin{aligned} 33&=3*11\\ 3&= 3\ (mod\ 4)\\ 3&= 11\ (mod\ 4)\\\ or\\ 21&=3*7\\ 3&= 3\ (mod\ 4)\\ 3&= 7\ (mod\ 4) \end{aligned}\) :::
:::spoiler Legendre Symbol 課本定義:Let $p$ be an odd prime and $a$ an integer. The Legendre symbol is defined to be \(\left(\dfrac{a}{p}\right)= \left\{ \begin{array}{c} 0,\ if\ p|a\\ 1,\ if\ a\in Q_p\\ -1,\ if\ a\in \overline{Q}_p \end{array} \right.\)
代表的意義就是當$a$相對於$p$可以開根號的話,Legendre Symbol就是$1\to$Quadratic Residue,否則就是$0\to$Nonquadratic Residue :::
:::spoiler 橢圓曲線密碼學Elliptic Curve Cryptography, ECC(觀念篇)
Description
橢圓曲線密碼學(英語:Elliptic Curve Cryptography,縮寫:ECC)是一種基於橢圓曲線數學的公開密鑰加密演算法。橢圓曲線在密碼學中的使用是在1985年由Neal Koblitz和Victor Miller分別獨立提出的。
ECC的主要優勢是它相比RSA加密演算法使用較小的密鑰長度並提供相當等級的安全性[1]。ECC的另一個優勢是可以定義群之間的雙線性映射,基於Weil對或是Tate對;雙線性映射已經在密碼學中發現了大量的應用,例如基於身份的加密。
Terminology
- 橢圓曲線 橢圓曲線是由以下形式的方程式定義 的平面曲線
\({\displaystyle y^{2}=x^{3}+ax+b,\ where\ a,b \in \mathbb{Z}}\to Weierstrass方程式\)
- 橢圓曲線運算規則(群組規則, Group)
- Addition
過曲線上的兩點$P$、$Q$畫一條直線,找到直線與橢圓曲線的交點 $-R$ 交點關於$x$軸對稱位置的點,定義為$PQ$,即為加法。如下圖所示:$P+Q = R$
- Multiplication(兩倍運算)
上述方法無法解釋$PP$,即兩點重合的情況。因此在這種情況下,將橢圓曲線在$P$點的切線,與橢圓曲線的交點,交點關於$x$軸對稱位置的點,定義為$P+P$,即$2P$,即為二倍運算
- 無窮遠點
如果將$A$與$-A$相加,過$A$與$-A$的直線平行於$y$軸,可以認為直線與橢圓曲線相交於無窮遠點。
- Addition
- Properties
- 曲線上的任何點都以X軸反射(y=0),並且仍是同樣的曲線 (奇特的對稱性)
- 任何不垂直的線穿過曲線最多只會有三個交點
- How to use the properties in Encryption System?
將橢圓曲線比喻成擊球遊戲, 把球從A點擊向B點,當再碰撞到曲線上的點後會反彈到(x軸以上或以下)另一邊的C點,先想像成把球在兩個點移動稱為”打點(dot)”
A dot B = C A dot A = B A dot C = D … … …
這裡只有兩個點(稱為: 最初點&最終點),將最初的點P自行打點 n次(as Private Key) 會得到一個最終點Q(as Public Key)即使你知道”最初點”和”最終點”,要找出n是非常非常之困難!
:::info
橢圓曲線是連續的,容易被推算,因此,並不適合用於加密;所以,我們必須把橢圓曲線變成離散的點
至於怎麼轉換可見原文,但轉換前後如下圖所示:


:::
:::spoiler Elliptic Curve Cryptography Application
- Application
- RSA 同演算法可以直接實現簽章及加密,ECC 需要分別實作
- ECDSA (Elliptic Curve Digital Signature Algorithm)
- ECIES (Elliptic Curve Integrated Encryption Scheme)
- ECDH (Elliptic Curve Diffie–Hellman key Exchange)
- TLS/SSL 數位憑證
- 基於身份加密
- 區塊鏈數位簽名
- 序號產生驗證
- ECC 安全性
ECC 一樣採用數學難題,進行設計,但難度比REA 質因數分寫還要難,而且運算比RSA 還要快 :::warning 詳細例子的計算過程以及前面提到的有關橢圓曲線的描述可以參考(大推,講得非常清楚): Elliptic Curve Diffie Hellman :::
:::spoiler Discrete Logarithm Problem 課本的說明:
$(G\ \times)$是abelian group,在給定$g,\ h \in G$的情況下,要找到一個$x$(若其存在)使得$g^x=h$ 在$(\mathbb{Z}/\mathbb{NZ},\ +)$很簡單 在$(GF(p),\ +)$很困難(hard) 在Elliptic Curve groups超級困難