格密码基础:子格,q-ary垂直格与线性代数

news2025/4/22 15:32:41

目录

一.写在前面

二.子空间垂直

2.1 理论解释

2.2 举例分析

三. 零空间

3.1 零空间与q-ary垂直格

3.2 零空间与行/列空间

四. 格密码相关


一.写在前面

格密码中的很多基础原语都来自于线性代数的基本概念,比如举几个例子:

格密码中的非满秩格------------矩阵的秩,矩阵列向量的线性独立性

格基正交化过程------------------正交矩阵的性质与变换

子格---------------------------------矩阵子空间

正交子格---------------------------正交子空间

q-ary垂直格-----------------------向量与矩阵列空间垂直

本文章将解释线性代数中的子空间,正交矩阵,零空间,矩阵的秩在格密码中的运用。

二.子空间垂直

2.1 理论解释

一个点:0维度

一条线:1维度

一个平面:2维度

一个立体图形:3维度

以此类推。。。。。

子空间垂直要求:一个子空间中的任意向量与另一子空间中的任意向量都垂直。

比如R^3的子空间维度可以是0,1,2,3。0维的子空间只能是原点\lbrace 0\rbrace(如果选其他点的话,必然构成一条线),当然按照惯例,原点形成的0维子空间与任意子空间都垂直。

子空间垂直领域,一条线可以跟一条线垂直,一条线可以跟一个平面垂直,但注意一个平面和一个平面不可能垂直。

注意:此处与以前高中学习的平面垂直是不一样的。

举个例子:

一间教室前面的墙和侧边的墙,我们感觉是垂直的。但不符合子空间垂直的概念,你沿着角落那条线,在前面墙画一条竖线,在侧面墙画一条竖线,这两条竖线很明显平行,并不垂直。

总结以上,子空间垂直的官方定义如下:

Two subspaces V and W of the same space R^n are orthogonal if every vector v in V is orthogonal to every vector w in W: v^Tw=0 for all v and w.

2.2 举例分析

给出两个向量v_1=(1,0,0,0), v_2=(1,1,0,0),很明显这两个向量形成的子空间V为2维的平面。给出向量w=(0,0,4,5),很明显这一个向量形成的子空间W为一条线。

根据向量垂直的基础知识,很容易验证w既与v_1垂直,也与v_2垂直。

接着很容易推导出,子空间W与子空间V互相垂直。

在这个例子里面,V的维度是2,W的维度是1,总空间大小是R^4,说明还缺一个维度。再给出一个向量z=(0,0,5,-4),该向量形成的子空间为L,很明显它既垂直于V,又垂直于W。现在把它们的维度加在一起:2+1+1=4,刚刚好。

三. 零空间

3.1 零空间与q-ary垂直格

对于正整数n和q,选出A\in Z^{m\times n}(密码学通常要求该矩阵随机取),这个矩阵是公开的,如果有一个向量z乘以该矩阵为0向量,那么把满足此条件的向量z全部都组合在一起,就称之为q-ary垂直格,如下:

\Lambda^\bot(A)=\lbrace z\in Z^n:Az=0 \quad mod\ q\rbrace

仔细观察此处的向量z,这不就是线性代数中的零空间!后续讨论中,我们用x来代替z,代表其在线性代数中可以取非整数,如下:

Ax=0

矩阵A的行向量都是n维的,所以行空间是R^n的子空间。向量x也是n维的,所以此零空间也是R^n的子空间。

3.2 零空间与行/列空间

定理

  1. R^n上,行空间与零空间互相垂直;
  2. R^m上,列空间与左零空间互相垂直;

证明:

给定任意m行n列矩阵A,从其零空间中抽取一个n维向量x,满足Ax=0,该方程组有m个方程,可以理解为矩阵A的每一行都与向量x相乘,如下:

第一行与向量x的内积为0,所以第一行与向量x垂直。以此类推,向量x与每一行都垂直。也就是向量x与每一行的任意线性组合都垂直。这不就是零空间内任意向量x都与行空间内任意向量垂直,写作:

N(A)\bot C(A^T)

矩阵的列空间也有类似的性质。比如y^TA=0,如下:

向量y垂直于矩阵A的每一列。向量y形成的空间就是所谓的左零空间。通常写作:

N(A^T)\bot C(A)

