Cryptography I 学习笔记 --- 数论简介
0. Zn代表{0,1....n-1}的集合
1. 模运算符合交换律结合律
2. gcd(greatest common divisor),可以由扩展欧几里得算法快速得到。
3. 模逆(modular inversion),在Zn上,x的模逆为y,那么x*y=1 mod n
4. Zn上如果x有模逆,那么x与n互质,也就是gcd(x,n)=1
5. Zn*代表Zn中,所有可逆元素的集合。那么如果n为质数,那么Zn* = Zn - {0}
6. 费马小定理:如果p是质数,那么任意x ∈ Zp*,都有xp-1 = 1 (在Zp上)。可以用费马小定理判定一个数是否为素数,但是有极少数的Carmichael数会躲过这一检测
7. 如果g ∈ Zp* 并且 {1,g,g2,g3...gp-2}=Zp* ,那么g是Zp* 的生成元(generator)
8. 对于g ∈ Zp*,{1,g,g2,g3...gp-2}的大小,是g在p上的序(Order),记做ordp(g)。另外有,(p -1 ) 一定能被 ordp(g) 整除
9. 欧拉函数:φ(n) = 为从1到n,与n互质的数的个数。
如果n为质数:φ(n) = n-1
如果n为质数p的k次方,那么φ(n) =pk-pk-1
如果n=p*p,且p与q互质,那么φ(n) = φ(q) *φ(p)
10. 欧拉公式:如果a与n互质,那么aφ(n) = 1 mod n。很显然,费马小定理是欧拉公式的特例
11. 如何求某个元素的模逆?可以利用欧拉公式:aφ(n) = a * aφ(n)-1 = 1 mod n,也就是说a的模逆是 aφ(n)-1 mod n
12. 中国剩余定理:只需要较弱的一个结论:如果p与q互质,且x = y mod p,x = y mod q,那么可以得到x = y mod p * q
13. 如何求一个阶为n的有限循环群的生成元?以及一个阶为n的有限循环群的生成元有多少个?
如果gcd(n, r)=1,也就是说只要r与n互质,那么r就是这个阶为n的有限循环群的生成元
也就是说,一个阶为n的有限循环群的生成元有φ(n)个。
Cryptography I 学习笔记 --- 数论简介的更多相关文章
- Linux内核学习笔记-1.简介和入门
原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...
- React学习笔记 - JSX简介
React Learn Note 2 React学习笔记(二) 标签(空格分隔): React JavaScript 一.JSX简介 像const element = <h1>Hello ...
- CUBRID学习笔记 1 简介 cubrid教程
CUBRID 是一个全面开源,且完全免费的关系数据库管理系统.CUBRID为高效执行Web应用进行了高度优化,特别是需要处理大数据量和高并发请求的复杂商务服务.通过提供独特的最优化特性,CUBRID可 ...
- shiro学习笔记_0100_shiro简介
前言:第一次知道shiro是2016年夏天,做项目时候我要写springmvc的拦截器,申哥看到后,说这个不安全,就给我捣鼓了shiro,我就看了下,从此认识了shiro.此笔记是根据网上的视频教程记 ...
- Mybatis-Plus 实战完整学习笔记(一)------简介
第一章 简介 1. 什么是MybatisPlus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只 ...
- ElasticSearch学习笔记-01 简介、安装、配置与核心概念
一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进 ...
- python学习笔记1--python简介和第一行代码编写
一.什么是python? python是一种面向对象,解释型语言,它语法简介,容易学习.本节博客就来说说本人学习python的心得体会. 二.python环境安装 目前python版本有python2 ...
- symfony学习笔记1—简介
1.symfony快速入门还是先看代码结构把,这个是拿到代码的第一印象,app/:整个应用的配置,模版,translations,这个可能是多语言文件什么,src/:项目php文件,vendor/:第 ...
- REVIT个人学习笔记——1.简介及熟悉界面
此贴并非教学,主要是自学笔记,所述内容只是些许个人学习心得的记录和备查积累,难以保证观点正确,也不一定能坚持完成. 如不幸到访,可能耽误您的时间,也难及时回复,贴主先此致歉.如偶有所得,相逢有缘,幸甚 ...
随机推荐
- Linux命令之---touch
命令简介 linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 命令格式 touch [选项]... 文件... 命令参数 -a 或 ...
- 【转载】2015年8月编程语言排行榜:Java遥遥领先
Java以4.5%的差距遥遥领先于第二名,回顾以前Java有这样的成绩还是在2008年.Java version 8的成功主要是因为函数式编程习语的添加.Java出现下滑是在2010年 Oracle收 ...
- D3DXCreateTexture
HRESULT D3DXCreateTexture( __in LPDIRECT3DDEVICE9 pDevice, __in UINT Width, __in UINT Height, __in U ...
- xposed的基本使用
一.原理 Android运行的核心是zygote进程,所有app的进程都是通过zygote fork出来的.通过替换system/bin/下面的app_process等文件,相当于替换了zygote进 ...
- Struts1 部分源码学习
Struts1工作原理 1.系统初始化(读取配置):初始化ModuleConfig对象 Struts框架是一个总控制器(ActionServlet)是一个Servlet,在web.x ...
- WinRM和WinRS
1.6.2 新远程工具:WinRM和WinRS 2012-05-14 10:18 张杰良 译 清华大学出版社 字号:T | T 综合评级: 想读(18) 在读(5) 已读(0) 品书斋鉴(0) ...
- 设计模式之第8章-策略模式(Java实现)
设计模式之第8章-策略模式(Java实现) “年前大酬宾了啊,现在理发冲500送300,冲1000送500了.鱼哥赶紧充钱啊,理发这事基本一个月一回,挺实惠的啊.不过话说那个理发店的老板好傻啊,冲10 ...
- Vue声明渲染以及axios实例
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- java第五次课堂笔记
- zookeeper 集群
集群步骤: 1.安装zookeeper 2.修改zookeeper配置文件 3.创建myid文件 安装zookeeper:查看安装步骤 修改zookeeper配置文件:在zoo.cfg中添加配置 se ...