拿 DNA 和神經來玩加密,是不是搞錯了什麼

「欸那個,你過來看一下,這邊有好久不見的 DNA 核苷酸 ATGC 欸。」
「蛤?我又不是讀生物的,看這幹嘛?」
「看加密系統模型啦ㄍ(自動消音)。」
好吧,事情是這樣的:
圖一:加密系統模型

使用 DNA 的四種核苷酸 A、C、G 和 T,分別代表字串中的 00、01、10 和 11 四種元素,並且做一個額外的 key(這邊就叫它 K 吧),並且針對 RGB 圖片裡的三原色運算。由於 00、01、10 和 11 互相做 XOR 運算剛好可以得到這四個數字裡面其中一個,所以可以直接把算出來的值再套回去變成相應的 A、C、G 或 T。

不過這邊要先處理 K,不然大家一定很容易就猜到鑰匙了吧。作者 Slimane 跟他的團隊是這樣搞的:他們先用 K 做出了一個 SK,然後拿 SK 除以 K 的值去做 SHA-512 雜湊,產生私鑰 H。把 H 拆成兩半,前面那一半再拆成十六等分,然後把前八等分和後八等分分開來,做一連串的 XOR 運算,再加上自己這八等分的和、除以 2 的 16 次方以後,加上一個常數存起來,成為 LASM 的初始值;後面那一半也差不多,但算到最後是變成神經模型的初始值。

算好囉。可是接下來要幹嘛呢?別急,你可以先把剛剛算好的初始值放進單一神經模型裡運算,另外把圖片的每個像素先加上用 2D-LASM 操作過的兩組初始值(就是前半部的 H 呦)混淆,再分開做好 XOR 的運算,然後跟神經模型算出的結果一起 XOR,之後 decode 得到加密的影像。這個模型的 key space 大概就有 10 的 154 次方。

「像這種複雜得要死的加密模型根本超香的啦,要碰撞就很久了,至少會是個可以信賴的加密系統,拿這個來出 CTF 不知道會不會太狠......好吧,離題了,不過它真的在很多攻擊測試裡面表現滿亮眼的呢。」

「哇啊啊太神喇。欸,可是不對啊,這個部落格叫做神經妙算,啊你剛剛扯的這一堆東西,跟神經是有啥關係啊?」
「你先別急,這篇 paper 還不只這樣。」
「等等,你是說剛剛那個很謎的神經運算部分嗎?」
「度。」

「來來來,不廢話,上算式。」
圖二:single neuron model

「看好囉:這玩意叫做 single neuron model,這邊用的呢,是 coexsting chaotic attractor 動態行為的模型。其中 w, z 都是介於 0 和 1 之間的常數,α 是時間的倒數。由於他用的是 chaotic attractor 的模型,所以更能夠造成混淆,如果要碰撞的話,就更難囉,嘻嘻。」

「嗯,可是總要解密吧?」
「這不用擔心,其實滿快的,用在加密過程中生成的 key 代入去算一堆 XOR 就可以啦。」
「啊,那真是太好了。最近大疫情時代要視訊開會,如果用這個就很方便不怕內容外流了呢。」

「欸修但咧,我剛剛看這個部落格,大家好像都寫得很認真......」
「噢對啊,我也很認真在寫呢,只是邊說邊寫,這樣而已。」
「你哪有,以前的你才不會這樣,一定是嗑了什麼。我也要來一管。」

「這個嗎......好吧,秉持著公開透明的精神,就給你吧。請關注下方資訊,謝謝。」

撰稿 | 郭彥伶

參考資料:
Slimane et al. (2018): A novel chaotic image cryptosystem based on DNA sequence operations and single neuron model. Multimed Tools Appl, 77, pp. 30993–31019.

留言