🌈循环移位异或加密
2023-7-21
| 2023-7-26
0  |  0 分钟
type
status
date
summary
password
category
slug
icon
🙃
发现于魔改后mt19937中改编的extract_number(题:Yusa的密码学课堂——一见如故)小师傅说的很简单,不理解!!!!!!我不会,学习一下。用小师傅教的,搜到一篇论文,中文滴,不要太开心了。xxxi😊
 
 

循环移位异或

🤯
先看一看什么是循环移位异或
循环移位 //循环移位 0101 0111 循环左移2位 0101 1101 //stp1: 0101 0111 <<2 0101 1100 //stp2: 0101 0111 >>6 1111 1101 mask 0000 0011 // 0000 0011 & 0000 0001 //0101 1100 | 0000 0001 结果:0101 1101 //右移 //0101 0101 右移2位 0101 0101 //stp1: 0101 0101 >>2 0001 0101 //stp2: 0101 0101 <<6 0100 0000 //stp3: 0001 0101 & 0100 0000
循环移位操作分循环左移和循环右移两种。假定循环移位的位数为m,那么循环移位的位数k在 之间。对于一个m位数,循环右移k位等价循环左移m-k位。因此,循环右移可以转化为循环左移来实现(这里只考虑循环左移)。以下用a<<<h表示二进制数a循环左移h位;用a<<k表示二进制数a左移h位。对m位的二进制数的循环左移k位就是整个m位二进制数左移k位,若有移出的bit则从右边环回。
循环移位后多项式的次数不会超出m-1。

📑定理

定理3
在长度为 2 的方幂的二进制串中,循环移位异或变换中,如果有奇数项,那么这个变换是可逆的,否则就是不可逆的
定理4
不论多长的二进制位串移位“异或"变换,只要包含不移位的项,该变换就是可逆的,否则就是不可逆。

🌰举栗子

🤭脚本

👀看题

Yusa的密码学课堂——一见如故

notion image
 
 
 

📚参考

 
日常学习
DASCTF 2023 & 0X401七月复现MT19937训练
目录