格密码与线性代数

目录

一. 幺模矩阵

二. Gram-Schmidt 正交化

三. 矩阵分解

四. 格基本区

五. 对偶格基

六. 矩阵伪逆

七. 正定矩阵

八. 矩阵转置

九. 奇异值分解(SVD分解)


格密码中格基是矩阵,格点是向量。本文章梳理一些格密码常用到的一些线性代数的知识点。

一. 幺模矩阵

对格基乘以整数幺模矩阵,会得到新的格基,该格基形成的格点与原来的格点一样。幺模矩阵U\in Z^{m\times m}满足|det(U)|=1。幺模矩阵的逆U^{-1}\in Z^{m\times m}依旧为幺模矩阵。

二. Gram-Schmidt 正交化

将格基的一列看成一个向量,也就是V=\lbrace v_1,\cdots,v_k\rbrace\in R^n。假定Gram-Schmidt 正交化是按顺序进行的,正交化后记作\tilde V=\lbrace \tilde v_1,\cdots,\tilde v_k\rbrace,可以将\tilde v_i看成向量v_i的分量。对格密码而言,最重要的性质则是\tilde v_ispan(v_1,\cdots,v_{i-1})垂直。

三. 矩阵分解

对格基矩阵V可作如下分解:

V=QDU

其中Q\in R^{n\times k}为正交阵,D\in R^{k\times k}为对角阵(对角线的值均大于等于0),U\in R^{k\times k}为上三角矩阵且对角线元素的值均为1。

通常格基中的向量都是线性独立的,所以根据线性代数的基础,我们知道这种分解也是唯一的。而且Gram-Schmidt 正交化后向量的长度与矩阵D对角线元素的值是有关系的,也就是||\tilde v_i||=d_{i,i},其中d_{i,i}为矩阵D对角线元素的值。

四. 格基本区

给定任意格基V=\lbrace v_1,\cdots,v_n\rbrace,可形成格基本区。如果把该基本区进行平移,让原点处于该基本区的中心,也就是所谓的origin-centered parallelepiped,如下:

P_{1/2}(V)=V\cdot [-\frac{1}{2},\frac{1}{2}]^n

五. 对偶格基

原格基为V,对偶格基为V^*,利用如何公式可计算对偶格基:


V^*=V^{-t}=(V^{-1})^t

通俗来讲就是先对格基求逆,再转置,就是对偶格的格基。整个过程非常丝滑。

其实对偶格Gram-Schmidt 正交化的结果与原来格基也有关系,先上结论:

\tilde v_i^*=\tilde v_i/||\tilde v_i||^2

其实就是向量长度互为倒数,如下:

||\tilde v_i^*||=1/||\tilde v_i||

六. 矩阵伪逆

有些方阵X不能直接求逆,这个时候就需要利用伪逆(有的时候也叫Moore-Penrose伪逆),为方便后续解释,暂时记为X^{+}。原矩阵和伪逆矩阵需要满足:

(XX^+)X=X

反过来也经常利用:

X^+(XX^+)=X^+

需要注意的是XX^+不等于单位阵,但是XX^+X^+X互为对称矩阵(其实就是转置相等)。

在格密码中,矩阵和伪逆矩阵的空间是不变的,也就是:

span(X)=span(X^+)

七. 正定矩阵

给定一个对称矩阵\Sigma\in R^{n\times n},对任意向量x\in R^n,都满足如下不等式:

x^t\Sigma x>0

则称该矩阵\Sigma为正定矩阵(positive definite),通常记为\Sigma>0

当然,如果不等式改为:

x^t\Sigma x\geq 0

则称该矩阵为半正定矩阵,记为\Sigma\geq 0

实际上,正定矩阵一定可以求逆,并且逆矩阵也为正定矩阵,也就是\Sigma^{-1}>0

但是半正定矩阵不一定可以求逆,只能求伪逆,其伪逆也为半正定矩阵,也就是\Sigma^+\geq 0

在格密码论文中,如果看到\Sigma_1>\Sigma_2,其实是想表达两个矩阵相减为正定矩阵(\Sigma_1-\Sigma_2)>0。这个结论换成半正定矩阵也是成立的。另外,如果原矩阵满足这种不等关系,逆矩阵也有类似的结论。换句话说,如果\Sigma_1\geq \Sigma_2\geq 0,可得\Sigma_2^+\geq \Sigma_1^+\geq 0

