加密中数论基础知识,RSA加密算法及证明

记法

设n为正整数,a和b为整数,若a和b被n除后所得余数相同,
称a和b模n同余,记为a≡b(mod n);或  a≡b(% n)
此式被称为同余式。

或表达为:a % n =b % n  或 a mod n =b mod n;

若n能整除a则同余式表示为a ≡ 0(mod n)。

欧拉函数

对于正整数N,少于或等于N ([1,N]),且与N互质的正整数(包括1)的个数,记作φ(N)。即欧拉函数。

欧拉定理:

若N>2; a与N互质,则a^(φ(N))  ≡ 1 (mod N )

欧拉函数的性质:

(1)   p^k型欧拉函数:

若N是质数p(即N=p), φ(N)= φ(p)=p-p^(k-1)=p-1。

若N是质数p的k次幂(即N=p^k),φ(N)=p^k-p^(k-1)=(p-1)p^(k-1)。

(2)  mn型欧拉函数

若m,n互质,φ(mn)=(m-1)(n-1)=φ(m)φ(n)。

(3)  特殊性质:

若n为奇数时,φ(2n)=φ(n)。

费马小定理:

设任意整数a和素数p互素 ,则 a^p-1 ≡ 1(mod p)

运算规则

模运算与基本四则运算有些相似,但是除法例外。其规则如下:

 (a + b) % p = (a % p + b % p) % p (1)

 (a - b) % p = (a % p - b % p) % p  (2)

 (a * b) % p = (a % p * b % p) % p (3)

 (a^b) % p =   ( (a % p)^b ) % p     (4)

结合率:

((a+b) % p + c) % p = (a + (b+c) % p) % p (5)

 ((a*b) % p * c)% p = (a * (b*c) % p) % p   (6)

交换率:

 (a + b) % p = (b+a) % p (7)

 (a * b) % p = (b * a) % p (8)

