这个 Microsoft PDC 挑战的答案是啥?

Posted

技术标签:

【中文标题】这个 Microsoft PDC 挑战的答案是啥?【英文标题】:What's the answer to this Microsoft PDC challenge?这个 Microsoft PDC 挑战的答案是什么? 【发布时间】:2010-09-07 08:51:57 【问题描述】:

在today's channel9.msdn.com video,PDC 人员发布了一个挑战来破译此代码:

2973853263233233753482843823642933243283
6434928432937228939232737732732535234532
9335283373377282333349287338349365335325
3283443783243263673762933373883363333472
8936639338428833535236433333237634438833
3275387394324354374325383293375366284282
3323383643473233852922933873933663333833
9228632439434936334633337636632933333428
9285333384346333346365364364365365336367
2873353883543533683523253893663653393433
8837733538538437838338536338232536832634
8284348375376338372376377364368392352393
3883393733943693253343433882852753933822
7533337432433532332332328232332332932432
3323323323323336323333323323323327323324
2873323253233233233892792792792792792792
7934232332332332332332332733432333832336
9344372376326339329376282344

破译它并赢得一件 T 恤。 (跛脚,我知道,希望免费前往 PDC。)

我注意到这段代码中有一些有趣的模式,例如结尾处的 332 模式,但我不知道从哪里开始。他们说答案是文字问题。

对破译这段代码有什么想法吗?

【问题讨论】:

如果我们解决了这个问题,我们会得到 T 恤吗? 【参考方案1】:

我仍在摆弄这个——还没有答案,甚至没有明确的方向,但是这些随机分类的一些事实可能对某人有用..

Meta:有没有办法在答案中标记“阅读更多”?对于此答案将导致的所有滚动,请提前道歉!

代码长度为 708 位。素数分解:2 2 3 59。除非它们通过填充末端变得棘手,否则块大小必须为 1、2、4、6 或 12;更高的因素是愚蠢的。当然,这假设代码是基于连接块的,但情况可能并非如此。

Mike Stone 建议块大小为 3。这是它的分布:

不同块的数量:64 块数:236(消息长度) 275:### 279:####### 282:#### 283:# 284:#### 285:## 286:# 287:### 288:# 289:### 292:# 293:#### 297:# 323:############################# 324:####### 325:####### 326:#### 327:#### 328:## 329:##### 332:### 333:########### 334:### 335:###### 336:### 337:# 338:#### 339:### 342:# 343:## 344:### 345:# 346:### 347:## 348:### 349:### 352:#### 353:# 354:## 363:## 364:####### 365:##### 366:##### 367:## 368:### 369:## 372:### 373:## 374:## 375:### 376:####### 377:#### 378:## 382:### 383:### 384:### 385:#### 387:## 388:###### 389:## 392:### 393:#### 394:### 449:#

如果它是 base64 编码的,那么我们可能会有一些东西;)但我的直觉告诉我,对于纯英文文本来说,长度为 3 的不同块太多了。不过,符号“323”确实存在奇怪的信号。

更有趣的是块大小为 2:

不同块的数量:49 块数:354(消息长度) 22:## 23:######################## 24:##### 25:###### 26:# 27:###### 28:######### 29:#### 32:################################## 33:############################################### 34:########### 35:######## 36:############## 37:############ 38:################## 39:#### 42:## 43:########### 44:### 45:# 46:# 47:# 49:## 52:# 53:######### 54:## 62:# 63:############# 64:#### 65:### 66:## 67:## 68:# 72:### 73:############ 74:# 75:#### 76:##### 77:# 79:#### 82:###### 83:########### 84:##### 85:#### 88:#### 89:# 92:######### 93:################ 94:##

至于字母频率,这是一个不错的策略,但请记住,文本可能包含空格和标点符号。到目前为止,空格可能是最常见的字符!

Meta:这个问题重新提出了在其他地方找到的问题。这算作功课吗? :)

【讨论】:

【参考方案2】:

好吧,根据您指出的 332 模式以及数字的数量可以被 3 整除的事实,并且前 3 位数字组中的几个具有匹配项......可能每 3 位数字代表一个字符.获取所有 3 位数组的数字匹配分布,然后查看该分布是否类似于普通字母的分布。

如果是这样,那么每个 3 位代码都可以映射到一个字符,并且您可能会通过这种方式为您填写很多字符,然后看看您是否可以填写不太常见的字母的空白可能与分布不完全匹配。

快速的谷歌搜索发现this source for distribution of frequency 是英文的。

当然,这可能不会有成果,但这是一个很好的第一次尝试。

【讨论】:

【参考方案3】:

我编写了一些 C# 代码来扫描密码并返回一些统计信息。以下是一些有趣的结果:

块大小为 3,

有 236 个块。

有 172 个重复项。

323 代码出现了惊人的 共 29 次!

333代码出现11次。

所有其他代码出现 7 次或更少。

35 块以 2 开头。

200 块以 3 开头。(有趣!)

1 块以 4 开头。

尽管密码包含 2s、3s、4s、5s、6s、7s、8s 和 9s,但块仅以 2 和 3 开头,但以 4 开头的 1 块除外。

李>

没有0。

没有1。

有115个2s。

有293个3s。

有 56 个 4。

有 38 个 5。

有 49 个 6。

有 52 个 7。

有63个8。

有 42 个 9。

我会描述 323 次出现次数非常不规则。我还建议所有块都以 3 或 2 开头(除了 4 块的 1 出现)这一事实也非常不规则。

我使用 2、4 和 8 块进行了相同的分析,结果看起来或多或少是随机的。在这一点上,我倾向于 3 块。

【讨论】:

【参考方案4】:

我想说,任何找到答案的人都应该把它留给自己,而不是发布它,而应该只是添加一个注释,你可以阅读特定的 url 来找到它,或者给某人发送电子邮件或其他东西,如果他们想知道它的答案。当Channel9说它坏了或自己发布答案时,在这里发布,但在那之前,让讨论和思考继续下去。对大脑更好。

【讨论】:

以上是关于这个 Microsoft PDC 挑战的答案是啥?的主要内容,如果未能解决你的问题,请参考以下文章

一文看懂Microsoft Azure的十年变迁

Microsoft ProClarity 的当前状态是啥?

Microsoft windows XP Recovery Console是啥啊?

VER是啥意思啊!?

Microsoft SQL Server 2014 的 Hibernate 方言是啥?

这个答案的python 3版本是啥?