午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

驚!AI 強(qiáng)勢入局,挑戰(zhàn)第四屆 “網(wǎng)鼎杯” 網(wǎng)絡(luò)安全大賽題目,究竟表現(xiàn)如何?

 沖天香陣 2024-11-12

朋友們,現(xiàn)在只對常讀和星標(biāo)的公眾號才展示大圖推送,建議大家把長弓三皮設(shè)為星標(biāo)”,否則可能就看不到了啦!

作者:隨波逐流

生活如夢,我愿隨風(fēng)起,隨波流,享受每一刻的自在與輕盈。

2024年第四屆 “網(wǎng)鼎杯” 網(wǎng)絡(luò)安全大賽青龍組初賽有一道密碼題目:Crypto-2,是一道AES加密題,本人數(shù)學(xué)不行,對于這種數(shù)學(xué)題目,我一向看到就頭痛,一般是見了就跳過的,不過,現(xiàn)在有了AI,解題就不那么難了圖片。偷偷用AI解決一下。

還是先讓AI給這篇文章取個標(biāo)題吧

圖片

再讓AI畫個封面

圖片

圖片驚不喜,意不意外圖片

言歸正傳

第四屆 “網(wǎng)鼎杯” 網(wǎng)絡(luò)安全大賽青龍組初賽Crypto-2原題目內(nèi)容:
運(yùn)維人員在網(wǎng)絡(luò)監(jiān)控中發(fā)現(xiàn)了一段可疑的字符串,經(jīng)過初步分析,他們懷疑這段數(shù)據(jù)可能是使用AES加密的。為了確定這段數(shù)據(jù)的內(nèi)容,他們需要找到正確的密鑰。提交的flag格式:wdflag{xxxxx}
還附上一段python

# coding: utf-8#!/usr/bin/env python2
import gmpy2import randomimport binasciifrom hashlib import sha256from sympy import nextprimefrom Crypto.Cipher import AESfrom Crypto.Util.Padding import padfrom Crypto.Util.number import long_to_bytesfrom FLAG import flag#flag = 'wdflag{123}'
def victory_encrypt(plaintext, key): key = key.upper() key_length = len(key) plaintext = plaintext.upper() ciphertext = ''
for i, char in enumerate(plaintext): if char.isalpha(): shift = ord(key[i % key_length]) - ord('A') encrypted_char = chr((ord(char) - ord('A') shift) % 26 ord('A')) ciphertext = encrypted_char else: ciphertext = char
return ciphertext
victory_key = 'WANGDINGCUP'victory_encrypted_flag = victory_encrypt(flag, victory_key)
p = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fa = 0b = 7xG = 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798yG = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8G = (xG, yG)n = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141h = 1zero = (0,0)
dA = nextprime(random.randint(0, n))
if dA > n: print('warning!!')
def addition(t1, t2): if t1 == zero: return t2 if t2 == zero: return t2 (m1, n1) = t1 (m2, n2) = t2 if m1 == m2: if n1 == 0 or n1 != n2: return zero else: k = (3 * m1 * m1 a) % p * gmpy2.invert(2 * n1 , p) % p else: k = (n2 - n1 p) % p * gmpy2.invert((m2 - m1 p) % p, p) % p m3 = (k * k % p - m1 - m2 p * 2) % p n3 = (k * (m1 - m3) % p - n1 p) % p return (int(m3),int(n3))
def multiplication(x, k): ans = zero t = 1 while(t <= k): if (k &t )>0: ans = addition(ans, x) x = addition(x, x) t <<= 1 return ans
def getrs(z, k): (xp, yp) = P r = xp s = (z r * dA % n) % n * gmpy2.invert(k, n) % n return r,s
z1 = random.randint(0, p)z2 = random.randint(0, p)k = random.randint(0, n)P = multiplication(G, k)hA = multiplication(G, dA)r1, s1 = getrs(z1, k)r2, s2 = getrs(z2, k)
print('r1 = {}'.format(r1))print('r2 = {}'.format(r2))print('s1 = {}'.format(s1))print('s2 = {}'.format(s2))print('z1 = {}'.format(z1))print('z2 = {}'.format(z2))
key = sha256(long_to_bytes(dA)).digest()cipher = AES.new(key, AES.MODE_CBC)iv = cipher.ivencrypted_flag = cipher.encrypt(pad(victory_encrypted_flag.encode(), AES.block_size))encrypted_flag_hex = binascii.hexlify(iv encrypted_flag).decode('utf-8')
print('Encrypted flag (AES in CBC mode, hex):', encrypted_flag_hex)
# output# r1 = 80932673752923845218731053671144903633094494351596082125742241568755353762809# r2 = 80932673752923845218731053671144903633094494351596082125742241568755353762809# s1 = 11239004842544045364097722042148768449026688243093666008376082303522447245154# s2 = 97301123368608673469588981075767011435222146576812290449372049839046298462487# z1 = 84483328065344511722319723339101492661376118616972408250436525496870397932079# z2 = 114907157406602520059145833917511615616817014350278499032611638874752053304591# ('Encrypted flag (AES in CBC mode, hex):', u'd8851c55edec1114a6d7a4d6d5efbba4611a39216ec146d2e675194dd0d5f768bee1b09799a133ffda1d283c4f6db475834cbe52c38c88736c94795c137490be')

