正定矩阵在格密码中的应用(知识铺垫)

目录

一. 写在前面

二. 最小值点

三. 二次型结构

四. 正定与非正定讨论

4.1 对参数a的要求

4.2 对参数c的要求

4.3 对参数b的要求

五. 最小值,最大值与奇异值

5.1 正定型(positive definite)

5.2 负定型(negative definite)

5.3 奇异型

六. 鞍点(saddle point)

七. 矩阵二次型

7.1 介绍

7.2 举例

例题1

例题2

例题3

八. 正定矩阵与格密码


一. 写在前面

格密码中有时要求格基矩阵是正定的,本文章将从方程和矩阵角度来解释正定性,辅助格密码的理解。

推荐可以先看下这篇文章:

格密码与线性代数-CSDN博客

对称矩阵一定有实数特征值(real eigenvalue),本文章尝试在不计算矩阵特征值的情况下,快速判断矩阵特征值是否全为正数,其中涉及三个矩阵的基本概念:矩阵的主元(pivot),行列式,特征值。

二. 最小值点

在微分方程中,如果特征值为负数,那么以下函数单调递减:

e^{\lambda t}

在密码学或计算机领域的优化问题(optimization)经常需要判断N维情况下的最小值,数学知识告诉我们这与二阶导(second derivative test)相关,举两个例子:

尝试求这两个二维函数F(x,y),f(x,y)的最小值。

首先可计算:

F(0,0)=7,\quad f(0,0)=0

很明显,最小值肯定要求一阶导数为0,也就是所谓的关注linear term,发现(0,0)该点符合要求,如下:

也就是(0,0)为这两个函数的极值点(stationary point)。

第一个平面z=F(x,y)与水平面z=7相切;

第二个平面z=f(x,y)与水平面z=0相切;

一阶导分析完毕来看下在(0,0)位置的二阶导,如下:

这两个二维函数的二阶导值一样,说明两个函数的性质相同。实际上F(x,y)的最高次幂为-x^3,所以其最小值为-\infty,接下来我们把重心放在f(x,y)。

三. 二次型结构

以上讨论中f(x,y)的形式为二次型:

f=ax^2+2bxy+cy^2

易得在(0,0)处,该类函数的一阶微分:

\frac{\partial f}{\partial x}=\frac{\partial f}{\partial y}=0

也就是该类二次型,原点一定是其极值点。

如果极小值点(local minimum)也是最小值点(global minimum),那么可得此类平面的图形像一个碗,碗的底部就是原点,如下图:

如果极值点不在原点处,而在其他任意点处,比如在x=\alpha,y=\beta,其二阶导如下:

除了原点外,如果函数严格为正数,那么称之为正定(positive definite)。

四. 正定与非正定讨论

对于单变量的函数来讲,二阶大于0,函数拥有最小值,如下:

\frac{\partial^2 F}{\partial x^2}>0

反之,则函数有最大值。

对于二维函数来讲,函数拥有三个二阶导函数:

F_{xx}\quad F_{xy}=F_{yx}\quad F_{yy}

期待利用这三个数来判断函数拥有最小值还是最大值。

目标:什么情况下,二次型f(x,y)=ax^2+2bxy+cy^2为正定的?

4.1 对参数a的要求

当x=1,y=0时,可得:

ax^2+2bxy+cy^2=a

正定性要求a为正数,利用导数的观点解释则是:

\frac{\partial^2 F}{\partial x^2}>0

也就是该曲面沿着x轴向上弯曲。

4.2 对参数c的要求

当x=0时,沿着y轴方向可得:

f(0,y)=cy^2

很明显正定性要求c>0

举两个简单例子,大家可以快速判断下:

例1

f(x,y)=x^2-10xy+y^2

例2

f(x,y)=2x^2+4xy+y^2

解:

例1非正定,因为f(1,1)=-8

例2非正定,因为f(1,-1)=-1

4.3 对参数b的要求

将二次型结构转变为如下完全平方差形式:

观察右边第二项,要想函数正定,则必须:

c-\frac{b^2}{a}>0

也就是:

ac>b^2

