准循环LDPC码用于公钥密码时的奇偶校验矩阵

设H为奇偶校验矩阵,其行权重为d。Q为转置矩阵,其行权重为m。对于LDPC码,有d/n<< 1, m/n< 1.

H′=H·QT是用于公钥密码的奇偶校验矩阵。它不是老密码G的奇偶校验矩阵(有H·GT=0),只是新密码G′的奇偶校验矩阵,

有  H′·G′T=H·PT·(S-1·G·PT)T

= H·PT·P·GT·(S-1)T

= H·GT·(S-1)T

= 0·(S-1)T

= 0.

因为H′·GT =H·QT·GT≠0, 所以H′不是密码G的奇偶校验矩阵。由于H是稀疏矩阵,Q是稠密矩阵,Q的行可以设计成H行的覆盖。若设H的行权重为dc,

Q的行、列权重为m,dc<<m, 则H′的行权重为dc·m.

时间: 2024-08-26 04:12:23

准循环LDPC码用于公钥密码时的奇偶校验矩阵的相关文章

为什么for in循环不适合用于数组

首先一点无关的,使用(var i in a) 而不是( i in a),除非你想创建全局变量. 第二点,for in 循环会忽略空的数组 var a = []; a[5] = 5; // Perfectly legal JavaScript that resizes the array. for (var i=0; i<a.length; i++) { // Iterates over numeric indexes from 0 to 5, as everyone expects. } var

当我们刚开始我们的码农生涯时,我们该做些什么

最近公司新来了一个妹子,老大让我带.妹子大大的眼睛,一眨一眨的,灰常可爱.从她身上我仿佛看到了两年前的自己,从面对业务的各种懵逼,到完不成任务时主动加班,有一种恍如隔日的感觉.所以想和大家聊聊当我们刚开始我们的码农生涯时,我们该做些什么? 写在前面 先聊一下带妹子这两周的趣事,感觉很有意思.记得当老大说让我带妹子的时候,我的心情是这样的 然后事情并非总朝着预料中的方向发展,妹子说的对我说的最多的一句话居然是 大哥,我eclipse炸了 大哥,我eclipse又炸了 大哥,我eclipse又又炸了

python中循环删除列表中元素时的坑![转]

原博文链接:https://www.cnblogs.com/baihualin/p/10698651.html 循环删除列表中元素时千万别用正序遍历,一定要用反序遍历! 废话不多说,先上案例代码: def test(data): for i in data: data.remove(i) return data data = [1, 2, 3] print(test(data)) 面对以上代码,乍一看以为会打印出空列表,因为test函数内通过for的方法将data中的元素都删除了,其实不然,实际

源码安装openssl时POD文件在某行有错误,error255

进行TLS1.0测试实验时,需要安装旧版本的openssl.首先卸载了ubuntu自带的openssl,去官网下载了指定版本的openssl源码文件,在make install过程中遇到错误,导致安装失败: 错误提示为 /usr/bin/pod2man文件的68行有语法错误,将该行注释之后再make install,则安装成功.

使用FFMPEG进行一些视频处理(C#)视频合并、转码、获取时长

FFMPEG的强大无需多说,举几个用到的功能,直接贴代码了 还有更多命令用到时搜索即可 视频转码 public static string DecodeMp4ToFlv(string mp4, string format = ".flv", int timeout = 0) { var args = "-y -i {0} -vcodec copy {1}".Formatting("\"{0}\"".Formatting(mp4

JS闭包导致循环给按钮添加事件时总是执行最后一个

加入如下脚本代码: <script> var list_obj = document.getElementsByTagName('li'); for (var i = 0; i <= list_obj.length; i++) { list_obj[i].onclick = function() { alert(i); } } </script> 运行后,奇怪的发现无论点击那个li标签,alert出的都是最后一个的内容,5 下面做下分析:因为在for循环里面指定给list_o

搭建kafka源码开发环境时使用&quot;gradle idea&quot;命令构建源码失败

我的环境: JDK: 1.8.0_131 Gradle: Gradle 3.1 Kafka源码包: kafka-0.10.0.1-src.tgz Zookeeper安装包: zookeeper-3.4.6.tar.gz Scala版本: 2.10.6 提示在 D:\soft\kafka-0.10.0.1-src\build.gradle文件的230行有问题.解决办法: 打开build.gradle文件:在开头添加如下内容: ScalaCompileOptions.metaClass.daemon

使用for循环添加点击事件时,获取i值的方法

比如页面上有一个ul,数个li,现在给li添加点击事件. var li = document.getElementsByTagName("li"); for(var i = 0; i < li.length; i++) { li[i].addEventListener("click",function () { console.log(i); }) } 但是,这样写之后我们发现,点击任何一个li,打印的值都为5,这是因为闭包中共用i值,而i的值由于执行for循

源码安装zabbix时PHP ldap Warning

一.如果是源码编译 [[email protected] php-7.2.7]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/ opcache.a opcache.so # 出现告警是因为ldap模块不存在,须要编译生成此模块并重新加载 到源码包的解压目录下,没有保存源码文件的话 , 下载相同版本的php进行解压 , 进行源码编译ldap模块(其他模块如果缺失编译方法一样) [[email protected] p