1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        打馬賽克就安全了嗎?AI消除馬賽克,GitHub開源項目上線三天收獲近7000星

        共 2031字,需瀏覽 5分鐘

         ·

        2021-02-22 13:21

        機(jī)器之心報道

        作者:魔王、小舟


        還在用馬賽克的方式隱藏密碼?小心被「看穿」。

        像素化(又稱馬賽克)是一種常見的打碼方式,通過降低圖像中部分區(qū)域的分辨率來隱藏某些關(guān)鍵信息,比如:

        ?
        再比如:

        看圖找馬賽克?。ㄕ也坏秸埧从覀?cè)原圖)

        但是,在你想隱藏信息的同時,有一些技術(shù)卻反其道而行之,試圖將圖片還原為原始狀態(tài)。

        最近,一個名為 Depix 的 GitHub 項目爆火,上線三天 star 量已經(jīng)高達(dá) 6.9k。項目作者 Sipke Mellema 是一名信息安全顧問。


        項目地址:https://github.com/beurtschipper/Depix

        Depix 能夠從像素化圖像截圖中恢復(fù)原圖中包含的文字密碼。該項目適用于使用線性方框濾波器(linear box filter)創(chuàng)建的像素化圖像。如下圖所示,項目作者給出了像素化圖像、恢復(fù)之后的效果和原圖的對比結(jié)果:


        馬賽克打得夠嚴(yán)實了,不過 Depix 還是基本解讀出了被隱藏的信息。

        如何使用

        使用 Depix 從像素化圖像截圖中恢復(fù)文字密碼,操作也比較簡單:

        • 從截圖中分割出矩形像素化 block;

        • 在具有相同字體設(shè)置(包括文本大小、字體、顏色、hsl)的編輯器中,粘貼待處理字符的德布魯因(De Bruijn sequence)。

        • 給該序列截圖,盡可能使用和像素化圖像相同的截圖工具。

        • 執(zhí)行命令:

        python depix.py -p [pixelated rectangle image] -s [search sequence image] -o output.png


        Depix 算法利用線性方框濾波器單獨處理每一個 block 這一事實。它對搜索圖像中的每一個 block 執(zhí)行像素化以尋找直接匹配。

        對于大部分像素化圖像,Depix 盡量尋找單匹配結(jié)果,并假設(shè)這些匹配是正確的。至于周圍多匹配 block 的結(jié)果被看作像素化圖像中相同的幾何距離,并認(rèn)為這些匹配也是正確的。該過程重復(fù)多次。

        在正確的 block 沒有更多幾何匹配后,Depix 將直接輸出所有正確的 block。對于多匹配 block,Depix 將輸出所有匹配的平均值。

        Depix 背后的算法

        像素化常使用線性方框濾波器實現(xiàn)。線性方框濾波器的實現(xiàn)很簡單,速度很快,可以并行處理多個 block。

        由于線性方框濾波器是一種確定性算法,對同樣的值執(zhí)行像素化通常會產(chǎn)生同樣的像素化 block。使用同樣位置的 block 對相同文本執(zhí)行像素化,會得到同樣的 block 值。我們可以嘗試像素化文本來找出匹配的模式。幸運的是,這對于秘密值的一部分同樣奏效。我們可以把每個 block 或 block 組合看作一個子問題。

        項目作者沒有選擇創(chuàng)建潛在字體的查找表。該算法要求在相同背景上具備相同的文本大小和顏色。現(xiàn)代文本編輯器還會添加色調(diào)、飽和度和亮度,也就是說存在海量潛在字體。

        項目作者給出的解決方案也很簡單:使用待處理字符的德布魯因序列,將其粘貼到相同的編輯器中,然后截圖。該截圖可以用作相似 block 的查找圖像,例如:


        德布魯因序列包括待處理字符的所有雙字符組合。這很重要,因為一些 block 會重疊兩個字符。找出恰當(dāng)?shù)钠ヅ湫枰阉鲌D像中具備相同像素配置的 block。

        在以下測試圖像中,Depix 算法無法找到「o」的一部分。這是因為在搜索圖像中,搜索 block 還包含下一個字母(「d」)的一部分,但在原始圖像中這里有個空格。


        創(chuàng)建字母的德布魯因序列時加上空格顯然會帶來同樣的問題:算法無法找到后續(xù)字母的恰當(dāng) block。有空格又有字母的圖像需要更長的搜索時間,但結(jié)果也更好。

        對于大部分像素化圖像而言,Depix 似乎能夠找到 block 的單匹配結(jié)果,并假設(shè)這是正確的。然后將其周圍多匹配 block 的匹配結(jié)果看作在像素化圖像中處于相同的幾何距離,并假設(shè)這些匹配也是正確的。

        在正確的 block 沒有更多幾何匹配后,Depix 直接輸出所有正確的 block。對于多匹配 block,Depix 將輸出所有匹配的平均值。雖然 Depix 的輸出并不完美,但已經(jīng)算不錯了。

        下圖展示了包含隨機(jī)字符的測試圖像的去像素化結(jié)果,大部分字符被正確讀?。?/span>



        對這個項目感興趣的讀者,可以自行嘗試。

        以后截圖時給敏感信息打碼,看來不能簡單地用「馬賽克了」。


        參考鏈接:
        https://www.linkedin.com/pulse/recovering-passwords-from-pixelized-screenshots-sipke-mellema/?trackingId=yYFSUnuxRXasNV%2Fh3ZsiSw%3D%3D
        瀏覽 64
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            成人做爱毛片 | 日本japanese高潮尖叫 | 99久久久无码国产 | 小婷性开放肉日记高hnp男男 | 天美视频网爱爱 | 懂色av中文一区二区三区天大师 | 无码毛片视频一区二区免费播放 | 欧美乱大交做爰XXXⅩ | 爱豆传媒成人A片免费看 | 激情婷婷丁香五月天 |