八. 矩阵转置

“七”中谈到的对称矩阵有一个非常简单的实现方式。给定任意矩阵B,将该矩阵的转置乘以本身,得到新的矩阵则为对称矩阵。也就是,\Sigma=BB^t。另外其实很好证明,这个矩阵\Sigma则是一个半正定矩阵,因为:

x^t\Sigma x=\langle B^tx,B^tx\rangle=||B^tx||^2\geq 0

当然,熟悉线代的小伙伴都知道,以上运算要求矩阵B非奇异(nonsingular)。

这个结论可以反推。如果已知某矩阵\Sigma>0,那么该矩阵存在平方根,也就是B=\sqrt \Sigma。根据半正定矩阵的性质,任意\Sigma\geq 0都存在平方根,而且求平方根的过程多项式时间复杂度内可以解决(比如Cholesky分解法)。

九. 奇异值分解(SVD分解)

奇异值分解,英语为singular value decomposition,经常在格密码中简称为SVD分解。奇异值分解主要是给非方阵准备的,对任意矩阵B\in R^{n\times k},可以作如下分解:

B=QDP^t

其中Q\in R^{n\times n},P\in R^{k\times k}均为正交矩阵,D\in R^{n\times k}为对角阵。对角线上的值通常以降序排列,并且每个值均大于等于0。其实实际上,对角线上的值就是矩阵B的奇异值s_i\geq 0。如果想求最大的奇异值,通常利用如下:

s_1(B)=max_u||Bu||=max_u||B^tu||

其中,u为任意单位向量u\in R^k

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

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

相关文章

Unity 如何通过2D Sprite切割一张图为多张

1、理解 在一些2D游戏开发中,我们常常使用2D Sprite把一张大图切割成多个小图使用。 这样做有不少好处,首先,通过精准使用小图,能够一定程度上节省内存,提高渲染性能。 其次把同类的小图做成一张大图在切割使用会更…

ElasticSearch详细搭建以及常见错误high disk watermark [ES系列] - 第497篇

导读 历史文章(文章累计490) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六…

Java毕业设计——基于SpringBoot的健身房管理系统

1,项目背景 随着人们生活水平的提高和健康意识的增强,健身行业逐渐兴起并迅速发展。而现代化的健身房管理系统已经成为健身房发展的必备工具之一。传统的健身房管理方式已经无法满足现代化健身房的需求,需要一种更加高效、智能、安全的管理系…

HamronyOS 自动化测试框架使用指南

概述 为支撑 HarmonyOS 操作系统的自动化测试活动开展,我们提供了支持 JS/TS 语言的单元及 UI 测试框架,支持开发者针对应用接口进行单元测试,并且可基于 UI 操作进行 UI 自动化脚本的编写。 本指南重点介绍自动化测试框架的主要功能&#x…

欧非源国际交易平台在2023中非经济贸易大湾区论坛首次亮相

12月16日,2023中非经济贸易大湾区论坛在鹏城隆重召开,欧非源国际交易平台首次亮相。来自非洲部分国家的驻华使节、中非经济贸易委员会领导以及商(协)会、企业家代表共同见证了欧非源国际交易平台的发布,亲历了该平台与…

机器学习 | 线性算法 —— 大禹治水

Machine-Learning: 《机器学习必修课:经典算法与Python实战》配套代码 - Gitee.com 如果说KNN算法体现了人们对空间距离的理解, 那么线性算法则体现了人们对事物趋势上的认识。 注意图中横纵坐标的不同。 线性回归、多项式回归多用于预测,逻辑…

Manacher算法(马拉车)

Manacher(马拉车)算法 作用:在On的时间复杂度下,求出字符串每个回文中心的最长回文半径 回文半径:以回文中心为起点,到回文串两端的距离 如:# a # b # a # 以b为回文中心,最长回文半…

Springboot+Mybatis入门案例

一、项目结构 1.导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apach…

实现基于 Keepalived 和 Nginx 的高可用架构

