From f59eed015e9ae0f1f6b3ad06a44810a9d4d67915 Mon Sep 17 00:00:00 2001 From: Justin Asdz <38929721+JustinAsdz@users.noreply.github.com> Date: Tue, 11 Jun 2024 11:04:09 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E8=B4=A8?= =?UTF-8?q?=E5=9B=A0=E5=BC=8F=E5=88=86=E8=A7=A3=E3=80=81=E6=9C=80=E5=A4=A7?= =?UTF-8?q?=E5=85=AC=E5=9B=A0=E6=95=B0=E3=80=81=E6=9C=80=E5=B0=8F=E5=85=AC?= =?UTF-8?q?=E5=80=8D=E6=95=B0=20=E4=BB=8B=E7=BB=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/WTFAcademy/WTF-zk/issues/16 --- 02_Prime/readme.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/02_Prime/readme.md b/02_Prime/readme.md index 3482618..c1eb00f 100644 --- a/02_Prime/readme.md +++ b/02_Prime/readme.md @@ -89,10 +89,21 @@ print(f'小于等于{limit}的质数: {prime_numbers}') - 利用[费马小定理](../07_Exp/readme.md)来测试。 - [米勒-拉宾检验](https://zh.wikipedia.org/wiki/米勒-拉賓檢驗) -## 5. 质数在密码学中的应用 +## 5. 质因式分解 +质因数分解(Prime factorization)是数学中的一种概念,任何一个合数都可以分解为若干个素数的乘积。例如,数字12可以分解为2 x 2 x 3。 +质因式分解仅针对合数,求一个数分解质因数,要从最小的质数除起,一直除到结果为质数为止。分解质因数的算式叫短除法,和除法的性质相似,还可以用来求多个数的公因式。 + +## 6. 最大公因数和最小公倍数 +最大公因数(highest common factor,hcf)也称最大公约数(greatest common divisor,gcd)是数学词汇,指能够整除多个非零整数的最大正整数。若多个正整数记为 $` (a_1,a_2, …… , a_n) `$,则他们的最大公因数可以表示为 $`gcd(a_1,a_2, …… , a_n)`$ 。例如8和12的最大公因数为4,记为$`gcd(8,12) = 4`$。此外,最大公因数至少为1。常采用列举法、素因数分解、短除法进行求解。 + +最小公倍数(least common multiple,lcm)表示若有一个数$`X`$,可以被另外两个数$`A`$、$`B`$整除,且$`X`$同时大于或等于$`A`$和$`B`$,则$`X`$为$`A`$和$`B`$的公倍数。$`A`$和$`B`$的公倍数有无限个,而所有正的公倍数中,最小的公倍数就叫做最小公倍数。不失一般性,$`n`$整数$`a_1`$,$`a_2`$,⋯,$`a_n`$的最小公倍数一般参照英文记法记作$`lcm⁡(a_1,a_2,……, a_n)`$。常采用列举法、短除法进行求解。 + +上述二者的关系为 $`gcd(a,b) * lcm(a,b) = |ab| `$ + +## 7. 质数在密码学中的应用 质数在密码学领域扮演着重要的角色,特别是在公钥密码学中。举个例子,RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,它使用了大质数的乘积作为公钥和私钥的一部分:计算质数的乘积很简单,但是将大合数分解为质因数非常困难,这保证了RSA加密算法的安全性。 -## 6. 总结 +## 8. 总结 在这一讲中,我们学习了质数的基础知识,包括定义、性质以及寻找质数的方法。质数在数学和密码学中都有着重要的应用,为我们理解零知识证明奠定了基础。 From d008910ce62f96210f0436d061d208d7302f90bc Mon Sep 17 00:00:00 2001 From: Justin Asdz <38929721+JustinAsdz@users.noreply.github.com> Date: Tue, 11 Jun 2024 11:05:34 +0800 Subject: [PATCH 2/2] Update readme.md --- 02_Prime/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/02_Prime/readme.md b/02_Prime/readme.md index c1eb00f..db2378c 100644 --- a/02_Prime/readme.md +++ b/02_Prime/readme.md @@ -106,4 +106,4 @@ print(f'小于等于{limit}的质数: {prime_numbers}') ## 8. 总结 -在这一讲中,我们学习了质数的基础知识,包括定义、性质以及寻找质数的方法。质数在数学和密码学中都有着重要的应用,为我们理解零知识证明奠定了基础。 +在这一讲中,我们学习了质数的基础知识,包括定义、性质以及寻找质数的方法,以及质因式分解、最小公倍数和最大公约数的简单介绍。质数在数学和密码学中都有着重要的应用,为我们理解零知识证明奠定了基础。