2012-06-22 88 views
1

使用128位密鑰進行加密和解密意味着密鑰不能存儲在long int變量中。那麼什麼算術運算完全可以用這個鍵來完成。32位或64位CPU如何對大數字進行算術運算?

+1

你可以看看在[OpenSSL的〕國陣(大碼)(http://openssl.org/) , 例如。還有GNU [GMP](http://gmplib.org/)軟件包,可以作爲你之後的基礎。當然,128位算術只是64位的小擴展;這些軟件包能夠處理更大的計算,例如可用於公鑰加密的2048或4096位數。您可能想要將128位算術看作類似於8位或16位或32位CPU執行16位或32位或64位算術的方式。 –

+0

@JonathanLeffler你的評論本來是值得回答的:) – emboss

回答

2

讓我問你一個問題:如果你只有你的大腦,一支紙和一支紙,你會如何增加或減少 - 而且數量比你直接用大腦計算的數量還要多?

用於筆和紙張數學的相同方案可應用於比CPU寄存器更長的數字。

對於某些加密算法有RSA的也進行了優化,專業的數學運算,像Montgomery Multiplication

+0

就像「手工計算」一樣,有很多優化可以發生。在用於劃分的表格中,第一個奔騰系列之一[着名的有一個缺陷](http://www.willamette.edu/~mjaneba/pentprob.html)。 –