2011-10-18 72 views
1

我在做一個項目,我需要必須要麼找到或建立一個RSA和Elgamal的算法,三重DES算法和數字哈希簽名算法。RSA/Elgamal的僞

我試圖把我的代碼放在一起,但我不斷收到掛在編碼RSA和ElGamal。我想知道是否有人與RSA僞代碼有任何有用的聯繫:特別是,計算大素數(又名p和q)[我似乎無法得到euler的權利],並找到一個副本phi(n)=(p-1 )(q-1)(又名e)。我試圖編寫的所有方程式的目的是高效地找到大質數。如果有人知道更簡單的方法來做到這一點[有效地計算大素數],將不勝感激。

此外,我得到了一些填充填充...我可以通過我的項目只是做一個nonpadded加密/解密刮,但我想有點去超越......任何鏈接有用的填充方案/填充方案僞代碼將非常有幫助。

我試着在谷歌良好的僞代碼搜索,但我才真正找到那種曖昧的僞代碼爲大素數計算......(要麼或我真的非常密集)。

任何幫助將不勝感激(和公正的指定,我不需要別人來寫一個完整的算法對我來說,我只需要在正確的方向推)。

謝謝你的時間。

+0

什麼是這個僞代碼混淆:'do {p = random_prime_of_the_right_size();直到(isPrime(p));'? –

+0

是的,我明白你的意思了......我想我在帖子裏沒有很好地解釋自己。 所以尋找素數對我來說不是問題,它有效地找到了大素數。所以基本上我需要找到一種在O(n)時間內找到大素數的方法[雖然O(1)時間會很壯觀哈哈],現在所有我能想到的實現都在O(n^2 ) 時間。 我會編輯我的文章,指定我正在尋找一個有效的實現。 – gfppaste

回答

2

I'm trying to put my code together, but I keep getting hung up on coding RSA and Elgamal. I was wondering if anyone had any useful links to RSA pseudocode: specifically, calculating large primes (aka p and q) [I can't seem to get euler's right], and finding a coprime to phi(n) = (p-1)(q-1) (aka e)

生成大素數是不容易的,因爲計算的黃金不正確的方法是已知的(幸運的是,如果有一個,RSA將被打破)。你平常做的是採取隨機數和像Miller-Rabine其瓶坯很好執行素性測試(50個執行範圍縮小到了1/2^50%的機會被測試的數字是一個素數)。唯一的要求是隨機數必須是真的是隨機,否則找到的密鑰是不安全的。 Linux/dev/random是啓動一個隨機生成器的一個很好的來源。或者一種語言的首選加密模塊(C:openssl,Java:SecureRandom ...)。

沒有real RSA周圍的僞代碼,因爲它是一個數學過程。最接近我能得到的僞代碼python implementation對於一代人來說,識字程序上有一個整潔的python example。另外here

關於填充,wikipedia解釋了一個填充方案很好。此blog entry幫助我瞭解填充。 鏈接關於填充: http://rdist.root.org/2009/10/06/why-rsa-encryption-padding-is-critical/ http://www.symantec.com/connect/blogs/common-rsa-implementation-mistake-explained

我希望這你到正確的方向。