最近在看CKKS方案,里面的编码/解码用到了n次单位根,感觉基于环上的加密,很多都会用到,现在系统的学习一下!

定义

先看定义:

\[z^n=1,(n=1,2,3,...)
\]

该方程的根z为n次单位根,就是说这些根是复数!

简单说:n次方根,就是多项式\(x^n-1\)或方程\(x^n-1=0\)在复数域内的n个不同的根,简称单位根

具体来讲,单位根有n次根的有n个:$$z_i=e^{2\pi ki/n },(k=0,1,2,..,n-1)$$

复数域内:$$x_k=cos(2k\pi/n)+sin(2k\pi/n)I,(k=0,1,2,..,n-1),i是虚数单位$$

举个例子:

其中提到了“本源根”,后面再去单独介绍!

性质

1、对于方程\(x^n-1=0\),不同的我单位根只有n个

例如:取k=0,1,2,..,n-1,就得到n个不同的n次单位根

取\(k=q*n+m,(q\in \mathbb{Z}^+,m=(0,1,...,n-1))\)时,\(x_k=x_{q*n+m}=x_m\)

2、n次单位根的模为1,即\(|x_k|=1\)

3、两个n次单位根(\(x_i,x_j\))的乘积,仍是一个n次单位根\(w_i*w_j=W_{i+j}\),则:

(1)\((x_i)^{-1}=x_{-I}\)

(2)\((x_m)^{k}=x_{m*k}\),(m,k是任意整数,当k=0时,\((x_m)^{0}=1=x_{0}\))

(3)\(x_{m}=x_l\):需要gcd(m,l)=1

(4)任何一个单位根都可以写为\(x_0\)的幂,如\(x_m=(x_1)^m\),这种根叫做n次本原单位根,简称n次原根或原根。当p和n互素且\(1 \leqslant p < n\)时,\(x_1^p\)都是n次本原单位根

(5)一个n次单位根的共轭复数也是一个n次单位根,记 \(\overline{x}=x_{n-m}\)

(6)对于任意的l和r,都有\((x_i)^r=(x_r)^l\)

(7)若a是整数,则

\[1+x_1^a+x_2^a+...+x_{n-1}^a=\left\{\begin{matrix}
\\n,gcd(a,n)=1
\\
\\
\\0,gcd(a,n)\neq 1
\end{matrix}\right.\]

(8)全部单位根把复数平面的单位圆周(|z|=1)n等分了,构成了外接圆半径为1的正n边形的顶点,其中一个顶点为 \(x_0(1,0)\)

举例:

n次单位根(n-th unit root)的更多相关文章

  1. Unable to resolve persistence unit root URL

    异常信息 时间:2017-03-07 11:46:05,516 - 级别:[ WARN] - 消息: [other] The web application [ROOT] appears to hav ...

  2. DFT/FFT/NTT

    在Seal库和HElib库中都用到了NTT技术,用于加快多项式计算,而NTT又是FFT的优化,FFT又来自于DFT,现在具体学习一下这三个技术! 基础概念 名词区分 1.DFT:离散傅立叶变换 2.F ...

  3. 计量经济与时间序列_ADF单位根检验步骤

    1 ADF检验也叫扩展的迪克富勒检验,主要作用是检测序列的平稳性,也是最常用检测序列平稳性的检验方法. 2 何为:平稳性?单位根?(略),见这部分随便的其他内容有讲解.是建模对数据的先决条件. 3 A ...

  4. nginx unit PHP

    2018-12-26 14:20:33 星期三 综述: nginx unit php 的关系: nginx -> 转发请求到 8300端口 -> unit 转发 8300 收到的请求 -& ...

  5. Systemd unit generators unit

    systemd.generator(7) - Linux manual page http://man7.org/linux/man-pages/man7/systemd.generator.7.ht ...

  6. python时间序列分析

              题记:毕业一年多天天coding,好久没写paper了.在这动荡的日子里,也希望写点东西让自己静一静.恰好前段时间用python做了一点时间序列方面的东西,有一丁点心得体会想和大家 ...

  7. spring boot 部署为jar

    前言 一直在ide中敲代码,使用命令行mvn spring-boot:run或者gradlew bootRun来运行spring boot项目.想来放到prod上面也应该很简单.然而今天试了下,各种问 ...

  8. POJ 3342 - Party at Hali-Bula 树型DP+最优解唯一性判断

    好久没写树型dp了...以前都是先找到叶子节点.用队列维护来做的...这次学着vector动态数组+DFS回朔的方法..感觉思路更加的清晰... 关于题目的第一问...能邀请到的最多人数..so ea ...

  9. 概率论:假设检验-t检验和Augmented Dickey–Fuller test

    http://blog.csdn.net/pipisorry/article/details/51184556 T检验 T检验,亦称student t检验(Student's t test),学生t检 ...

随机推荐

  1. react中异步组件以及withRouter的使用

    什么是异步组件?简单来说就是异步加载一个组件,正常情况浏览器加载的是我们打包好的bundle.js文件,那么这个文件是集合了所有js是代码,然而我们首屏加载并不需要一次性加载所有的组件,这会造成性能的 ...

  2. Centos安装与配置

    一.安装 默认安装 二.配置 配置网卡 BOOTPROTO=none ONBOOT=yes IPADDR=xxx.xxx.x.xx PREFIX=24 GATEWAY=xxx.xxx.x.x DNS1 ...

  3. Mybatis(万能map)

    mybatis(万能map) 我们使用对象作为参数有一个缺点: 我们要在mapper.xml文件和测试中要把所有的字段都写出来,那么,假如一个对象有100个字段,那我们要把这些字段都写出来吗? 所以这 ...

  4. promise初体验,小白也能看懂

    promise出现的目的一为处理JavaScript里的异步,再就是避免回调地狱. promise有三种状态:pending/reslove/reject . pending就是未决,resolve可 ...

  5. Sentry 开发者贡献指南 - 配置 PyCharm

    概述 如果您使用 PyCharm 进行开发,则需要配置一些内容才能运行和调试. 本文档描述了一些对 sentry 开发有用的配置 配置 Python 解释器:(确保它是 venv 解释器)例如 ~/v ...

  6. Redis入门及环境搭建

    一:Redis简介 Redis(Remote Dictionary Server 远程字典服务)是一个开源的(BSD许可的)内存数据结构存储,用作数据库.高速缓存和消息队列代理. Redis提供五大基 ...

  7. Kindle连接移动的 Wi-Fi 时要求进行网页浏览器登陆怎么办?

    在电脑上新建一个新文件,名为"WIFI_NO_NET_PROBE",同时把后缀名删掉,让它变成一个无格式文件.Kindle 连接电脑,把新建的文件放进Kindle的根目录,断开Ki ...

  8. json模块 os模块 文件加密

    目录 一:random随机模块 二:os模块 三:文件处理选择任意视频 四:sys模块 五:实现文件执行加密操作 六:json 序列化模块 七:json序列化 反序列化 八:json 文件写读方式 九 ...

  9. 『无为则无心』Python函数 — 40、Python自定义异常

    目录 1.使用 raise 语句来抛出异常 (1)抛出异常类 (2)抛出异常类的实例 2.自定义异常类 (1)简单实现 (2)完整实现 在Python中,抛出自定义异常的语法为 raise 异常类对象 ...

  10. 学习JAVAWEB第四天

    # 今日内容 1. JDBC基本概念 2. 快速入门 3. 对JDBC中各个接口和类详解 ## JDBC: 1. 概念:Java DataBase Connectivity Java 数据库连接, J ...