什么是編程 RSA算法的功能?
RSA算法的功能?RSA算法是一種公鑰加密機(jī)制,它使用不同的加密密鑰和解密密鑰。從已知的加密密鑰推導(dǎo)解密密鑰在計(jì)算上是不可行的。RSA由Ron Rivest、ADI Shamir和Leonard Ad
RSA算法的功能?
RSA算法是一種公鑰加密機(jī)制,它使用不同的加密密鑰和解密密鑰。從已知的加密密鑰推導(dǎo)解密密鑰在計(jì)算上是不可行的。
RSA由Ron Rivest、ADI Shamir和Leonard Adleman于1977年提出。他們?nèi)齻€(gè)都在麻省理工學(xué)院工作。RSA是他們姓氏首字母的組合。它的原理是:根據(jù)數(shù)論,找到兩個(gè)大素?cái)?shù)相對(duì)簡(jiǎn)單,但對(duì)它們的乘積進(jìn)行因式分解卻極為困難,因此乘積可以作為加密密鑰公開(kāi)。
計(jì)算機(jī)編程算法和數(shù)學(xué)有什么關(guān)系?
數(shù)學(xué)對(duì)于計(jì)算機(jī)算法編程非常重要。我將主要從以下兩個(gè)方面來(lái)解釋為什么它如此重要
數(shù)學(xué)和算法編程需要很強(qiáng)的邏輯思維能力。程序代碼的邏輯結(jié)構(gòu)、連接方式和處理方式需要較強(qiáng)的邏輯思維能力。如果你學(xué)好數(shù)學(xué),有很強(qiáng)的邏輯思維能力,你通常會(huì)對(duì)算法編程有更深的理解。
這應(yīng)該是為什么數(shù)學(xué)和算法編程更相關(guān)的一個(gè)重要原因。無(wú)論是計(jì)算機(jī)的底層還是底層,數(shù)學(xué)知識(shí)都處處體現(xiàn)。例如,計(jì)算機(jī)底層的二進(jìn)制、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的梯度求導(dǎo)、SVD分解、張量分解、PCA特征值、優(yōu)化問(wèn)題、密碼學(xué)的大數(shù)分解、概率圖模型等都與數(shù)學(xué)有著密切的關(guān)系。我舉兩個(gè)例子來(lái)實(shí)現(xiàn)
代碼實(shí)現(xiàn)如下
代碼比(float)(1.0/sqrt(x))快4倍,計(jì)算性能有了質(zhì)的飛躍。為此,專門有一篇論文《快速平方根逆》來(lái)解釋這段代碼的數(shù)學(xué)原理。感興趣的同學(xué)可以找這篇文章學(xué)習(xí)。
如果不直接使用數(shù)學(xué)知識(shí)和搜索,時(shí)間復(fù)雜度為O(n),效率較低,很難按照目前的計(jì)算機(jī)水平進(jìn)行計(jì)算。如果我們知道Brahmagupta–Fibonacci恒等式、Pollard-Rho分解法、二次同余方程的解、歐氏除法等數(shù)學(xué)知識(shí),那么求解這個(gè)問(wèn)題的時(shí)間復(fù)雜度就大大降低,結(jié)果保證在0.2秒之內(nèi)。
如果工作是算法崗位,數(shù)學(xué)更重要,因?yàn)闄C(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、NLP等方向的基本原理基本上都離不開(kāi)數(shù)學(xué)。