生日攻擊實現離散對數問題的求解 C

2021-09-09 06:03:21 字數 493 閱讀 1471

!!!生日攻擊是個概率性問題以下**可能只能實現部分離散對數求解問題,通過修改隨機數種子可能會解決不同的問題…

// birthdayattack.cpp : 定義控制台應用程式的入口點。

//生日攻擊

#include "stdafx.h"

#include #include #include using namespace std;

#define random(x) (rand()%x)

long long x, y, q;

long long func(long long a, long long b)

else

return y;//y是 b mod a的逆元 不保證y在一定範圍內

}long long k_mod(long long a, long long k, long long p)

離散對數問題

離散對數公鑰加密演算法是目前最為熱門的公鑰加密演算法 其安全性要遠遠高於基於大數分解的rsa演算法。離散對數問題可以描述為 給定乙個質數p,和有限域zp上的乙個本原元a,對zp上整數b,尋找唯一的整數c,使得a c b mod p 一般的,如果仔細選擇p,則認為該問題是難解的,且目前還沒有找到計算離...

離散對數問題與求本原根的問題

離散對數問題是指給出底數,給出結果,求指數困難。而求本原根的問題是指給出指數,給出結果,求底數困難。之前總覺得這跟上面的離散對數問題是一樣的,仔細想想確實有很大差距,我覺得離散對數問題可能更多用來簽名吧,而求本原根的困難問題就來設計加密。但是如果數的分解問題能夠解決,這樣在部分情況下就能找到求解本原...

利用堆疊實現迷宮問題的求解

解決迷宮問題的常用演算法就是回溯法,基本思想就是 從起點出發,順著乙個方向探索,若能夠走通,則繼續往前走,若不能夠走通,則沿原路退回一步,換乙個方向繼續探索,直至找到乙個可行的通路。此時從可行通路的到達終點的前一步進行回溯,即先從終點退一步到達終點前的第乙個位置,若該位置的四個方向還沒有探索完,則換...