【密码学】基于编码的密码学学习笔记(五) 对偶码
在上一篇文章当中,我们学习了线性码和它的校验矩阵,本篇文章,我们来看一下对偶码。对于对偶这个概念。
前置知识
我们,接着简单的回顾一下有关于线性代数的知识,首先,我们来看一下向量内积的概念。
对于两个向量和,其中,他们的内积定义为
特别的,如果,我们称向量正交。
显然,对于内积运算,我们有一些性质,这里我们就不证明了,有兴趣的读者,可以查阅线性代数的相关资料。
对于任意的向量,以及,我们有
-
如果,无法推出
对偶码
定义
有了前面的补充,我们就可以来定义对偶码了,设是一个线性码,其对偶码是所有与原码字正交的向量构成的集合
通过定义,我们可以发现,对于原码的生成矩阵,他是一个的矩阵,这里还是使用行向量生成码字。根据对偶码的定义,我们可以发现,如果我们可以找到另外的一个矩阵,使得
也就是行正交,那么对于矩阵生成的码就是对偶码的生成矩阵。因此,对于对偶码来说,他的维数是,也就是他是一个线性码。
接下来,我们来考虑,对偶码的对偶码,不要被这个关系绕进去,也就是,我们考虑
首先,对于任意的码字,根据对偶码的定义,对所有,有,因此满足的条件,也就是。
这也就是说,我们有
根据,前面我们得到的维度的关系,对于的维度为k, 则的维度为n-k, 那么对于的维度依然为k。
由于,在有限维的向量空间中,如果一个子空间A包含于另一个子空间 B, 并且,则,因此,根据我们前面的推导,我们有
校验矩阵
在前面,我们提到了一个矩阵,他满足
我们成这个矩阵为码的校验矩阵。那么,接下来,我们来看一下,我们如何来构造这个矩阵。
如果,是一个系统码,那么我们可以比较容易的构造这个矩阵,我们定义
其中是一个的单位矩阵,是一个的矩阵。我们可以如下构造校验矩阵
我们来简单的证明一下,
所以,我们可以这么构造,而对于非系统码,我们可以先根据线性变换,变换成为系统码,然后在来构造。
例子
我们还是用,之前的来举例,对于生成矩阵
我们来构造,
可以验证
也就是,说明,他是一个对偶码。
总结
本文,我们主要了解了对偶码和校验矩阵的知识,对偶码和校验矩阵是编码理论中的核心工具,对于对偶码和校验矩阵,是可以用来检错和纠错的,比如如果和对偶码的码字和对偶码的内积不是0,那么就可以说明传输过程出现了错误。有关于这些详细部分,我们后续再聊,好了,快乐的时光过的特别快,又到了说再见的时候了,咱们下次再见~~
参考资料
-
https://zh.wikipedia.org/wiki/%E7%A7%A9%E2%80%94%E9%9B%B6%E5%8C%96%E5%BA%A6%E5%AE%9A%E7%90%86 -
https://courses.smp.uq.edu.au/MATH3302/2010/files/codingnotes.pdf -
https://link.springer.com/chapter/10.1007/978-3-540-88702-7_4 -
https://www.itsoc.org/sites/default/files/2021-11/Code-Based%20Cryptography.pdf
原文始发于微信公众号(Coder小Q):【密码学】基于编码的密码学学习笔记(五) 对偶码
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论