目录 前言1 高可用性简介2 准备服务器和软件3 高可用的配置&#xff08;主从配置&#xff09;3.1 配置/etc/keepalived/keepalived.conf文件3.2 配置/usr/local/src/nginx_check.sh脚本文件 4 启动软件5 测试结语 前言 在现代互联网架构中&#xff0c;高可用性是至关重要的。N…

<九>JavaScript中的基本数据类型和引用数据类型

一、栈内存和堆内存 基本数据类型&#xff08;值类型&#xff09;存放在“栈内存”中。引用数据类型&#xff08;对象类型&#xff09;存放在“堆内存”中。栈内存和堆内存是一种对内存的管理方式和模型概念&#xff0c;不存在物理分割。 “栈”具有线程和“先进后出”的特点…

GBJ2510-ASEMI逆变器专用整流桥GBJ2510

编辑&#xff1a;ll GBJ2510-ASEMI逆变器专用整流桥GBJ2510 型号&#xff1a;GBJ2510 品牌&#xff1a;ASEMI 封装&#xff1a;GBJ-4 最大平均正向电流&#xff1a;25A 最大重复峰值反向电压&#xff1a;1000V 产品引线数量&#xff1a;4 产品内部芯片个数&#xff1a;…

基于ssm防疫信息登记系统的设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本防疫信息登记系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

配置https环境

为什么要配置https环境 在使用 HTML5 的 API 时&#xff0c;很多 API 只能在 https 保证安全的情况下才能开启。这就要求我们在本地开发环境也能够配置 https&#xff0c;否则你需要每次部署到配有 https 的测试环境中才能看到预览效果&#xff0c;这对开发的敏捷度造成了极大…

网络空间搜索引擎- FOFA的使用技巧总结

简介 FOFA是一款网络空间测绘的搜索引擎&#xff0c;旨在帮助用户以搜索的方式查找公网上的互联网资产。 FOFA的查询方式类似于谷歌或百度&#xff0c;用户可以输入关键词来匹配包含该关键词的数据。不同的是&#xff0c;这些数据不仅包括像谷歌或百度一样的网页&#xff0c;还…

AI语音电话机器人识别技术声音合成声音是怎么实现的

AI语音识别技术的声音合成是通过将文本转换为声音信号的过程实现的。这个过程包含以下步骤&#xff1a; 文本分析和处理&#xff1a;首先&#xff0c;输入的文本会接受分析和处理。这可能涉及到词法分析、语法分析和语义分析等技术&#xff0c;用于理解文本的含义和上下文。 …

【Mybatis】日常知识点随笔(持续更新)

目录 【K】Mybatis使用Select注解书写简单sql 【K】MySQL 数据类型与 Java 类型的对应关系 【K】Mybatis相同代码复用 1. 定义公共 SQL 片段 2. 引用公共 SQL 片段 3. 使用参数 4. 复用和组合 5. 注意事项 【K】mysql如何实现插入一条数据后立刻获取该数据自增长id进行…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)更改应用图标

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;更改应用图标 一、操作环境 操作系统: Windows 10 专业版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、更改图标 图标的位置&#xff1a;entry->src->main->resources->-b…

智慧校园2.0物联网管理平台建设方案:PPT全文22页,附下载

关键词&#xff1a;物联网解决方案&#xff0c;智慧校园解决方案&#xff0c;物联网平台建设方案&#xff0c;物联网应用技术 一、智慧校园2.0物联网管理平台建设背景 1、教育现代化和强国建设的需要&#xff1a;近年来&#xff0c;国家为了加快推进教育现代化、教育强国建设…

java SpringCloud版本b2b2c鸿鹄云商平台全套解决方案

使用技术&#xff1a; Spring CloudSpring BootMybatis微服务服务监控可视化运营 B2B2C平台&#xff1a; 平台管理端(包含自营) 商家平台端(多商户入驻) PC买家端、手机wap/公众号买家端 微服务&#xff08;30个通用微服务如&#xff1a;商品、订单、购物车、个人中心、支…

kubernetesr安全篇之云原生安全概述

云原生 4C 安全模型 云原生 4C 安全模型&#xff0c;是指在四个层面上考虑云原生的安全&#xff1a; Cloud&#xff08;云或基础设施层&#xff09;Cluster&#xff08;Kubernetes 集群层&#xff09;Container&#xff08;容器层&#xff09;Code&#xff08;代码层&#xf…