2021 | PBCTF | Crypto
Steroid Stream
题目¶
I found a weird stream cipher scheme. Can you break this?
CTFtime.org / pbctf 2021 / Steroid Stream
解题思路¶
- Alkaloid Stream 进阶版,除了
fake
数组的产生方式有所差异,其他部分都是一样的- 对于
fake
数组中下标为 \([ln - ln // 3, ln)\) 的元素值均为 \(0\)
- 对于
- 异或等同于 \(GF(2)\) 中的加法,可以把
fake
数组中的值看作是已知keys
的线性组合,而keys
数组中的值相互间线性无关,从而可以区分fake
和keys
- 使用已知
keys
构建一个以keys
为行的 \(GF(2)\) 矩阵,假设keys
的数量为 \(k\),那么有 \(k\) 行相互独立,矩阵的秩(rank)为 \(k\)。添加值 \(v\) 到 \(k + 1\) 行,如果 \(v\) 是keys
的线性组合,那么矩阵的秩仍为 \(k\),否则是 \(k + 1\)
参考资料¶
- 另一种世界观——有限域
- GF(2) - Wikipedia
- Linear combination - Wikipedia
- Rank (linear algebra) - Wikipedia
- Fast computation of matrix rank over GF(2)
拓展阅读¶
最后更新:
2021年12月13日 11:23:59
Contributors: