密碼學的數學基礎1-素數和RSA加密

數學公式推導是密碼學的基礎, 故開一個新的課題 – 密碼學的數學基礎系列

素數 / 質數

質數又稱素數。 一個大于1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數(規定1既不是質數也不是合數)

素數在公鑰密碼學中的作用?

用于密鑰生成,選取一定長度(512 bit)的素數p和q,計算 N = p ? q N=p*q N=p?q

  • 代碼片段 - 判斷一個數是不是質數(素數)

公鑰密碼

RSA (基于大整數質數分解的困難問題)

RSA本身就是建立在分解兩個大素數乘積的困難性上。兩個大素數,相乘非常容易,也非常快,要分解這個乘積卻是極為困難。

RSA算法的安全性是由因式分解的困難程度而定的。如果能夠找出因式分解那么破解RSA將很容易。
RSA的建議。兩個大質數p和q, p ? q = N p*q=N p?q=N
p和q的相差比較大。防止對N開平方試探。
p-1和q-1有較大的因子。

橢圓曲線(Elliptic Curve Cryptography, ECC) (基于橢圓曲線上的離散對數問題)

利用的是在橢圓曲線上 乘法運算的逆運算 非常困難 的特性

  • 比特幣使用的secp256k1橢圓曲線方程是 x 2 = y 3 + 7 x^2 = y^3+7 x2=y3+7

  • ed25519的橢圓曲線方程: y 2 = x 3 + 486662 x 2 + x , m o d u l o p = 2 255 ? 19 y^2 = x^3+486662x^2+x,modulop=2^{255}-19 y2=x3+486662x2+x,modulop=2255?19

Pailier(基于復合剩余類的困難問題)

是一種用于公鑰加密的概率非對稱算法,基于復合剩余類的困難問題(Composite Degree Residuosity Classes),構造在模數取為 n 2 n^2 n2 的剩余類{0,1,2,…, n 2 ? 1 n^2-1 n2?1}上(二次剩余)。滿足加法同態,即密文相乘等于明文相加: D ( E ( m 1 ) ? E ( m 2 ) ) = m 1 + m 2 D(E(m_1)·E(m_2))=m_1+m_2 D(E(m1?)?E(m2?))=m1?+m2?

支持加法同態, 乘法其實也是變相的加法:
D ( E ( m 1 ) E ( m 2 ) ) = m 1 ? m 2 D(E(m_1)^{E(m_2)})=m_1*m_2 D(E(m1?)E(m2?))=m1??m2?

FISCO BCOS采用的是paillier加密算法,支持加法同態。paillier的公私鑰兼容主流的RSA加密算法,接入門檻低。同時paillier作為一種輕量級的同態加密算法,計算開銷小易被業務系統接受。因此經過功能性和可用性的權衡,最終選定了paillier算法。

術語

  • 最大公約數gcd:輾轉相除法,又稱歐幾里得算法
  • 最小公倍數lcm
  • 二次剩余:X^2在數論中,特別在同余理論里,一個整數X對另一個整數p的二次剩余,是指x的平方除以p得到的余數

數學工具 SageMath

安裝計算工具

#下載網頁
http://mirror.hust.edu.cn/sagemath/linux/64bit/index.html
#下載連接
wget http://mirror.hust.edu.cn/sagemath/linux/64bit/sage-9.3-Ubuntu_20.04-x86_64.tar.bz2
#解壓
tar -xjf sage-9.3-Ubuntu_20.04-x86_64.tar.bz2#運行
cd SageMath
./sage

往期精彩回顧:
區塊鏈知識系列
密碼學系列
零知識證明系列
共識系列
公鏈調研系列
BTC系列
以太坊系列
EOS系列
Filecoin系列
聯盟鏈系列
Fabric系列
智能合約系列
Token系列

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67900.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67900.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67900.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kamailio源文件modules.lst的內容解釋

在執行make cfg 后,在kamailio/src目錄下有一個文件modules.lst,內容如下: # this file is autogenerated by make modules-cfg# the list of sub-directories with modules modules_dirs:modules# the list of module groups to compile cf…

音視頻入門基礎:RTP專題(7)——RTP協議簡介

一、引言 本文對RTP協議進行簡介。在簡介之前,請各位先下載RTP的官方文檔《RFC 3550》和《RFC 3551》。《RFC 3550》總共有89頁,《RFC 3551》總共有44頁。本文下面所說的“頁數”是指在pdf閱讀器中顯示的頁數: 二、RTP協議簡介 根據《RFC 35…

HTTP協議的無狀態和無連接

無連接 ①無連接的含義 這里所說的無連接并不是指不連接,客戶與服務器之間的HTTP連接是一種一次性連接,它限制每次連接只處理一個請求,當服務器返回本次請求的應答后便立即關閉連接,下次請求再重新建立連接。這種一次性連接主要考…

Java知識速記:Lambda表達式

Java知識速記:Lambda表達式 一、什么是Lambda表達式? Lambda表達式是Java 8引入的一種簡潔的表示函數式接口的方法,它使得可以將函數作為參數傳遞,并且可以在代碼中以更簡潔的方式實現函數式編程。Lambda表達式的基本語法如下&a…

第31章 星騙計劃的推進與團隊協作

我回到自己的辦公室,在座位上剛坐下沒多久,還沒來得及好好整理一下思緒,就聽到一陣敲門聲。“請進。” 我抬頭說道,聲音中帶著一絲疲憊。借助情緒監測系統,我察覺到自己的壓力指數正處于高位,于是暗自提醒自…

