當前位置:首頁 » 編程軟體 » 編程密碼學題

編程密碼學題

發布時間: 2025-03-29 19:07:26

『壹』 棘手的編程問題

比較普通的acm題目而已(貌似是IOI?) 沒有二樓說的那麼玄, 還密碼學呢..

說下演算法, 如果樓主要求, 可以給代碼

1. 每個單詞起作用的也就是頭尾兩個字母, 很好理解

2. 如果某個單詞集合滿足題目條件, 則可以推出單詞集合具有以下性質:設所有單詞首字母構成集合A, 尾字母構成集合B, 容易想到, AB字元數一樣, 且最多有一個字元不同, (即僅允許第一個單詞的首字母和最後一個單詞的尾字母不同)

3. 而同時, 所有滿足2性質的單詞集合, 都可以滿足題中條件(串連起來), 也就是說2是充要條件 (這個有些不好想, 自己在紙上畫畫)

因此, 只要判斷單詞集合是否滿足性質2即可, 而這個是很簡單的事情

『貳』 密碼學問題 為什麼RSA數字簽名一定要先簽名、後加密我是初學者,謝謝!!!

我是這么覺得:
簽名的一個目的是:防止簽名雙方抵賴。
如果先加密的話,到時候他有可能不認賬。

而且,特別是針對RSA簽名演算法,有一種專門針對先加密後簽名的攻擊。為了防止這種攻擊,推薦採用先簽名後加密。
這種攻擊方法為:
假設簽名者A用先加密後簽名的方法把消息x發給B,他是先用B的公鑰eb對x加密,然後用自己的私鑰da簽名,設A的模數為na,B的為nb,那麼,A發給B的密文為: (x^eb mod nb)^da mod na
如果B不誠實,那麼B可能偽造A的簽名。謊稱收到的是x1.因為nb是B的模數,所以B知道nb的分解,於是可以計算模nb的離散對數。 (x1)^k=x mod nb
之後,B再公布他的新公鑰。然後宣布收到的是x1不是x。

熱點內容
歐幾里德演算法c語言 發布:2025-09-23 21:37:55 瀏覽:801
ssl證書https加密 發布:2025-09-23 21:37:02 瀏覽:271
java編譯混淆 發布:2025-09-23 21:27:42 瀏覽:907
php當前頁面跳轉 發布:2025-09-23 21:27:35 瀏覽:859
ftp斷開後揮幾次手 發布:2025-09-23 21:15:19 瀏覽:651
android源碼淘寶 發布:2025-09-23 21:10:30 瀏覽:34
pythonubuntu開發環境 發布:2025-09-23 20:52:03 瀏覽:590
c51可讀寫程序存儲器 發布:2025-09-23 20:47:45 瀏覽:909
JAVAblobSQL 發布:2025-09-23 20:46:36 瀏覽:408
配置mysql資料庫連接池 發布:2025-09-23 20:29:49 瀏覽:318