[WeChall] Training: Baconian (Stegano, Encoding, Crypto, Training)

http://www.wechall.net/challenge/training/encodings/bacon/index.php

The Message:

BaCoN’s cIphEr or THE bacOnIAN CiPHer iS a meThOD oF sTEGaNOGrapHY (a METhoD Of HidIng A sECRet MeSsaGe as OpPOsEd TO a TRUe CiPHeR) dEVIseD BY francis bAcoN. a MessAge Is coNCeALED in THe pRESenTatIoN OF TexT, ratHer thaN iTs coNteNt. tO enCODe A MEsSaGe, eaCh lETter Of THe pLAInText Is rePLAcED By A groUp oF fIvE OF tHe letTERS ‘a’ oR ‘B’. tHis ReplACEmEnT Is DONE aCcordIng to The alPhabet oF THe BACOnIAN cIpHeR, sHoWn bElOw. NoTe: A SeCoNd vErSiOn oF BaCoN’S CiPhEr uSeS A UnIqUe cOdE FoR EaCh lEtTeR. iN OtHeR WoRdS, i aNd j eAcH HaS ItS OwN PaTtErN. tHe wRiTeR MuSt mAkE UsE Of tWo dIfFeReNt tYpEfAcEs fOr tHiS CiPhEr. AfTeR PrEpArInG A FaLsE MeSsAgE WiTh tHe sAmE NuMbEr oF LeTtErS As aLl oF ThE As aNd bS In tHe rEaL, sEcReT MeSsAgE, tWo tYpEfAcEs aRe cHoSeN, oNe tO RePrEsEnT As aNd tHe oThEr bS. tHeN EaCh lEtTeR Of tHe fAlSe mEsSaGe mUsT Be pReSeNtEd iN ThE ApPrOpRiAtE TyPeFaCe, AcCoRdInG To wHeThEr iT StAnDs fOr aN A Or a b. To dEcOdE ThE MeSsAgE, tHe rEvErSe mEtHoD Is aPpLiEd. EaCh ‘TyPeFaCe 1’ LeTtEr iN ThE FaLsE MeSsAgE Is rEpLaCeD WiTh aN A AnD EaCh ‘TyPeFaCe 2’ LeTtEr iS RePlAcEd wItH A B. tHe bAcOnIaN AlPhAbEt iS ThEn uSeD To rEcOvEr tHe oRiGiNaL MeSsAgE. aNy mEtHoD Of wRiTiNg tHe mEsSaGe tHaT AlLoWs tWo dIsTiNcT RePrEsEnTaTiOnS FoR EaCh cHaRaCtEr cAn bE UsEd fOr tHe bAcOn cIpHeR. bAcOn hImSeLf pRePaReD A BiLiTeRaL AlPhAbEt[2] FoR HaNdWrItTeN CaPiTaL AnD SmAlL LeTtErS WiTh eAcH HaViNg tWo aLtErNaTiVe fOrMs, OnE To bE UsEd aS A AnD ThE OtHeR As b. ThIs wAs pUbLiShEd aS An iLlUsTrAtEd pLaTe iN HiS De aUgMeNtIs sCiEnTiArUm (ThE AdVaNcEmEnT Of lEaRnInG). BeCaUsE AnY MeSsAgE Of tHe rIgHt lEnGtH CaN Be uSeD To cArRy tHe eNcOdInG, tHe sEcReT MeSsAgE Is eFfEcTiVeLy hIdDeN In pLaIn sIgHt. ThE FaLsE MeSsAgE CaN Be oN AnY ToPiC AnD ThUs cAn dIsTrAcT A PeRsOn sEeKiNg tO FiNd tHe rEaL MeSsAgE.

这题考的是培根密码,比较简单,知道概念就能轻松解决。查查百度百科

显然,密文是使用不同大小写代表AB(暂且称之为AB码)的办法实现加密的。一般在线解密的网站如果有培根密码的话都是只有AB码到字母的转换的。所以大小写转AB码需要由我们自己实现。当然AB码转字母也可以自己实现,因为也非常简单。但是,由于多种映射表的存在(i=j和u=v的映射以及i,j,u,v分别采用不同AB码的映射),自己编写也其实没什么必要,都是体力活。

以下是大小写转AB码的代码,非常简单。

值得一提的是,判断到空格和标点符号究竟要不要不问题。答案是完全不需要的。因为文章的空格和标点符号都是无法控制的(在大小写的加密方式中,但是在不同字号和不同字体的加密方式中另当别论),因此可以直接忽略。

得到一长串AB码之后,放到 https://www.dcode.fr/bacon-cipher 进行解密。它会帮你遍历AB交换的情况以及不同映射表的情况,很快就能找到答案。如下图。

看到 VERY WELL DONE 这种东西,就知道这个肯定就是答案了,并且能猜到空格被换成了X进行加密。只要将所有的X替换成空格,就能得到更明显的答案:

 

 

Leave a Comment