半導體器件與物理篇7 微波二極管、量子效應和熱電子器件

基本微波技術 微波頻率:微波頻率涵蓋約從0.1GHz到3000GHz,相當于波長從300cm到0.01cm。 分布效應:電子部件在微波頻率,與其在較低頻率的工作行為不同。 輸運線:一個由電阻、電容、電感三種等效基本電路部件所組成的…

【C++】B2122 單詞翻轉

博客主頁: [小????????] 本文專欄: C 文章目錄 💯前言💯題目描述輸入格式輸出格式樣例 #1樣例輸入 #1樣例輸出 #1 💯一、我的做法代碼實現:代碼解析思路分析 💯二、老師的第一種做法代碼實現&a…

麥芯(MachCore)應用開發教程5 --- 工位和晶圓傳輸

麥芯是構建在windows系統上的設備應用操作系統,利用該系統可以快速高效的開發一款設備專用軟件。希望進一步了解請email: acloud163.com 黃國強 2025/02/03 一、工位與子設備的關系 想象工廠中的流水線工作站,每個工位(Station&#xff09…

Python從0到100(八十七):CNN網絡詳細介紹及WISDM數據集模型仿真

前言: 零基礎學Python:Python從0到100最新最全教程。 想做這件事情很久了,這次我更新了自己所寫過的所有博客,匯集成了Python從0到100,共一百節課,幫助大家一個月時間里從零基礎到學習Python基礎語法、Pyth…

C++ Primer 迭代器

歡迎閱讀我的 【CPrimer】專欄 專欄簡介:本專欄主要面向C初學者,解釋C的一些基本概念和基礎語言特性,涉及C標準庫的用法,面向對象特性,泛型特性高級用法。通過使用標準庫中定義的抽象設施,使你更加適應高級…

【C++篇】位圖與布隆過濾器

目錄 一,位圖 1.1,位圖的概念 1.2,位圖的設計與實現 1.5,位圖的應用舉例 1.4,位圖常用應用場景 二,布隆過濾器 2.1,定義: 2.2,布隆過濾器的實現 2.3, 應…

VR觸感數據手套:觸感反饋賦予虛擬交互沉浸式體驗

隨著動作捕捉技術的蓬勃發展,動捕數據手套成為了手部動作捕捉與虛擬交互的便捷工具,為人們打開了通往虛擬世界的新大門。在眾多產品中,mHand Pro作為一款多功能兼具的VR動作捕捉數據手套,憑借其卓越的性能,在手部動作捕…

C# 結構體介紹

.NET學習資料 .NET學習資料 .NET學習資料 一、結構體的定義與基本使用 (一)定義結構體 在 C# 中,使用struct關鍵字來創建結構體。它就像是一個模板,能定義出符合特定需求的數據結構。比如,若要跟蹤圖書館中書的信息…

圖像噪聲處理技術:讓圖像更清晰的藝術

在這個數字化時代,圖像作為信息傳遞的重要載體,其質量直接影響著我們的視覺體驗和信息解讀。然而,在圖像采集、傳輸或處理過程中,難免會遇到各種噪聲干擾,如高斯噪聲、椒鹽噪聲等,這些噪聲會降低圖像的清晰…

追逐低空經濟,無人機研學技術詳解

追逐低空經濟,無人機研學技術成為了一個備受關注的領域。以下是對無人機研學技術的詳細解析: 一、無人機研學技術概述 無人機研學技術是以無人機為核心,結合航空科技、電子技術、機械原理等多領域知識的一種教育實踐活動。它旨在通過理論學習…

(done) MIT6.S081 2023 學習筆記 (Day7: LAB6 Multithreading)

網頁:https://pdos.csail.mit.edu/6.S081/2023/labs/thread.html (任務1教會了你如何用 C 語言調用匯編,編譯后鏈接即可) 任務1:Uthread: switching between threads (完成) 在這個練習中,你將設計一個用戶級線程系統中的上下文切…

Kubernetes學習之通過Service訪問Pod

一、基礎概述 1.當通過deployment等controller動態創建和銷毀pod使得每個pod都有自己的ip地址,當controller用新的pod替代發生故障的pod時,新的pod會分配到新的ip地址,那么客戶端如何穩定的找到并訪問pod提供的服務。 2.創建service service從…

【優先算法】專題——前綴和

目錄 一、【模版】前綴和 參考代碼: 二、【模版】 二維前綴和 參考代碼: 三、尋找數組的中心下標 參考代碼: 四、除自身以外數組的乘積 參考代碼: 五、和為K的子數組 參考代碼: 六、和可被K整除的子數組 參…

CDDIS從2025年2月開始數據遷移

CDDIS 將從 2025 年 2 月開始將我們的網站從 cddis.nasa.gov 遷移到 earthdata.nasa.gov,并于 2025 年 6 月結束。 期間可能對GAMIT聯網數據下載造成影響。

谷歌Titans模型論文解析,Transformer迎來變革拐點——DeepSeek能否“接招”?

一、引入 Titans 模型 我們將深入探討谷歌研究院的一篇新論文《Titans: Learning to Memorize at Test Time》,該論文介紹了一種名為 Titans 的新模型架構。 Titans 在緩解 Transformer 二次方成本問題的同時,展現出了令人期待的成果。Titans 模型的設…