看雪CTF.TSRC 2018 團隊賽 第十五題『 密碼風雲』 解題思路

Editor發表於2019-01-02

看雪CTF.TSRC 2018 團隊賽 第十五題『 密碼風雲』 解題思路


最新賽況戰況一覽


2018年的最後一天,看雪CTF.TSRC 2018 最後一題畫上句號。作為本次比賽的決勝局,無團隊攻破,為本題添上些許神祕色彩。

看雪CTF.TSRC 2018 團隊賽 第十五題『 密碼風雲』 解題思路


最後一題過後,攻擊方比賽排名繼續保持如下:


看雪CTF.TSRC 2018 團隊賽 第十五題『 密碼風雲』 解題思路

感謝各位選手一個月以來的優秀表現,最終比賽結果將是如何?接下來將由比賽組委會對所有比賽成績進行復盤、審校,成績將於1月2日揭曉!



第十五題 點評


crownless:

“密碼風雲”此題涉及梅森素數、Hash演算法、傳統加密、對稱演算法、ECC公鑰密碼,可以說是密碼學的大雜燴,對沒有相關知識積累的逆向者造成了極大的考驗,創造了本屆看雪CTF第一題無人攻破的歷史。



第十五題 出題團隊簡介


出題團隊:BlackChamber  


成員cnbragon,密碼學和逆向愛好者,非常喜歡分析研究密碼學演算法在各種軟體和協議中的應用,希望能和CTF比賽中的密碼學愛好者多交流



第十五題 設計思路


由看雪論壇cnbragon原創


看雪CTF.TSRC 2018 團隊賽 第十五題『 密碼風雲』 解題思路


說明:


其中Rotor加密可從相關的Python模組原始碼中獲取,Skipjack演算法對其F-Table進行了變換。


整個題目涉及梅森素數、Hash演算法、傳統加密、對稱演算法、ECC公鑰密碼,總體思路如下:


1. 前面兩個數都是梅森素數,即p是素數,2^p -1也是素數,對於10進位制3位數,只有兩個值。


這裡為了降低難度,給出線索,在嘗試出錯10次以後,增加判斷是否是素數的邏輯,便於判斷這是梅森素數公式。


2. 計算兩個梅森素數的和,並且計算轉化為字串之後的SM3雜湊值,並簡單計算Hash值的XOR校驗值,如果校驗通過,則用該Hash值作為Rotor演算法的Key。


3.對輸入的Serial中間的24個字元資料進行解密,得到字串cryptography,取其前10個字元,作為接下來Skipjack演算法的金鑰,對程式中預存的24個位元組進行解密,解密後的值為pediyctf2018.by.cnbragon,用於後面ECNR步驟的訊息計算。這裡對Skipjack的F-Table進行了變換。


4.使用同樣的金鑰,對serial的後面32個字元進行Skipjack解密,解密後的結果分別作為簽名c和簽名d。


5.將字串pediyctf2018.by.cnbragon以64位作為單位,進行xor,結果是ECNR的真正明文message。


6.對簽名c和簽名d做ECNR簽名驗證,如果驗證通過,為了保證serial的惟一併且進一步降低難度,增加了額外的加法校驗。

題目原始碼請點選下方“閱讀原文”檢視哦!





合作伙伴

看雪CTF.TSRC 2018 團隊賽 第十五題『 密碼風雲』 解題思路


騰訊安全應急響應中心 

TSRC,騰訊安全的先頭兵,肩負騰訊公司安全漏洞、黑客入侵的發現和處理工作。這是個沒有硝煙的戰場,我們與兩萬多名安全專家並肩而行,捍衛全球億萬使用者的資訊、財產安全。一直以來,我們懷揣感恩之心,努力構建開放的TSRC交流平臺,回饋安全社群。未來,我們將繼續攜手安全行業精英,探索網際網路安全新方向,建設網際網路生態安全,共鑄“網際網路+”新時代。

看雪CTF.TSRC 2018 團隊賽 第十五題『 密碼風雲』 解題思路

看雪CTF.TSRC 2018 團隊賽 第十五題『 密碼風雲』 解題思路



本題原始碼!

https://bbs.pediy.com/thread-248740.htm


轉載請註明:轉自看雪學院




專欄連結彙總:
















相關文章