五. 最小值,最大值与奇异值

5.1 正定型(positive definite)

根据以上讨论,要想二次型ax^2+2bxy+cy^2为正定,需要满足:

a>0,ac>b^2

如果要求某点处的最小值,那么:

\frac{\partial f}{\partial x}=\frac{\partial f}{\partial y}=0

并且要求:

\frac{\partial^2 F}{\partial x^2}>0\quad [\frac{\partial^2 F}{\partial x^2}][\frac{\partial^2 F}{\partial y^2}]>[\frac{\partial^2 F}{\partial x\partial y}]

5.2 负定型(negative definite)

负定型的要求与正定型刚好相反,如下:

a<0,ac>b^2

由此可求该函数的最大值

5.3 奇异型

当a,b,c满足:

ac=b^2

易得当a>0时,该函数为半正定(positive semi-definite)

当a<0时,该函数为半负定(negative semi-definite)

也就是当x=b,y=-a时,该函数可以取0。原始的平面z=f(x,y)像一个碗,奇异情况下像一个山谷,举例:

f=(x+y)^2

六. 鞍点(saddle point)

鞍点要求:

ac<b^2

举例两个函数:

来看一个图像:

这种二次型既可以取正数,也可以取负数,所以为非定型(indifinite)。从图形上看,此时的极值点既不是最小值,也不是最大值,该点则被称之为鞍点(saddle point)。

七. 矩阵二次型

7.1 介绍

总结以上我们发现,二阶导数其实可以形成一个对称矩阵。将ax^2cy^2放在对角线,将2bxy分成一半,放在剩下的两个位置上,由此二次型函数f(x,y)即可以表示成一个2行2列的矩阵,如下:

将此处的2维扩展到n维,便可以从矩阵的角度来理解函数的最大值与最小值。假定有n个变量x_1,\cdots,x_n,将其写成列向量x的形式,那么对任意对称矩阵A,矩阵向量相乘与二次型之间是互相等效的,如下:

x^TAx\quad f(x_1,\cdots,x_n)

更具体来讲,如下:

对角线的元素a_{11}\sim a_{nn}x_1^2\sim x_n^2相乘。对称形式a_{ij}=a_{ji}合并后再相乘可得2a_{ij}x_ix_j,即可以还原函数为:

f=a_{11}x_1^2+2a_{12}x_1x_2+\cdots+a_{nn}x_n^2

注意每一项都是二次型,当x=(0,0,\cdots,0)时,函数的一阶导函数一定为0.该函数的切面是水平的,也就是其极值点。、

借助此理论即可判断当向量x为0时,函数f=x^TAx存在最大值,最小值,还是鞍点。

7.2 举例

例题1

函数f=2x^2+4xy+y^2,其对应矩阵如下:

A=\begin{bmatrix} 2 &2 \\ 2& 1 \end{bmatrix}

很明显为鞍点

例题2

函数f=2xy,其对应矩阵:

A=\begin{bmatrix} 0 &1 \\1& 0 \end{bmatrix}

很明显鞍点

例题3

给定函数如下:

f=2x_1^2-2x_1x_2+2x_2^2-2x_2x_3+2x_3^2

该函数拥有最小值,写成矩阵格式如下:

其实矩阵A可以看成二阶导的矩阵,也就是满足:

a_{ij}=\frac{\partial^2 F}{\partial x_i\partial x_j}

同理可得:

a_{ji}=\frac{\partial^2 F}{\partial x_j\partial x_i}

从这个角度也可以理解矩阵A为对称矩阵,很明显当原函数存在最小值时,矩阵A则为正定的。

八. 正定矩阵与格密码

正定矩阵与特征值有关,格基特征值的大小会影响格密码中光滑参数的大小,从而影响安全性。具体这方面的知识会陆续更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/321532.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring见解

1.Spring概述 1.1.Spring介绍 Spring是轻量级Java EE应用开源框架&#xff08;官网&#xff1a; http://spring.io/ &#xff09;&#xff0c;它由Rod Johnson创为了解决企业级编程开发的复杂性而创建 1.2.简化应用开发体现在哪些方面&#xff1f; IOC 解决传统Web开发中硬编…

