rsa
RSA算法是基于數(shù)論中的同余理論。如果用m代表明文,c代表密文,E(m)代表加密運(yùn)算,D(c)代表解密運(yùn)算,x=y(mode z)表示x和y模z同余,則加密和解密算法簡單表示如下:
加密算法 c=E(m)=me(mod n)
解密算法 m=D(c)=cd(mod n)
其中n和密鑰e是公開的,而密鑰d是保密的。
下面討論密鑰的求?。?
①選取兩個隨機(jī)大素數(shù)p和q(保密);
②設(shè)n=p×q;
③歐拉函數(shù)φ(n)=(p-1)(q-1)(保密);
④選取與φ(n)互素的正整數(shù)e,即滿足gcd(φ(n),e)=1和0<e<φ(n);
⑤計算d(保密),使?jié)M足e×d=1(mod φ(n)),即d和e相對于模φ(n)互為逆元素。
由RSA算法原理可知,RSA算法的核心是求模取余運(yùn)算,其安全性是建立在大合數(shù)因子分解困難的基礎(chǔ)之上的。