概述

  Tanner图是由Mr Tanner在1981在论文中提出来的,是研究低密度校验码的重要工具。
  Tanner图表示的是 LDPC 的校验矩阵。Tanner图中的循环是由图中的一群相互连接在一起的顶点所组成的。循环以这群顶点中的一个同时作为起点和终点,且只经过每个顶点一次。循环的长度定义为它所包含的连线的数量;而图形的围长,也成为图形的尺寸,定义为图中最小的循环长度。
  Tanner图包含两类顶点: n个码字比特顶点(称为比特顶点),分别与校验矩阵的各列对应; m个校验方程顶点(称为校验节点),分别与校验矩阵的各列对应。校验矩阵的每行表示一个校验方程,每列代表一个码字比特。 如果一个码字比特包含在相应的校验方程中,那么就用一条连线将所涉及的比特节点和校验节点连起来,所以Tanner图中的连线数与校验矩阵中的1的个数相同。 比特节点用圆形节点表示,校验节点用方形节点表示。

CTF题目示例

题目来源:SUSCTF2022 Misc Tanner
下载题目,打开文件,是一个图片。
根据Tanner图,写出校验矩阵:

发现图片提示

低密度奇偶校验码图(LDPC码)本质上是一种线形分组码,它通过一个生成矩阵G将信息序列映射成发送序列,也就是码字序列。对于生成矩阵G,完全等效地存在一个奇偶校验矩阵H,所有的码字序列C构成了H的零空间 (null space),即H*CT=0,其中CT为C的转置。
编写计算脚本:

import numpy
import string
import hashlibH1 = [[1, 1, 1, 1, 0, 0, 0, 0, 0, 0],[1, 0, 0, 0, 1, 1, 1, 0, 0, 0],[0, 1, 0, 0, 1, 0, 0, 1, 1, 0],[0, 0, 1, 0, 0, 1, 0, 1, 0, 1],[0, 0, 0, 1, 0, 0, 1, 0, 1, 1]]
Hm = numpy.mat(H1)cou = 0
for i in range(1024):ii = bin(i)[2:].rjust(10, '0')print(ii)z = []zz = []bp = 0for a in ii:aa = int(a)z.append(aa)C = numpy.mat(z)re = Hm * C.Tifz = Truefor r in re:if r[0] % 2 != 0:ifz = Falseif ifz:print(re)cou += iprint('cou:')
print(cou)

从一道CTF题目学习Tanner图和LDPC相关推荐

  1. ctf xor题_从一道CTF题目谈PHP中的命令执行

    原创 Xenny 合天智汇 快睡的时候,打开B站发现有位用户留言,大意就是让我帮忙看一道题,正好当时有空,于是就打开了他发的链接,代码如下 很明显是一道PHP代码审计的题目,而且只需要绕过第三行的if ...

  2. ctf赛题上传一个php木马,从一道CTF题学习PHP反序列化漏洞

    一.CTF题目 前阵子,参加了一个CTF比赛,其中有一条道题蛮有意思的,所以写出来分享一下. 此题利用了PHP的反序列化漏洞,通过构造特殊的Payload绕过__wakeup()魔术方法,从而实现注入 ...

  3. 安卓逆向从入门到嗝屁之另一道CTF题目

    小伙伴发了一道安卓的CTF题目,有空就看了下: 首先,这次就先不装了,开个模拟器卡的一P,androidkiller.gda等无法打开,jeb正常打开(当然dex2jar打开dex文件,再用jd-gu ...

  4. 从一道CTF题学习PHP反序列化漏洞

    一.CTF题目 前阵子,参加了一个CTF比赛,其中有一条道题蛮有意思的,所以写出来分享一下. 此题利用了PHP的反序列化漏洞,通过构造特殊的Payload绕过__wakeup()魔术方法,从而实现注入 ...

  5. ctf 监听端口_从一道ctf题目学到的绕过长度执行命令姿势 - 华域联盟|chu

    参考:https://blog.csdn.net/calmegm/article/details/80874902 https://www.leavesongs.com/SHARE/some-tric ...

  6. cmd执行命令不等待返回值_从一道ctf题目学到的绕过长度执行命令姿势

    0x01:linux中的 > 符号和 >> 符号 1.通过>来创建文件 >test.txtls 2.通过>将命令执行的结果存入文件中 echo "hell ...

  7. 记一次php、sql注入学习后的一道ctf代码审计题复盘

    之前在学校的时候参加了ctf比赛,有幸拿了一个代码审计题的一血,但是当时可能也是算运气比较好吧,因为我的思路并不是常规解法,但还是拿了一血,现在更深入的学习php和sql注入之后,反过来看这道代码审计 ...

  8. 网络安全ctf比赛/学习资源整理,解题工具、比赛时间、解题思路、实战靶场、学习路线,推荐收藏!...

    对于想学习或者参加CTF比赛的朋友来说,CTF工具.练习靶场必不可少,今天给大家分享自己收藏的CTF资源,希望能对各位有所帮助. CTF在线工具 首先给大家推荐我自己常用的3个CTF在线工具网站,内容 ...

  9. 认知推理:从图表示学习和图神经网络的最新理论看AI的未来

    2020年3月29日,中国中文信息学会·社会媒体处理专委会和北京智源人工智能研究院联合主办的"图神经网络在线研讨会2020"成功召开,超过5000人报名参加本次活动.会上,四位国内 ...

最新文章

  1. CUDA Samples: matrix multiplication(C = A * B)
  2. 剑指offer_第20题_包含min函数的栈_Python
  3. OleCommand的SqlText占位符的问题
  4. MENUITEMINFO结构的翻译(转)
  5. IOS操作数据库总结
  6. Deep Learning 教程翻译
  7. micropython固件源码_Micropython加速物联网开发7 - Micropython源码编译与固件更新
  8. 7-7 12-24小时制 (15 分)
  9. 对象可以在栈上分配空间吗?_Java面试题之:Java中所有的对象都分配在堆中吗?...
  10. mysql 5.0创建函数_MySQL5.0中的Function和Procedure
  11. everything is tools!
  12. 【原】涉及数据库的单元测试-JTeser
  13. php怎么做群聊,workerman实现群聊
  14. 《数据挖掘导论》绪论
  15. 金蝶ERP学习之路--财务知识
  16. 矩形微带天线简介[搬运]
  17. java 发送短信功能_如何用Java实现短信自动发送功能
  18. 异步编程 CompletableFuture(JDK1.8)
  19. domain adaptation论文记录
  20. android qq 功能,Android-类qq功能(一)

热门文章

  1. 工业计算机检验标准,企业标准规范工业控制计算机检验标准.doc
  2. Windows API一日一练(28-29)CreateFont SetRect SelectObject DeleteObject函数-用各种不同的字体并进行文字绘制并注意释放
  3. 全景式解读DEX行业格局与发展趋势 |链捕手
  4. 时系列数据分析应用图
  5. 关于网站改版注意的网站优化问题
  6. 经验分享,使用云端软件平台轻松制作绿色软件
  7. 场景demo落地 - 视频通话产品 2.0 ARCall
  8. Linux之ubuntu基本命令
  9. kafka消费中文乱码问题
  10. 大气污染扩散模型Calpuff