分配率:

 ((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p (9)

重要定理

若a≡b (% p),则对于任意的c,都有(a + c) ≡ (b + c) (%p);(10)

若a≡b (% p),则对于任意的c,都有(a * c) ≡ (b * c) (%p);(11)

若a≡b (% p),c≡d (% p),则 (a + c) ≡ (b + d) (%p),(a - c) ≡ (b - d) (%p),

(a * c) ≡ (b * d) (%p),(a / c) ≡ (b / d) (%p); (12)

若a≡b (% p),则对于任意的c,都有ac≡ bc (%p); (13)

RSA中重要的推论

m 和 n 是互质的正整数,则:

(a^m) %n  =  ((a%n)^m) %n

推论证明

   a^m % n 
   =a*a ^(m-1) %n
   =(a%n) *(a ^(m-1) %n ) % n  //后续不断展开,一直至a ^0,即共有m项
   =((a%n)^m) %n 

推论中举例:

比如:2^3 mod 5
 = (2 mod 5)^ 3 mod5
 = 8 mod5
 = 3
还有:3^3 mod 2
= (3 mod 2) ^3  mod 2
=1^3 mod 2
=1

加密思路:加密本质上是对加密内容的字节数组进行加密。不是对字符的本身进行加密。这样,整数对整数就可以进行相关的变换,即加密了。

比如:"I love Rust,Julia & Python, they are so cool! "的字节数组为:
[73, 32, 108, 111, 118, 101, 32, 82, 117, 115, 116, 
44, 74, 117, 108, 105, 97, 32, 38, 32, 80, 121, 116, 
104, 111, 110, 44, 32, 116, 104, 101, 121, 32,
 97, 114, 101, 32, 115, 111, 32, 99, 111, 111, 108, 33, 32]

RSA加密算法为:

(1) 取两个大素数p,q (保密);
(2) 计算 n=p*q (公开), φ(n)=(p-1)*(q-1) (保密);
(3) 随机选取整数e,满足 gcd(e, φ(n))=1 (e与φ(n)互素)(公开);
(4) 计算 d 满足 d*e≡1 (mod φ(n)) (保密); (d为e的逆元,可通过扩展的欧几里得算法进行求解)
(5) {e,n}为公钥,{d,n}为私钥,也可以用{e,d}表示密钥对
(6) m为加密内容(如73),此时c为加密后的密文;
       加密时 c = m^e mod n 
       解密时 m = c^d mod n
(7) m为签名内容,
       签名时c = m^d mod n ;
       解密时 m = m^e mod n

为什么RSA算法能保证其安全性?

要破解m =>
必须知道  d或e =>
必须知道  φ(n) =>
必须知道  p及q;  =>
必须能破解 n=p*q =>
大质数因式分解的难度 => 公认

RSA证明

主要要证明m是否c^d mod n。由c = m^e mod n 。设M =m^e
证式
 =    c^d mod n
 =  (m^e mod n )^d mod n 
 =    (M mod n) ^d mod n
 =    M^d mod n                   //见上面的推论
 =    m^(d*e )mod n ; 
因为 d*e≡1 (mod φ(n)) 
得到:d*e =k *φ(n) +1 ; k是正整数。
上面证式还有,
 =    m^(k *φ(n) +1 ) mod n
 =    m^(k *φ(n))*m  mod n     // 
 =    (m^(k *φ(n))mod  n ) *(m mod n)  mod n         //  乘法 
 =    1 * m mod n  // 由欧拉定理
 =    m
 证毕。
 所以解密的公式是对的。

每个程序员都应该收藏的算法复杂度速查表

英文:http://bigocheatsheet.com/
编译:Linux中国
链接:https://linux.cn/article-7480-1.html

这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 OBig-O 复杂度。我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便我在面试时不会被问住。最近这几年,我面试了几家硅谷的初创企业和一些更大一些的公司,如 Yahoo、eBay、LinkedIn 和 Google,每次我都需要准备这个,我就在问自己,“为什么没有人创建一个漂亮的大 O 速查表呢?”所以,为了节省大家的时间,我就创建了这个,希望你喜欢!

— Eric[1]

图例

数据结构操作

数组排序算法

图操作

堆操作

大 O 复杂度图表

Big O 复杂度

推荐阅读

  • Cracking the Coding Interview: 150 Programming Questions and Solutions[33]
  • Introduction to Algorithms, 3rd Edition[34]
  • Data Structures and Algorithms in Java (2nd Edition)[35]
  • High Performance Java (Build Faster Web Application Interfaces)[36]

关注「算法爱好者」

Web的十大可疑顶级域名,你知道么?

就像所有城市一样,互联网也有一些频繁发生可疑活动的地区,比如垃圾邮件、网络诈骗、有潜在威胁的软件、恶意软件、僵尸网络、网络钓鱼等。

企业安全公司Blue Coat System定期分析来自1万5千家企业和7500万用户的Web请求,跟踪互联网上的可疑活动。该公司在上个月发布了与恶意网站有所联系的十大顶级域名。

Web的十大可疑顶级域名,你知道么?
主流的顶级域名以前有在过去的几年中数量激增,从.com、.net和.org扩展出了更多种类。新兴的顶级域通常会吸引大量威胁源,因为使用它们进行注册的成本比起著名的顶级域名要低得多。

Blue Coat建议组织采取措施进行防护,比如屏蔽高风险顶级域名,或者在用户连接到托管在这些顶级域名上的网站时发出警告。Blue Coat还建议用户在不确定目标链接的具体地址时将光标移到超链接对象上,查看目标的具体地址。如果使用移动设备,可以通过点击并长按执行相同的操作。以下是十大最可疑的顶级域名:

1 .zip

这份名单的内容变化很快。.zip域名在Blue Coat于九月份发布报告时还高居榜首,但其排位之后大幅下滑。Blue Coat公司恶意软件研究小组负责人克里斯·拉尔森指出,让.zip高居榜首的原因在于它其实仅有一个活跃域nic.zip,ta是Google的预注册页面,会将用户中继到google.com下属的一个页面,其中介绍了他们新的顶级域名。

拉尔森说:“来自.zip的URL的确出现在了我们的流量日志中,根据公司的WebPulse系统记录,每天我们的客户都会发出10亿匿名访问Web的请求。如果你仔细研究,记录中的大多数都是文件名,而不是URL,但它们最终肯定是以某种方式作为URL出现在了某人的浏览器上,并且被判定成了可疑链接。”

大多数请求都是看上去很搞笑的URL,它们并不能解析,因此被标记为可疑。但拉尔森补充称很多客户雇佣的安全公司都发现.zip域名和Cryptowall、MiniDionis和CozyBear等恶意软件家族间存在联系。

2 .review

尽管.zip从第一的位置上跌落,顶级域名.review仍稳坐全网第二大可疑域名。拉尔森解释称这主要是由于它托管的诈骗网站。

“只要看一看域列表,你就会发现前15个都是诈骗网站,其中至少12个都与中国某保健品诈骗网站同属一个家族。.review可能并没有对驱逐坏人们作出任何努力。”

3 .country

顶级域名.country最近已经在Blue Coat公司的排名中获得了第一,但在报告9月份发布时它还位居第三。

“.country并不像是.click、.link和.rock这些顶级域名,为了弄清它究竟托管了多少恶意网站,我开始时查看了公司的日志。我发现所有近期注册的.country域名都是可疑的。因此如果你想在Web网关上完全屏蔽该域名,我不会怪你。如果有心情的话,你还可以屏蔽.click域名,尽管它并没有像.country这么糟糕。”

该顶级域名似乎已经完全成为了以有奖游戏/调查为名进行钓鱼的诈骗网站殖民地。拉尔森提示,Blue Coat没有直接发现任何与此网络相关的恶意软件,但有些它的配套广告网络与可疑软件存在密切联系。

4 .kim

.kim顶级域名在Blue Coat报告中排位第四。但拉尔森提示称.kim和.xyz(并不属于排名前十)的域名注册商都已经联系了Blue Coat公司,以消除他们顶级域名下的一些可疑活动。

“我们在最近的流量中发现了改变。他们做得更好了,这理应得到称赞。”

该顶级域名确实托管了一些合法的域,最著名的是韩国的某科技博客和土耳其的几家网站(Kim在土耳其语里是“谁”的意思)。但该域名与可疑软件和诈骗网站间存在联系,而且至少有一个域上托管了域名生成算法,该算法能够生成可被恶意软件利用的域名。因此,.kim理应榜上有名。

5 .cricket

.cricket取名自世界上第二大流行的运动:板球。该顶级域名被列为全网第五大可疑顶级域名。

拉尔森指出,尽管它也托管了一些合法网站,但其中存在大量搜索引擎毒化的实例。例如,StarWarsMovie.cricket从其它地方拉来了大量星球大战相关周边的图片,以获取流量,其中有些图片显然就是从其它地方盗取的。如果在页面上点击,将跳转到销售蓝光《星球大战第六部:绝地归来》的网站。

6 .science

第六大可疑顶级域名很大程度上成了其营销策略的牺牲品。为了提升顶级域名的名气,域名注册商曾免费开放.science域的注册。

“他们以低价倾销,基本可以肯定会遇上麻烦。如果花一块钱就能注册一个域名,坏人将蜂拥而至。”

拉尔森说,相比可疑软件和诈骗,.science域和sao’rao的关系最紧密。他指出,可疑活动包括一个大型电子书网站,它的下载页面曾存在可疑软件活动。另一个网站则销售定制的学术论文。

7 .work

顶级域名.work看上去和骚扰及诈骗离得更近,离恶意软件比较远。然而拉尔森的小组找到了一些指向可疑软件分发网络的尝试性链接。拉尔森指出,虽然存在一些合法网站,它仍旧值得屏蔽。举例而言,它托管了一家土耳其色情网站和巴基斯坦的一家视频剪辑网站,这两个网站极其相似。

8 .party

.party位列第八。这里的很多网站乍一看都是合法的。比如排名第一位的FashionOnly.party,页面上展示了女性婚纱礼服和休闲服装。

拉尔森说:“有一些小黄旗,这些图片都有点烂,所有都像是从原格式转换出来的。很多照片的背景中都有其他网站的水印。这是一个没有意义的网站。在评论中也没有任何内容”

这些都是搜索引擎毒化的标志。该顶级域名还托管了一大堆MP3网站,它们有可能是盗版或者恶意软件传播平台。另有一家网站托管了可疑的Tracker。

9 .gq

.gq是赤道几内亚的国家代码。Blue Coat的报告公布以来,.gq已经滑出前10位。但拉尔森指出,它在许多方面能够获得终身成就奖。

“如果翻看数据库中所有与.gq相关的评分,超过7500条的的评价中有99%是可疑的。”

Blue Coat报告中称,大多数对.gq的滥用都属于搜索引擎毒化,一大部分作为Cookie截取器的可疑视频都和恶意软件相关。它还托管了一些自称“震撼视频”的骚扰/诈骗网站,以及少量的其它恶意软件、钓鱼和色情网站。

10 .link

.link是Blue Coat名单的最后一位。该顶级域名充斥着色情内容分发网络和盗版网站,但这都不是Blue Coat标记为可疑的对象。有一家日本网站专门提供关于橄榄球的体育内容,另一家网站则转发美国一些广播电台的新闻内容。但在这些合法域之外还存在很多诈骗网站。

“根据历史来看,这是一个滋生骚扰网站的顶级域。”拉尔森说。

人名与术语

克里斯·拉尔森(Chris Larsen)

顶级域名(Top Level Domain,TLD)

域名生成算法(Domain Generation Algorithm,DGA)

搜索引擎毒化(Search Engine Poisoning)

本文业界资讯相关术语:网络安全论文 网络安全密钥 网络安全工程师 网络安全技术与应用 网络安全概念股 网络安全知识 网络安全宣传周 网络安全知识竞赛 网络安全事件

广东一景区推天体森林浴 年轻女孩成首名游客(图)

2012年02月20日 16:12 来源:广州日报 作者:杨波

这名女孩大胆体验森林浴,让整个身心融入到森林花香之中。

这名女孩大胆尝试(来源:珠江时报)

广州日报讯(记者杨波通讯员叶爱群)早春的阳光透过树叶空隙铺满落叶的地上,金黄如稻穗一样的木姜花盛放在枝头,空气清新而湿润,几声鸟鸣更让森林显得清静幽远。一名年轻女子轻轻脱掉衣服,漫步在阳光斑驳、古树参天、藤蔓缠绕的林荫小道,没有衣物牵绊的身体享受着阳光与森林的轻抚,带来赏心悦目的快乐。三水一景区为让游客与大自然亲密接触,昨天推出天体森林浴,一名前卫大胆的女孩成为体验感受天体森林浴的第一人。

昨天是周日,虽然已经是早春天气,但天气依然春寒料峭。有一名大胆女游客首度来到该景区体验感受天体森林浴。

大胆女孩成“吃螃蟹”第一人

昨日下午2时,这名女游客轻解罗裳,在开满木姜花,洒满落叶的林荫小径上漫步,尽情地享受阳光下的森林浴。

20多分钟后,这名女子体验完了天体森林浴。沐浴了森林与阳光的女孩在接受记者采访时掩饰不住自己的快乐。

她告诉记者,森林浴是一种非常健康的度假休闲方式。森林中的许多树木花草,如樟树、落叶松、蒲公英等,会散发出一种对人有益的药素,这种药素不但可以治疗某些常见病,而且对身体非常有益。而沐浴森林浴,对身体更好,能够让身体没有衣物牵绊地与森林、大自然亲密接触。

争议

支持者:这是一种享受

反对者:还是“有伤风化”

记者随机询问了部分游客,对天体森林浴能否接受?首度体验天体森林浴的女孩认为,与阳光亲吻、与森林拥抱,让身体完全解放,享受特别的乐趣,的确是一种享受。裸游是正常的现象,不必大惊小怪,这体现了人们观念的一种进步,不应该被禁止。“只要不影响他人,那裸游就无可非议。”

来自广州的游客李先生认为,受到传统的道德观念影响,在公众场合“裸体”将被视为是“有伤风化”的举动。因此能冲破那种道德底线的人也寥寥无几。

在南海一间中学做教师的罗先生认为,至今还没有在公共场合推行裸泳、裸体森林浴的做法,该景区推出这个项目值得三思而后行。虽然天体森林浴对身体健康很有好处,但在目前开设天体浴场还是会被多数人认为有伤风化。

而从事律师工作的王先生则认为,法律上尚无明文规定禁止“裸泳”,景区搞森林浴并不违反相关法律。关键要划分男宾区和女宾区,禁止未成年人入裸体浴区,禁止男女混浴(包括夫妻在内),禁止拍照摄影等,使游客能真正释放自我,领略原始森林浴的无穷魅力。

铁道部:订票网站成全球最繁忙网站之一

2012-01-09 07:59 来源: 新华网

新华网北京1月8日电(记者齐中熙 樊曦)日均点击超过10亿次,中国火车票订票网站“12306”在春运开始前7天就瞬间成为世界上最繁忙的网站之一。

铁道部副部长胡亚东8日在国务院新闻办举行的春运新闻发布上称,从1月1日到7日,“12306”网站日均点击次数已经超过了10亿次。“有的专家评论,中国铁路‘12306’客户服务网站瞬间可能达到了‘世界第一’。”

他表示,在售票服务方面,今年全国铁路第一次实行了网络售票和电话订票。这个措施实施以后,方便旅客购票和回应社会上对铁路售票公开、公平上产生了比较好的效果。

“现在网络售票和电话订票,每天已经达到了200万张,网络售票的注册用户已经超过了1000万人。现在有200万张票通过网络和电话售出,也就是说,有约1/3的旅客不用再到车站好几个小时、甚至整宿排队买票。”胡亚东说。

此外,对社会比较关注的学生、农民工和残疾人的出行,铁路部门也扩大了他们订往返票的时间和范围,各个车站都可以在这40天期间办理学生、民工团体的往返票,组织开行大量的民工专列。铁路新造的带有残疾人专用席位和专门设施的车辆,也要在今年春运中投入使用。