N(A^T)代表左零空间,C(A)代表矩阵A的列空间。

3.3 举例

给定一个秩为1的矩阵A,如下:

A=\left[ \begin{array}{cc} 1& 3 \\ 2&6\\ 3&9 \end{array} \right]

由此可得该矩阵的行空间和列空间均为一条线。观察发现矩阵A的每一行都是向量(1,3)的倍数,由此可类推其零空间中包含向量(3,-1),该向量与矩阵A的任意行都垂直,如下:

行空间的维度为1,零空间的维度也为1,总维度为R^2。总结出规律:

r+(n-r)=n

列空间是过点(1,2,3)的一条线,左零空间的点记为(y_1,y_2,y_3),根据y^TA=0,需要满足:

y_1+2y_2+3y_3=0

这不就是一个平面。总结规律:

r+(m-r)=m

四. 格密码相关

格密码的SIS问题与矩阵正交相关。

结论1:

N(A)=(C(A^T))^\bot, \quad C(A^T)=(N(A))^\bot

理解:零空间是行空间的正交补集。

结论2:

行空间维度+零空间维度=矩阵列数

列空间维度+左零空间维度=矩阵行数

结论3:

左零空间在R^m上是列空间的正交补集。

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

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

相关文章

【Unity】【FBX】如何将FBX模型导入Unity

【背景】 网上能够找到不少不错的FBX模型资源,大大加速游戏开发时间。如何将这些FBX导入Unity呢? 【步骤】 打开Unity项目文件,进入场景。 点击Projects面板,右键选择Import New Assets 选中FBX文件后导入。Assets文件夹中就会…

WPF 新手指引弹窗

新手指引弹窗介绍 我们在第一次使用某个软件时,通常会有一个“新手指引”教学引导。WPF实现“新手指引”非常方便,且非常有趣。接下来我们就开始制作一个简单的”新手指引”(代码简单易懂,便于移植),引用到我们的项目中又可添加一…

【谭浩强C程序设计精讲 5】运算符和表达式

文章目录 3.3 运算符和表达式3.3.1 C运算符3.3.2 基本的算术运算符3.3.3 自增()、自减(--)运算符3.3.4 算术表达式和运算符的优先级与结合性3.3.5 不同类型数据间的混合运算3.3.6 强制类型转换运算符 3.3 运算符和表达式 3.3.1 C…

Java强软弱虚引用

面试: 1.强引用,软引用,弱引用,虚引用分别是什么? 2.软引用和弱引用适用的场景? 3.你知道弱引用的话,能谈谈WeakHashMap吗? 目录 一、Java引用 1、强引用(默认支持模式…

GBASE南大通用 GCDW阿里云计算巢:自动化部署云原生数据仓库

目前,GBASE南大通用已与阿里云计算巢合作,双方融合各自技术优势,助力企业用户实现云上数据仓库的自动化部署,让用户在云端获取数据仓库服务“更简单”,让用户在云端使用数据仓库服务“更便捷”,满足企业用户…

条件编译处理多端差异

条件编译https://uniapp.dcloud.net.cn/tutorial/platform.html#%E4%B8%BA%E4%BB%80%E4%B9%88%E9%80%89%E6%8B%A9%E6%9D%A1%E4%BB%B6%E7%BC%96%E8%AF%91%E5%A4%84%E7%90%86%E8%B7%A8%E7%AB%AF%E5%85%BC%E5%AE%B9 <template><view class"container"><…

数模学习day05-插值算法

插值算法有什么作用呢&#xff1f; 答&#xff1a;数模比赛中&#xff0c;常常需要根据已知的函数点进行数据、模型的处理和分析&#xff0c;而有时候现有的数据是极少的&#xff0c;不足以支撑分析的进行&#xff0c;这时就需要使用一些数学的方法&#xff0c;“模拟产生”一些…

【SpringCloud笔记】(12)分布式请求链路跟踪之Sleuth

Sleuth 背景 在微服务框架中&#xff0c;一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果&#xff0c;每一个前段请求都会形成一条复杂的分布式服务调用链路&#xff0c;链路中的任何一环出现高延时或错误都会引起整个请求最后的…

【基础】【Python网络爬虫】【2.请求与响应】常用请求报头和常用响应方法

Python网络爬虫基础 爬虫基础请求与相应HTTP/HTTPS 协议HTTP/HTTPS的优缺点HTTP 的缺点HTTPS的优点 请求与响应概述请求请求目标&#xff08;url&#xff09;请求体&#xff08;response&#xff09;常用的请求报头查看请求体&#xff08;requests 模块&#xff09; 响应HTTP响…

DsPdf:GcPdf 7.0 for NET Crack

DsPdf:GcPdf 7.0 用于全面文档控制的功能丰富的 C# .NET PDF API 库 PDF 文档解决方案&#xff08;DsPdf&#xff0c;以前称为 GcPdf&#xff09;可让您快速、高效地生成文档&#xff0c;且无需依赖任何内存。 在 C# .NET 中生成、加载、编辑和保存 PDF 文档 支持多种语言的全…

Python数值型字符串校验

从键盘输入一行字符串&#xff0c;编写Python代码判定字符串是python“合法”数值。 (笔记模板由python脚本于2023年12月25日 18:00:52创建&#xff0c;本篇笔记适合熟悉Python符串基本数据类型的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.py…

Java集合/泛型篇----第四篇

系列文章目录 文章目录 系列文章目录前言一、什么Set集合二、HashSet( Hash 表)三、什么是TreeSet(二叉树)前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、…

【HDFS联邦(2)】HDFS Router-based Federation官网解读:HDFSRouterFederation的架构、各组件基本原理

文章目录 一. 介绍二、HDFS Router-based Federation 架构1. 示例说明2. Router2.1. Federated interface2.2. Router heartbeat2.3. NameNode heartbeat2.4. Availability and fault toleranceInterfaces 3. Quota management4. State Store 三、部署 ing 本文主要参考官网&am…

从马尔可夫奖励过程到马尔可夫决策到强化学习【01/2】

一、说明 关于马尔可夫过程&#xff0c;如何将马尔可夫决策转化成决策依据&#xff0c;这里介绍的基本的思想路径&#xff0c;为读者将来设计和应用决策模型提供理论上的参考。 这是了解强化学习的一系列基础文章的后续文章。如果您有兴趣了解强化学习&#xff0c;请查看此处。…

秒杀系统的设计思路(应对高并发,超卖等问题的解决思路)

首先我们先看一下设计秒杀系统时&#xff0c;我们应该考虑的问题。 解决方案&#xff1a; 一.页面静态化结合CDN内容分发 前端把能提前放入cdn服务器的东西都放进去&#xff0c;反正把所有能提升效率的步骤都做一下&#xff0c;减少真正秒杀时候服务器的压力。 秒杀活动的页面…

day5--java基础编程:异常,内部类

6 异常 6.1 异常概述 出现背景&#xff1a; 在使用计算机语言进行项目开发的过程中&#xff0c;即使程序员把代码写得尽善尽美&#xff0c;在系统的运行过程中仍然会遇到一些问题&#xff0c;因为很多问题不是靠代码能够避免的&#xff0c;比如:客户输入数据的格式&#xff0c…

EI级 | Matlab实现TCN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测

EI级 | Matlab实现TCN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测 目录 EI级 | Matlab实现TCN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.【EI级】 Matlab实现TCN-BiGRU-Mult…

petalinux

基于网络参考&#xff0c;运行一个xilinx pcie rc的参考&#xff0c;选择vcu118平台&#xff08;基于microblaze&#xff09;&#xff1a;该参考通过pcie rc对挂在的外部ssd进行读写测试 Zynq PCI Express Root Complex design in Vivado - FPGA Developer 1&#xff0c;安装…

使用YOLOv8和Grad-CAM技术生成图像热图

目录 yolov8导航 YOLOv8&#xff08;附带各种任务详细说明链接&#xff09; 概述 环境准备 代码解读 导入库 定义letterbox函数 调整尺寸和比例 计算填充 应用填充 yolov8_heatmap类定义和初始化 后处理函数 绘制检测结果 类的调用函数 热图生成细节 参数解释 we…

Netty(一)-NIO

一、Netty 现在的互联网环境下&#xff0c;分布式系统大行其道&#xff0c;而分布式系统的根基在于网络编程&#xff0c;而Netty恰恰是Java领域网络编程的王者。如果要致力于开发高性能的服务器程序&#xff0c;高性能的客户端程序&#xff0c;必须掌握Netty。 1、NIO NIO&…