iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0
影片教學

從建立環境、驗證漏洞、感受漏洞來學習資安系列 第 23

Day21 - 數學就像一盒巧克力;你永遠都不知道下一加法乘法是什麼定義

  • 分享至 

  • xImage
  •  

「生活就像一盒巧克力;你永遠都不知道下一顆是什麼味道」《阿甘正傳》

Yes

  • 第21天要來針對 CVE-2022-21449 的背後原理 - 橢圓加密簽章法做理解跟運算了。今天完全不需要寫程式跟用到環境,說不定用紙筆就夠了,是不是很高興呢? /images/emoticon/emoticon07.gif

  • 所謂的橢圓曲線密碼學(英語:Elliptic Curve Cryptography,縮寫:ECC)是一種基於橢圓曲線數學的公開密鑰加密演算法。它的優點在於可以透過較短的金鑰提供同等效果的加密安全強度。但橢圓曲線最難理解的部分是它本身數系運算方式,其中的加法跟乘法都跟平常認知的不同,以下我們就會開始進行相關的說明。

  • 首先要進行橢圓曲線世界的加法,要先準備好一條橢圓曲線 /images/emoticon/emoticon19.gif ,公式為 y^2 = x^3 + ax + b ,接下來的計算部分我都會透過 Elliptic Curve point addition 來做示範。

步驟如下 :

  1. 測試橢圓曲線加法
    https://ithelp.ithome.com.tw/upload/images/20221006/20148308UxD62zic0U.jpg
  2. 測試橢圓曲線乘法
    https://ithelp.ithome.com.tw/upload/images/20221006/20148308A6pbeRPHMH.jpg
    https://ithelp.ithome.com.tw/upload/images/20221006/20148308ovuc3s1JI7.jpg

https://ithelp.ithome.com.tw/upload/images/20221006/20148308rv0lr3qqUD.jpg

https://ithelp.ithome.com.tw/upload/images/20221006/20148308kL81L1yN9U.jpg

https://ithelp.ithome.com.tw/upload/images/20221006/20148308uKlPguQgUJ.jpg

  • 每次看完都覺得數學好難,光要會運算就要花很多時間,更別提背後的數學意義。但問題來了,當(r,s) = (0,0) 會發生甚麼事情呢? 在計算 s^-1 的時候 Java 是透過 費馬小定理來運算,參考資料內的圖片如下 :

https://ithelp.ithome.com.tw/upload/images/20221006/20148308eqdlJeDiWv.jpg

  • 也就是說當 s=0, Java 其實是計算 s^(n-2) = 0 當作是 s^-1 的數值,導致後面一堆計算出來結果為 0,在跟帶入的 r=0 相比,自然會得到相等的結果。

  • 終於到了尾聲了,數學的部分就只出現在這次文章中,下次則是要開始說這個漏洞在實際案例上的使用會長甚麼樣子。 /images/emoticon/emoticon39.gif

參考資料 :

  1. Day 24. 非對稱式加密演算法 - 橢圓曲線密碼學 Elliptic Curve Cryptography , ECC (觀念篇)
  2. Elliptic Curve Cryptography: a gentle introduction
  3. Elliptic Curve point addition
  4. Elliptic Curve Cryptography: ECDH and ECDSA

上一篇
Day20 - 如果我沒看錯,你就是簽章中的霸主~ 心靈簽章(Psychic Signatures) (作業7解答)
下一篇
Day22 - You Shall Not Pass the JWT Token!!!! Really?
系列文
從建立環境、驗證漏洞、感受漏洞來學習資安37
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言