當前位置:首頁 » 操作系統 » 演算法題破解

演算法題破解

發布時間: 2023-08-14 23:34:35

1. DES中S盒演算法——解題

        在密碼學中,S盒(Substitution-box)是對稱密鑰演算法執行置換計算的基本結構。S盒用在分組密碼演算法中,是唯一的非線性結構,其S盒的指標的好壞直接決定了密碼演算法的好壞。 ——網路

S盒有8個盒子,下表是DES演算法中S4盒的選擇矩陣,如果其輸入為101011,求輸出結果。

解:已知輸入為101011

(1)、取頭尾11,進行二進制轉換為十進制為3,表示取表格的第3行

(2)、然後中間0101,進行二進制轉換為十進制為5,表示取表格的第五列

(3)、(3,5)對應表格中的數字是12,12轉換為二進制就是1100

答:如果該盒輸入為101011則輸出的結果為1100

2. 幫我解決一道C語言演算法的問題

這是一個最大子序列和問題。通常用動態規劃法解。至於動態規劃的數學模型,懶得去查了,直接給你找了一個演算法,你湊合看吧。

從整數序列頭部開始掃描,假設現掃描到的位置為i,求取從0到i所有元素的和sum[i],sum[i]取最大值的地方即為最大子序列的結束位置,設為a。從結束位置a向前掃描,找到第一個小於零的位置b,b+1就是最大子序列的開始位置。求從b+1到a位置的值即可得到最大子序列和。按此思路該演算法時間復雜度為O(m+n),其中m, n分別為最大子序列的長度、給定整數序列的長度。
改進:根據對上述演算法的進一步分析,可以知道,最大子序列和中必然不存在前綴子序列小於0的情況,於是設一ThisSum用於指示當前子序列和。改進演算法描述如下:從整數序列頭部開始掃描,累加序列元素和ThisSum,若ThisSum<0,則停止累加子序列和,將ThisSum清零,並從下一位置重新開始累加ThisSum,否則將ThisSum與當前MaxSum比較,並更新MaxSum。此改進演算法時間復雜度僅為O(n),n為給定整數序列的長度。

int MaxSubsequenceSum3(const int A[], int N)

{

int ThisSum, MaxSum, i;

ThisSum = MaxSum = 0;

for(i = 0; i < N; i++)

{

ThisSum += A[i];

if(ThisSum > MaxSum)

MaxSum = ThisSum;

else if(ThisSum < 0)

ThisSum = 0;

}

return MaxSum;

}

3. 異或演算法的密鑰破解,知道密文和明文 ,可以求密鑰嗎已知是異或加密的,寫個原理也好的。

可以。
比如:明文(如1111)⊕密鑰(如1001)得到密文(如0110)
然後拿密文(0110)⊕明文(1111)就得密鑰(1001)

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:705
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:968
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:676
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:828
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:737
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1076
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:308
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:188
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:875
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:829