日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

I春秋—— Crypto Write up(一)

發布時間:2024/9/30 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 I春秋—— Crypto Write up(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:密碼學涉及一系列的加密算法,雖然自己數學賊爛,但覺得加密這些算法還是蠻好玩的,就通過題來了解一些算法,話不多說,開始做題。

Substituted

方法:百度翻譯題目一下,Substituted(替換),替換加密中包含有簡單替換密碼,應該就是簡單替換密碼,在線網站求解一波。
替換密碼解密

把頭部改成iceCTF即可得出flag。

做題總結:通過這道題來了解一下簡單替換密碼

替換密碼屬于簡單對稱加密,即將字母表中一個字符替換成另一個字符,很好理解。

例如:明文 ABDDD替換規則:A->CB->TD->F密文 CTFFF

而攻擊方式也有很多種
一、暴力破解
二、字母頻率分析
因為替換密碼只不過是從一個字符換成另一個字符,我們只要將出現在密文的所有字符出現的頻率統計一下,看頻率最高的。由此我們可以推斷出,頻率高的肯定是英文語言中最常用的一個字母的替換字母。密文中字母的頻率分布與給定語言有著緊密的聯系,即使在相對較短的密文中也成立。

參考大佬的博客進行學習關于替換密碼詳解

Alien Message

一張外星語言圖片

方法:谷歌識圖,查到對應的表,手動對照即可,但是flag格式有毒,大小寫格式問題
做題總結: 一開始拿到這個題,以為是圖片會隱藏信息,用做雜項的方法嘗試了但都沒用,最后又學到了一招,百度識圖或谷歌識圖,有時也可以解決問題,也算了解了一種新的做題方法。

回旋13踢

方法:根據題目和提供的格式推斷出是ROT13(回旋13),在線解密即可得出flag
在線解密

做題總結:一開始真的是一臉懵,完全沒有思路,只能查百度谷歌,查到了ROT13編碼,所以就通過這個題來了解一下ROT13加密。

ROT13(回轉13位)編碼是凱撒加密的一種變體,只對字母進行編碼(對數字、空格等無影響),用當前字母往前數的第13個字母替換當前字母即可
例如:A->N,B->O,C->P等


除此之外,還有ROT5,ROT47

ROT5只對數字有效,用當前數字往前數的第5個數字替換當前數字即可。

ROT47:對數字、字母、常用符號進行編碼,按照它們的ASCII值進行位置替換,用當前字符ASCII值往前數的第47位對應字符替換當前字符,例如:當前為小寫字母z,編碼后變成大寫字母K,當前為數字0,編碼后變成符號_ ,用于ROT47編碼的字符其ASCII值范圍是33-126。

接下來了解一下非對稱加密和對稱加密

①:非對稱加密,即加密和解密不是使用同一套規則,之前的對稱加密解密中,使用的都是同一個密匙,如果在傳輸中被攔截,破解的幾率會很高。
②:非對稱加密,加密和解密使用的不是同一個密匙,明文A通過公鑰B加密,加密后的明文和公鑰一起傳輸,接收方接收密文后用私鑰C(只有接收者才有)解密,這樣的加密解密的方式非常安全,即使公鑰和密文在傳輸過程中被攔截了,攔截者沒有私鑰,就算拿著公鑰和密文也無法破解出明文。因此相較于對稱加密,非對稱加密會更加安全。

了解完對稱加密和非對稱加密后,就來學習一下RSA算法

在了解RSA算法之前,要先了解一下質數和互質數等數學概念,方便更好的理解RSA算法。

質數:一個大于1的自然數,除了1和它本身外,不能被其他自然數整除(除0以外)的數稱之為質數(素數)。
互質數:公約數只有1的兩個數。
判斷互質數:
①任意兩個質數一定構成互質數
②大數是質數的兩個數一定是互質數(如97與88)

歐拉函數:任意給定正整數n,計算在小于等于n的正整數之中,有多少個與n構成互質關系?計算這個值的方法就叫做歐拉函數,以φ(n)表示.(計算互為質數的個數)

例如: n為10,則與13579互質,所以φ(n)=5 注意這里10不是質數,只算與其互質的。

在RSA算法中,歐拉函數對以下定理成立

  • 如果n可以分解成兩個互質的整數之積,即n=p×q,則有φ(n)=φ(pq)=φ(p)φ(q);
  • 根據“大數是質數的兩個數一定是互質數”可以知道:一個數如果是質數,則小于它的所有正整數與它都是互質數;所以如果一個數p是質數,則有:φ(p)=p-1
  • φ(n)=(p-1)(q-1)
  • 例如: 定理二: n=33,q=3,p=11,n=p*q p、q均為質數,所以只要是小于自己本身的都是互質數,因此才有如下公式 φ(p)=(p-1)//(-1)是為了去除本身,得出與其互質的個數 φ(q)=(q-1) 所以: φ(33)=3-1*11-1=30

    除此之外,還需了解一下歐拉定理與模反元素

    概念清楚過后,就來梳理一下生成密鑰對的流程

  • 隨機選擇兩個不相等的質數p和q,p與q越大則越安全選取p和q
  • 計算p和q的乘積n 計算出n的值
  • 計算n的歐拉函數值,即φ(n)=(p-1)(q-1)計算出φ(n)的值
  • 隨機選擇一個整數e,條件是1<e<φ(n),且e與φ(n)互質得出e的值
  • 計算e對φ(n)的模反元素d計算出d的值
  • 將(n,e)封裝為公鑰,(n,d)封裝為私鑰n的長度就是密鑰長度
  • 公鑰n:質數p和質數q的乘積,e:與φ(n)互質
    私鑰n:同公鑰n,d

    m為明文,c為密文

    參考大佬博客學習了一波,真的是學到知識了。
    黃映焜的博客園
    一文搞懂 RSA 算法
    RSA算法使用介紹
    RSA算法流程
    RSA練習

    這次就先學習到這里,下次就開始練習RSA題目。

    總結

    以上是生活随笔為你收集整理的I春秋—— Crypto Write up(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。