【机器学习基础】DBSCAN

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;相对完整的机器学习基础教学&#xff01; ⭐特别提醒&#xff1a;针对机器学习&#xff0c;特别开始专栏&#xff1a;机器学习python实战…

数据结构第一弹

简述数据结构&#xff0c;抽象数据结构和数据类型之间的异同。 数据结构&#xff0c;抽象数据结构和数据类型本质上来说是同一概念&#xff0c;数据类型是程序设计中实现了的数据结构&#xff0c;而抽象数据结构是数据类型的进一步抽象和发展&#xff0c;借助数据类型可以在程…

[Mac软件]Boxy SVG 4.20.0 矢量图形编辑器

Boxy SVG 是一款入门级矢量图形编辑器&#xff0c;具有全套基本功能、易于学习的选项卡式界面和可自定义的键盘快捷键。有了它&#xff0c;您可以轻松创建横幅、图标、按钮、图形、界面草图&#xff0c;甚至有趣的表情包。 编辑器支持使用多种工具创建和编辑矢量对象&#xff…

2023海内外零知识证明学习资料汇总(二)(深入理解零知识证明篇)

工欲善其事,必先利其器 Web3开发中&#xff0c;各种工具、教程、社区、语言框架.。。。 种类繁多&#xff0c;是否有一个包罗万象的工具专注与Web3开发和相关资讯能毕其功于一役&#xff1f; 参见另一篇博文&#x1f449; 2024最全面且有知识深度的web3开发工具、web3学习项目…

(Linux)虚拟机配置固定IP

Linux操作系统的IP地址是通过DHCP服务获取的&#xff0c;也就是动态获取IP地址&#xff0c;每次重启设备后都会获取一次&#xff0c;会导致IP地址频繁变更&#xff0c;为了不频繁更新映射关系&#xff0c;我们需要IP地址固定下来。 1.在VM中配置IP地址网关和网段 打开虚拟网络…

jmeter自动录制脚本功能

问题排查&#xff1a; 建议用 google浏览器&#xff1b; 重启一下jmeter&#xff1b; 过滤规则重新检查下&#xff1b; 看下代理设置是否正常&#xff1b; 注意&#xff1a;下面的的过滤设置中 用的都是正则表达式的规则。

C# 反射的终点:Type,MethodInfo,PropertyInfo,ParameterInfo,Summry

文章目录 前言反射是什么&#xff1f;常用类型操作SummryPropertyInfoMethodInfo无参函数运行 有参函数运行,获取paramterInfo 总结 前言 我之前写了一篇Attribute特性的介绍&#xff0c;成功拿到了Attribute的属性&#xff0c;但是如果把Attribute玩的溜&#xff0c;那就要彻…

力扣刷题-二叉树-二叉搜索树中的搜索

700 二叉搜索树中的搜索 给定二叉搜索树&#xff08;BST&#xff09;的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 NULL。 例如&#xff0c; 在上述示例中&#xff0c;如果要找的值是 5&#x…

C++_string类

目录 一、string的模拟实现 1、初始化字符串 2、拷贝构造 3、赋值重载 4、迭代器 5、比较字符串 6、尾插字符、字符串 7、resize 8、中间插入数据、删除数据 8.1 插入数据 8.2 删除数据 9、查找数据 10、打印对象&#xff08;流插入、流提取&#xff09; 结语&a…

发掘最佳 WebAPI 调试工具:大揭秘

前后端分离 前后端分离的起因 为什么要有 前后端分离 呢&#xff1f; 我们回想一下以前的开发是怎么开发的&#xff0c;在以前的时候&#xff0c;前端业务还没那么复杂&#xff0c;所以基本都是一个人包揽前后端&#xff0c;也就是全栈&#xff0c;而为了方便开发&#xff0…

14.两数之和

题目 class Solution {public int[] twoSum(int[] nums, int target) {int[] ret {-1,-1};for(int i0;i<nums.length;i) {for(int ji1;j<nums.length;j) {if(nums[i] nums[j] target) {ret[0] i;ret[1] j;}}}return ret;} }