看雪·众安 2021 KCTF 秋季赛 | 第五题设计思路及解析
攻击方排名前10如下:
已开放赛题的5支防守队伍排名如下:
出题团队简介
赛题设计思路
自定义的简陋 Hash 算法,用以对输入的用户名进行处理。 一个基于多项式商环的 RSA 算法。因为多项式相较于整数更加易于分解,故而可以还原得到输入。 一个随机生成的 16 轮 Feistel 结构的变换。
主要流程
数据结构
struct Poly {
PolyBlock blocks[6];
Poly() :blocks() {}
PolyBlock& operator[](int i) {
return blocks[i];
}
void reset(){
for(int i = 0; i < 6; i++){
blocks[i].reset();
}
}
};
struct PolyBlock {
uint8_t ele[3];
PolyBlock() : ele(){}
void reset() {
ele[0] = 0xf7;
ele[1] = 0x31;
ele[2] = 0x89;
}
//省略部分代码
PolyBlock& operator+=(PolyBlock& rhs) {
this->set<3>(((*this).get<3>() + rhs.get<3>()) % 61);
this->set<0>(((*this).get<0>() + rhs.get<0>()) % 61);
this->set<2>(((*this).get<2>() + rhs.get<2>()) % 61);
this->set<1>(((*this).get<1>() + rhs.get<1>()) % 61);
return *this;
}
friend PolyBlock operator+(PolyBlock lhs, PolyBlock& rhs) {
lhs += rhs;
return lhs;
}
//省略部分代码
};
blockHash
// 输入是长度为 9 的 uint8_t 的数组 data,也就是 3 个 PolyBlock。输出是 1 个 PolyBlock (也就是 3 个 uint8_t)。
void blockHasher::fire(){
uint64_t x = *(uint64_t*)hh.data;
x ^= hh.data[8];
x ^= x >> 12;
x ^= x << 25;
x ^= x >> 27;
x *= 0x2545F4914F6CDD1DULL;
*((uint8_t*)result) = x&0xFF;
*((uint8_t*)result+1) = (x >> 8)&0xFF;
*((uint8_t*)result+2) = (x >> 16)&0xFF;
toSignal->decDep();
}
StrHasher
PolyFeistel
一层随机 Feistel 结构如图所示:(随机生成的结构展示,与实际中具体的数据变换不同)
PolyRSA
总结
Username:56DF4D8D86305660
SN: 4A2CD38229906B47E4C04723C0BEAD86A599
Username:KCTF
SN: 4E6B0C83AA2E6B6E946477B2149A8816D730
往期解析
1、看雪·众安 2021 KCTF 秋季赛 | 第二题设计思路及解析
2、看雪·众安 2021 KCTF 秋季赛 | 第三题设计思路及解析
第六题《窥伺者谁》正在火热进行中,
延伸阅读
-
看雪·众安 KCTF赛况直播 | 战况升级!比分逐渐拉大
看雪·众安 2021 KCTF秋季赛 已于11月15日中午12点正式开赛!第9题《万事俱备》已经持续2天。现在跟随我一起看看赛况如何吧!截至发文,目前该题围观人数多达927人,已有4支战队攻破此题!分
-
看雪·众安 KCTF赛况直播 | 白热化!第八题《群狼环伺》谁先拿下?
看雪·众安 2021 KCTF秋季赛 已于11月15日中午12点正式开赛!今天中午12点,第8题《群狼环伺》已正式开战!截至发文,该题共计围观人数:325,攻破战队数:0截至发文防守方总排名如下:攻击
-
看雪·众安 2021 KCTF 秋季赛 | 第六题设计思路及解析
看雪·众安 2021 KCTF秋季赛的第六题《窥伺者谁》已于今天中午12点截止答题,经统计,本题围观人数多达1080人,共计6支战队成功破解。恭喜v3r1t4s501用时19720秒拿下“一血”,接下
[广告]赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注KnowSafe微信公众号
随时掌握互联网精彩
随时掌握互联网精彩
赞助链接