讓AI解題,需要寫一段提問語,如下:

(題目給出的代碼內(nèi)容,此處省略)

上面是一道CTF比賽題目,求取flag的值,需要分幾步?請?zhí)峁┟恳徊叫枰膒ython代碼?;卮饐栴}和代碼注釋均使用中文。

chatgpt(免費(fèi)版)的回答如下:

圖片

圖片

圖片

圖片

圖片

圖片

加上已知參數(shù),運(yùn)行給出的代碼結(jié)果

圖片

答案出來了,哇塞,簡直絕絕子!

完整代碼可見:
10082-第四屆 “網(wǎng)鼎杯” 網(wǎng)絡(luò)安全大賽青龍組初賽_Crypto-2 writeup

圖片

寶子們,是不是又解鎖了一種作弊新技能,希望出題老師不要打我圖片

-------------------------------------------------------------------

再來測試一下國內(nèi)的AI

一、豆包

圖片

圖片

圖片

圖片

顏色看著就比較舒服,運(yùn)行一下

圖片

只出了一部分flag,估計是沒有考慮到填充,提示給它,給我回了一個完整代碼

圖片

import gmpy2from sympy import nextprimefrom Crypto.Cipher import AESfrom Crypto.Util.Padding import unpadfrom Crypto.Util.number import long_to_bytesfrom hashlib import sha256import binascii
# 題目中給出的橢圓曲線參數(shù)和已知值p = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fa = 0b = 7xG = 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798yG = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8G = (xG, yG)n = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141h = 1zero = (0, 0)
# 題目給出的簽名和相關(guān)隨機(jī)值r1 = 80932673752923845218731053671144903633094494351596082125742241568755353762809r2 = 80932673752923845218731053671144903633094494351596082125742241568755353762809s1 = 11239004842544045364097722042148768449026688243093666008376082303522447245154s2 = 97301123368608673469588981075767011435222146576812290449372049839046298462487z1 = 84483328065344511722319723339101492661376118616972408250436525496870397932079z2 = 114907157406602520059145833917511615616817014350278499032611638874752053304591
# 計算s1的逆元s1_inv = gmpy2.invert(s1, n)# 計算s2的逆元s2_inv = gmpy2.invert(s2, n)
# 根據(jù)ECDSA簽名原理構(gòu)建關(guān)于dA的方程并求解# 由s1_inv * (z1 r1 * dA) % n = k 和 s2_inv * (z2 r2 * dA) % n = k# 可得:s1_inv * (z1 r1 * dA) % n = s2_inv * (z2 r2 * dA) % n# 進(jìn)一步推導(dǎo)得到關(guān)于dA的方程left_side = (s1_inv * z1 - s2_inv * z2) % nright_side = (s2_inv * r2 - s1_inv * r1) % ndA = (left_side * gmpy2.invert(right_side, n)) % n
# 題目中給出的加密后的flag(十六進(jìn)制形式)encrypted_flag_hex = 'd8851c55edec1114a6d7a4d6d5efbba4611a39216ec146d2e675194dd0d5f768bee1b09799a133ffda1d283c4f6db475834cbe52c38c88736c94795c137490be'encrypted_flag = binascii.unhexlify(encrypted_flag_hex)
# 利用恢復(fù)的私鑰dA生成AES加密密鑰key = sha256(long_to_bytes(dA)).digest()
# 創(chuàng)建AES解密對象,注意這里需要從加密數(shù)據(jù)中提取出初始向量(iv)iv = encrypted_flag[:16]cipher = AES.new(key, AES.MODE_CBC, iv=iv)
# 解密得到經(jīng)過victory_encrypt函數(shù)處理后的flag,并進(jìn)行去填充操作decrypted_victory_encrypted_flag = unpad(cipher.decrypt(encrypted_flag[16:]), AES.block_size)
# 此時得到的是經(jīng)過victory_encrypt函數(shù)處理后的flag,需要逆向該函數(shù)處理得到原始flagvictory_key = 'WANGDINGCUP'

def victory_decrypt(ciphertext, key): key = key.upper() key_length = len(key) ciphertext = ciphertext.upper() plaintext = ''
for i, char in enumerate(ciphertext): if char.isalpha(): shift = ord(key[i % key_length]) - ord('A') decrypted_char = chr((ord(char) - ord('A') - shift 26) % 26 ord('A')) plaintext = decrypted_char else: plaintext = char
return plaintext

# 逆向victory_encrypt函數(shù)得到原始flagflag = victory_decrypt(decrypted_victory_encrypted_flag.decode('utf-8'), victory_key)print('原始flag:', flag)

圖片

超級給力啊,此處應(yīng)有掌聲圖片

二、百度文心一言3.5

圖片

圖片

圖片

心一言沒有分步,一次給出全部代碼 ,代碼太長,只截取一部分)

說了一堆原理,給出的代碼一看就不正確,看藍(lán)色部分,它還假設(shè)了一個不存在的hypothetical_aes_key圖片,很明顯抄網(wǎng)上現(xiàn)成的代碼。初略看了下,基本無法用,將代碼放到PyCharm中,運(yùn)行一下,果然報了一堆錯誤,放棄。

三、Kimi

圖片

省略。。。。

圖片

圖片

不知道為什么給出的是python2代碼,看著還可以,運(yùn)行一下報錯,繼續(xù)提交報錯信息修改,修改了3次能正常運(yùn)行了,但仍然無法得出正確答案,放棄

四、智譜清言GLM-4

圖片

圖片

圖片

運(yùn)行后報錯,提交錯誤信息3次,仍然無法運(yùn)行,放棄

五、360智腦

圖片

圖片

圖片

360宣傳說是集合多家AI,上面好像查詢了6個,但給出的代碼看著就好像不對,先運(yùn)行一下再說吧。居然沒有復(fù)制按鈕,差評。

運(yùn)行代碼都沒有導(dǎo)入庫,暈死大部分庫都沒有導(dǎo)入,手動加入,運(yùn)行報錯,提交報錯信息給360

圖片

提交了3次,居然出現(xiàn)這個,我也是醉了圖片

六、訊飛星火

圖片

圖片

圖片

訊飛分步給了代碼 ,最后還給出完整代碼(太長就不截圖了),這點(diǎn)很贊

但運(yùn)行報錯,提交錯誤信息修改3次后仍然報錯,放棄

還要發(fā)吐槽一點(diǎn),提交錯誤信息后,回復(fù)信息居然是英文圖片

七、通義千問2.5

圖片

圖片
圖片

圖片

不得不說,通義的代碼看著是最舒服的,所有庫導(dǎo)入正確,顏色分類顯示,代碼十分規(guī)范??上峤粓箦e信息幾次后,仍然不能得出正確答案,放棄。

其后還測試了百小應(yīng)、騰訊元寶、海螺AI、商量智能助手,基本都無法正常輸出合格代碼,放棄。

圖片

總結(jié):此次進(jìn)行的僅僅是一個小應(yīng)用的測試,所采用的全部為免費(fèi)模型。需要強(qiáng)調(diào)的是,本次測試的結(jié)果僅針對此次特定的測試情境。然而,通過這次小小的測試,卻猶如一葉知秋、管中窺豹般,讓人深刻地感受到國內(nèi) AI 與國外相比,差距依然較為明顯。這也充分表明,在 AI 發(fā)展的道路上,我們?nèi)沃囟肋h(yuǎn),還有很長的路要走,需要不斷努力、持續(xù)探索,以縮小與國外的差距,實(shí)現(xiàn) AI 領(lǐng)域的更大突破。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多