crypto 曼彻斯特编码

曼彻斯特编码是一种自同步编码,数据传输速率是调制速率的一半。编码规则有两种,一种规定低-高电平跳变表示0,高-低表示1;另一种则是相反。在解密过程中,对于某些特定的编码,需要根据IEEE 802.3/4标准进行字节序反转。本文通过实际解密题目,展示了曼彻斯特编码在实际问题中的应用,如CISCN 2016和2017年的传感器挑战。
摘要由CSDN通过智能技术生成

曼彻斯特编码:曼彻斯特编码将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。
曼彻斯特编码表示0或1有两种不同的方法:
第一种G. E. Thomas, Andrew S. Tanenbaum1949年提出的,它规定0是由低-高的电平跳变表示,1是高-低的电平跳变。
按此规则有:

  • 编码0101(即0x5),表示原数据为00;
  • 编码1001(0x9)表示10;
  • 编码0110(0x6)表示01;
  • 编码1010(0xA)表示11。
    第二种IEEE 802.4(令牌总线)和低速版的IEEE 802.3(以太网)中规定, 按照这样的说法, 低-高电平跳变表示1, 高-低的电平跳变表示0。
  • 编码0101(0x5)表示11;
  • 编码1001(0x9)表示01;
  • 编码0110(0x6)表示10;
  • 编码1010(0xA)表示00;

如何做题?
这里的话就拿i春秋上的题目开刀了
题目在i春秋上还有,以下题面均摘自i春秋

5555555595555A65556AA696AA6666666955 这是某压力传感器无线数据包解调后但未解码的报文(hex) 已知其ID为0xFED31F,请继续将> 报文完整解码,提交hex。 tips:flag是flag{破译出的明文} 提示1:曼联

曼联的全称是曼彻斯特联足球俱乐部,这个提示很谐。这串二进制字符串中只包含四种字符:5 6 9 A ,实际上就是0b0101 0b0110 0b1001 0b1010 ,就是曼彻斯特编码中,0和1的两种位的翻转.

解密脚本:

def conv(s):
    return hex(int(s, 2))[2:]

def IEEE802(bs):
    pass
    dict = {
   
        "0101": "11",
        "1001": "01",
        "0110": "10",
        "1010": "00"
    }
    bs=str(bs
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值