19

给马克思主义者的加密通讯简史

 3 years ago
source link: https://zhuanlan.zhihu.com/p/285623349
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

据说中国古代打仗,事先约定一首诗,这首诗一共20个字,每个字代表什么意思,如撤退、进攻等,都事先说好。

将军发布命令的时候,就说一个字,如果传令兵被敌方截去了,敌方只能得到一个字的情报,最终还是不得要领。

这种思想,一直延续了很久,20年代上海的地下党仍然使用密码本。

当然,密码本几个月到几年就更换一次。这样显然会更安全。

外国的古人也不傻,据说凯撒大帝也发明了一种办法,这种办法被后人称之为“凯撒加密”。

众所周知,西方人使用字母文字,所以,凯撒就用一个字母代替后一个字母。

现在,你仍然可以使用这种非常经典的加密方式。比如你收到一封来自女神的信,上面写着:

N QTAJ Z

然后你敏锐的观察到N和I相差5个字母,Q和L也相差5个字母,然后你大胆猜测,上面的密文代表是

I LOVE U

验算一下,果然成立,所有的字母之间的距离都是5 。

这时候,你就可以醒过来了。

距离都是5,显然很容易被敌军猜到,你可以随便定义这个距离,甚至,你可以定义一个字母对应表。这样敌军就更难猜了。

但这并不代表大家猜不出来。

比如

crm ma kfa acdkdav ic k dfakw jipin mkf wauwicd meaweaf wekw ckwirc rf kcl ckwirc ur jrcjaipavkcv ur vavijkwav jkc nrcd acvxfa ma kfa gaw rc k dfakw bkwwnahianv rh wekw mkf ma ekpa jrga wr vavijkwa k zrfwirc rh wekw hianv ku k hickn fauwicd znkja hrf werua mer eafa dkpa weaif nipau wekw wekw ckwirc gidew nipa iw

这看起来是一团乱码,但是我们可以统计一下字母出现的频率。

k出现的频率很高。是一个单个字母的单词,所以k可能是I或者a。我用i试了,觉得不对劲,于是用a试试。

我直接把我的实验记录放在这里吧

xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k i
crm ma ifa acdidav ic i dfaiw jipin mif wauwicd meaweaf weiw ciwirc rf icl ciwirc ur jrcjaipavicv ur vavijiwav jic nrcd acvxfa ma ifa gaw rc i dfaiw biwwnahianv rh weiw mif ma eipa jrga wr vavijiwa i zrfwirc rh weiw hianv iu i hicin fauwicd znija hrf werua mer eafa dipa weaif nipau weiw weiw ciwirc gidew nipa iw 
iu inwrdaweaf hiwwicd icv zfrzaf weiw ma uerxnv vr weiu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I
crm ma Ifa acdIdav ic I dfaIw jipin mIf wauwicd meaweaf weIw cIwirc rf Icl cIwirc ur jrcjaipavIcv ur vavijIwav jIc nrcd acvxfa ma Ifa gaw rc I dfaIw bIwwnahianv rh weIw mIf ma eIpa jrga wr vavijIwa I zrfwirc rh weIw hianv Iu I hicIn fauwicd znIja hrf werua mer eafa dIpa weaif nipau weIw weIw cIwirc gidew nipa iw 
iu Inwrdaweaf hiwwicd Icv zfrzaf weIw ma uerxnv vr weiu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I | tr ma OF
crO OF IfF FcdIdFv ic I dfFIw jipin OIf wFuwicd OeFweFf weIw cIwirc rf Icl cIwirc ur jrcjFipFvIcv ur vFvijIwFv jIc nrcd FcvxfF OF IfF gFw rc I dfFIw bIwwnFhiFnv rh weIw OIf OF eIpF jrgF wr vFvijIwF I zrfwirc rh weIw hiFnv Iu I hicIn fFuwicd znIjF hrf weruF Oer eFfF dIpF weFif nipFu weIw weIw cIwirc gidew nipF iw 
iu InwrdFweFf hiwwicd Icv zfrzFf weIw OF uerxnv vr weiu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I | tr rc OF
FOm ma Ifa aFdIdav iF I dfaIw jipin mIf wauwiFd meaweaf weIw FIwiOF Of IFl FIwiOF uO jOFjaipavIFv uO vavijIwav jIF nOFd aFvxfa ma Ifa gaw OF I dfaIw bIwwnahianv Oh weIw mIf ma eIpa jOga wO vavijIwa I zOfwiOF Oh weIw hianv Iu I hiFIn fauwiFd znIja hOf weOua meO eafa dIpa weaif nipau weIw weIw FIwiOF gidew nipa iw 
iu InwOdaweaf hiwwiFd IFv zfOzaf weIw ma ueOxnv vO weiu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I 
crm ma Ifa acdIdav ic I dfaIw jipin mIf wauwicd meaweaf weIw cIwirc rf Icl cIwirc ur jrcjaipavIcv ur vavijIwav jIc nrcd acvxfa ma Ifa gaw rc I dfaIw bIwwnahianv rh weIw mIf ma eIpa jrga wr vavijIwa I zrfwirc rh weIw hianv Iu I hicIn fauwicd znIja hrf werua mer eafa dIpa weaif nipau weIw weIw cIwirc gidew nipa iw 
iu Inwrdaweaf hiwwicd Icv zfrzaf weIw ma uerxnv vr weiu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I | tr rc OF
FOm ma Ifa aFdIdav iF I dfaIw jipin mIf wauwiFd meaweaf weIw FIwiOF Of IFl FIwiOF uO jOFjaipavIFv uO vavijIwav jIF nOFd aFvxfa ma Ifa gaw OF I dfaIw bIwwnahianv Oh weIw mIf ma eIpa jOga wO vavijIwa I zOfwiOF Oh weIw hianv Iu I hiFIn fauwiFd znIja hOf weOua meO eafa dIpa weaif nipau weIw weIw FIwiOF gidew nipa iw 
iu InwOdaweaf hiwwiFd IFv zfOzaf weIw ma ueOxnv vO weiu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I | tr rc OF | tr m R
FOR Ra Ifa aFdIdav iF I dfaIw jipin RIf wauwiFd Reaweaf weIw FIwiOF Of IFl FIwiOF uO jOFjaipavIFv uO vavijIwav jIF nOFd aFvxfa Ra Ifa gaw OF I dfaIw bIwwnahianv Oh weIw RIf Ra eIpa jOga wO vavijIwa I zOfwiOF Oh weIw hianv Iu I hiFIn fauwiFd znIja hOf weOua ReO eafa dIpa weaif nipau weIw weIw FIwiOF gidew nipa iw 
iu InwOdaweaf hiwwiFd IFv zfOzaf weIw Ra ueOxnv vO weiu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I 
crm ma Ifa acdIdav ic I dfaIw jipin mIf wauwicd meaweaf weIw cIwirc rf Icl cIwirc ur jrcjaipavIcv ur vavijIwav jIc nrcd acvxfa ma Ifa gaw rc I dfaIw bIwwnahianv rh weIw mIf ma eIpa jrga wr vavijIwa I zrfwirc rh weIw hianv Iu I hicIn fauwicd znIja hrf werua mer eafa dIpa weaif nipau weIw weIw cIwirc gidew nipa iw 
iu Inwrdaweaf hiwwicd Icv zfrzaf weIw ma uerxnv vr weiu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I | tr ma IN
crI IN IfN NcdIdNv ic I dfNIw jipin IIf wNuwicd IeNweNf weIw cIwirc rf Icl cIwirc ur jrcjNipNvIcv ur vNvijIwNv jIc nrcd NcvxfN IN IfN gNw rc I dfNIw bIwwnNhiNnv rh weIw IIf IN eIpN jrgN wr vNvijIwN I zrfwirc rh weIw hiNnv Iu I hicIn fNuwicd znIjN hrf weruN Ier eNfN dIpN weNif nipNu weIw weIw cIwirc gidew nipN iw 
iu InwrdNweNf hiwwicd Icv zfrzNf weIw IN uerxnv vr weiu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I | tr ma AN
crA AN IfN NcdIdNv ic I dfNIw jipin AIf wNuwicd AeNweNf weIw cIwirc rf Icl cIwirc ur jrcjNipNvIcv ur vNvijIwNv jIc nrcd NcvxfN AN IfN gNw rc I dfNIw bIwwnNhiNnv rh weIw AIf AN eIpN jrgN wr vNvijIwN I zrfwirc rh weIw hiNnv Iu I hicIn fNuwicd znIjN hrf weruN Aer eNfN dIpN weNif nipNu weIw weIw cIwirc gidew nipN iw 
iu InwrdNweNf hiwwicd Icv zfrzNf weIw AN uerxnv vr weiu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I | tr i A
crm ma Ifa acdIdav Ac I dfaIw jApAn mIf wauwAcd meaweaf weIw cIwArc rf Icl cIwArc ur jrcjaApavIcv ur vavAjIwav jIc nrcd acvxfa ma Ifa gaw rc I dfaIw bIwwnahAanv rh weIw mIf ma eIpa jrga wr vavAjIwa I zrfwArc rh weIw hAanv Iu I hAcIn fauwAcd znIja hrf werua mer eafa dIpa weaAf nApau weIw weIw cIwArc gAdew nApa Aw 
Au Inwrdaweaf hAwwAcd Icv zfrzaf weIw ma uerxnv vr weAu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I | tr i A | tr c N
Nrm ma Ifa aNdIdav AN I dfaIw jApAn mIf wauwANd meaweaf weIw NIwArN rf INl NIwArN ur jrNjaApavINv ur vavAjIwav jIN nrNd aNvxfa ma Ifa gaw rN I dfaIw bIwwnahAanv rh weIw mIf ma eIpa jrga wr vavAjIwa I zrfwArN rh weIw hAanv Iu I hANIn fauwANd znIja hrf werua mer eafa dIpa weaAf nApau weIw weIw NIwArN gAdew nApa Aw 
Au Inwrdaweaf hAwwANd INv zfrzaf weIw ma uerxnv vr weAu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I | tr i A | tr c N | tr rm OW
NOW Wa Ifa aNdIdav AN I dfaIw jApAn WIf wauwANd Weaweaf weIw NIwAON Of INl NIwAON uO jONjaApavINv uO vavAjIwav jIN nONd aNvxfa Wa Ifa gaw ON I dfaIw bIwwnahAanv Oh weIw WIf Wa eIpa jOga wO vavAjIwa I zOfwAON Oh weIw hAanv Iu I hANIn fauwANd znIja hOf weOua WeO eafa dIpa weaAf nApau weIw weIw NIwAON gAdew nApa Aw 
Au InwOdaweaf hAwwANd INv zfOzaf weIw Wa ueOxnv vO weAu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I | tr i A | tr c N | tr rm OW | tr a E
NOW WE IfE ENdIdEv AN I dfEIw jApAn WIf wEuwANd WeEweEf weIw NIwAON Of INl NIwAON uO jONjEApEvINv uO vEvAjIwEv jIN nONd ENvxfE WE IfE gEw ON I dfEIw bIwwnEhAEnv Oh weIw WIf WE eIpE jOgE wO vEvAjIwE I zOfwAON Oh weIw hAEnv Iu I hANIn fEuwANd znIjE hOf weOuE WeO eEfE dIpE weEAf nApEu weIw weIw NIwAON gAdew nApE Aw 
Au InwOdEweEf hAwwANd INv zfOzEf weIw WE ueOxnv vO weAu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I | tr i A | tr c N | tr rm OW | tr a E | tr h F
NOW WE IfE ENdIdEv AN I dfEIw jApAn WIf wEuwANd WeEweEf weIw NIwAON Of INl NIwAON uO jONjEApEvINv uO vEvAjIwEv jIN nONd ENvxfE WE IfE gEw ON I dfEIw bIwwnEFAEnv OF weIw WIf WE eIpE jOgE wO vEvAjIwE I zOfwAON OF weIw FAEnv Iu I FANIn fEuwANd znIjE FOf weOuE WeO eEfE dIpE weEAf nApEu weIw weIw NIwAON gAdew nApE Aw 
Au InwOdEweEf FAwwANd INv zfOzEf weIw WE ueOxnv vO weAu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr k I | tr i A | tr c N | tr rm OW | tr a E | tr h F | tr f R
NOW WE IRE ENdIdEv AN I dREIw jApAn WIR wEuwANd WeEweER weIw NIwAON OR INl NIwAON uO jONjEApEvINv uO vEvAjIwEv jIN nONd ENvxRE WE IRE gEw ON I dREIw bIwwnEFAEnv OF weIw WIR WE eIpE jOgE wO vEvAjIwE I zORwAON OF weIw FAEnv Iu I FANIn REuwANd znIjE FOR weOuE WeO eERE dIpE weEAR nApEu weIw weIw NIwAON gAdew nApE Aw 
Au InwOdEweER FAwwANd INv zROzER weIw WE ueOxnv vO weAu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a I | tr i A | tr c N | tr rm OW | tr a E | tr h F | tr f R
NOW WI kRI INdkdIv AN k dRIkw jApAn WkR wIuwANd WeIweIR wekw NkwAON OR kNl NkwAON uO jONjIApIvkNv uO vIvAjkwIv jkN nONd INvxRI WI kRI gIw ON k dRIkw bkwwnIFAInv OF wekw WkR WI ekpI jOgI wO vIvAjkwI k zORwAON OF wekw FAInv ku k FANkn RIuwANd znkjI FOR weOuI WeO eIRI dkpI weIAR nApIu wekw wekw NkwAON gAdew nApI Aw 
Au knwOdIweIR FAwwANd kNv zROzIR wekw WI ueOxnv vO weAu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr i A | tr c N | tr rm OW | tr a E | tr h F | tr f R
NOW WE kRE ENdkdEv AN k dREkw jApAn WkR wEuwANd WeEweER wekw NkwAON OR kNl NkwAON uO jONjEApEvkNv uO vEvAjkwEv jkN nONd ENvxRE WE kRE gEw ON k dREkw bkwwnEFAEnv OF wekw WkR WE ekpE jOgE wO vEvAjkwE k zORwAON OF wekw FAEnv ku k FANkn REuwANd znkjE FOR weOuE WeO eERE dkpE weEAR nApEu wekw wekw NkwAON gAdew nApE Aw 
Au knwOdEweER FAwwANd kNv zROzER wekw WE ueOxnv vO weAu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr i A | tr c N | tr rm OW | tr h F | tr f R
NOW WE kRE ENdkdEv AN k dREkw jApAn WkR wEuwANd WeEweER wekw NkwAON OR kNl NkwAON uO jONjEApEvkNv uO vEvAjkwEv jkN nONd ENvxRE WE kRE gEw ON k dREkw bkwwnEFAEnv OF wekw WkR WE ekpE jOgE wO vEvAjkwE k zORwAON OF wekw FAEnv ku k FANkn REuwANd znkjE FOR weOuE WeO eERE dkpE weEAR nApEu wekw wekw NkwAON gAdew nApE Aw 
Au knwOdEweER FAwwANd kNv zROzER wekw WE ueOxnv vO weAu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr i A | tr c N | tr rm OW | tr h F | tr f R | tr k A
NOW WE ARE ENdAdEv AN A dREAw jApAn WAR wEuwANd WeEweER weAw NAwAON OR ANl NAwAON uO jONjEApEvANv uO vEvAjAwEv jAN nONd ENvxRE WE ARE gEw ON A dREAw bAwwnEFAEnv OF weAw WAR WE eApE jOgE wO vEvAjAwE A zORwAON OF weAw FAEnv Au A FANAn REuwANd znAjE FOR weOuE WeO eERE dApE weEAR nApEu weAw weAw NAwAON gAdew nApE Aw 
Au AnwOdEweER FAwwANd ANv zROzER weAw WE ueOxnv vO weAu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr c N | tr rm OW | tr h F | tr f R | tr k A
NOW WE ARE ENdAdEv iN A dREAw jipin WAR wEuwiNd WeEweER weAw NAwiON OR ANl NAwiON uO jONjEipEvANv uO vEvijAwEv jAN nONd ENvxRE WE ARE gEw ON A dREAw bAwwnEFiEnv OF weAw WAR WE eApE jOgE wO vEvijAwE A zORwiON OF weAw FiEnv Au A FiNAn REuwiNd znAjE FOR weOuE WeO eERE dApE weEiR nipEu weAw weAw NAwiON gidew nipE iw 
iu AnwOdEweER FiwwiNd ANv zROzER weAw WE ueOxnv vO weiu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr c N | tr rm OW | tr h F | tr f R | tr k A | tr i I
NOW WE ARE ENdAdEv IN A dREAw jIpIn WAR wEuwINd WeEweER weAw NAwION OR ANl NAwION uO jONjEIpEvANv uO vEvIjAwEv jAN nONd ENvxRE WE ARE gEw ON A dREAw bAwwnEFIEnv OF weAw WAR WE eApE jOgE wO vEvIjAwE A zORwION OF weAw FIEnv Au A FINAn REuwINd znAjE FOR weOuE WeO eERE dApE weEIR nIpEu weAw weAw NAwION gIdew nIpE Iw 
Iu AnwOdEweER FIwwINd ANv zROzER weAw WE ueOxnv vO weIu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr c N | tr rm OW | tr h F | tr f R | tr k A | tr i I | tr e H
NOW WE ARE ENdAdEv IN A dREAw jIpIn WAR wEuwINd WHEwHER wHAw NAwION OR ANl NAwION uO jONjEIpEvANv uO vEvIjAwEv jAN nONd ENvxRE WE ARE gEw ON A dREAw bAwwnEFIEnv OF wHAw WAR WE HApE jOgE wO vEvIjAwE A zORwION OF wHAw FIEnv Au A FINAn REuwINd znAjE FOR wHOuE WHO HERE dApE wHEIR nIpEu wHAw wHAw NAwION gIdHw nIpE Iw 
Iu AnwOdEwHER FIwwINd ANv zROzER wHAw WE uHOxnv vO wHIu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr c N | tr rm OW | tr h F | tr f R | tr k A | tr i I | tr e H | tr v D
NOW WE ARE ENdAdED IN A dREAw jIpIn WAR wEuwINd WHEwHER wHAw NAwION OR ANl NAwION uO jONjEIpEDAND uO DEDIjAwED jAN nONd ENDxRE WE ARE gEw ON A dREAw bAwwnEFIEnD OF wHAw WAR WE HApE jOgE wO DEDIjAwE A zORwION OF wHAw FIEnD Au A FINAn REuwINd znAjE FOR wHOuE WHO HERE dApE wHEIR nIpEu wHAw wHAw NAwION gIdHw nIpE Iw 
Iu AnwOdEwHER FIwwINd AND zROzER wHAw WE uHOxnD DO wHIu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr c N | tr rm OW | tr h F | tr f R | tr k A | tr i I | tr e H | tr v D | tr jw CT
NOW WE ARE ENdAdED IN A dREAT CIpIn WAR TEuTINd WHETHER THAT NATION OR ANl NATION uO CONCEIpEDAND uO DEDICATED CAN nONd ENDxRE WE ARE gET ON A dREAT bATTnEFIEnD OF THAT WAR WE HApE COgE TO DEDICATE A zORTION OF THAT FIEnD Au A FINAn REuTINd znACE FOR THOuE WHO HERE dApE THEIR nIpEu THAT THAT NATION gIdHT nIpE IT 
Iu AnTOdETHER FITTINd AND zROzER THAT WE uHOxnD DO THIu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr c N | tr rm OW | tr h F | tr f R | tr k A | tr i I | tr e H | tr v D | tr jw CT |tr d G
NOW WE ARE ENGAGED IN A GREAT CIpIn WAR TEuTING WHETHER THAT NATION OR ANl NATION uO CONCEIpEDAND uO DEDICATED CAN nONG ENDxRE WE ARE gET ON A GREAT bATTnEFIEnD OF THAT WAR WE HApE COgE TO DEDICATE A zORTION OF THAT FIEnD Au A FINAn REuTING znACE FOR THOuE WHO HERE GApE THEIR nIpEu THAT THAT NATION gIGHT nIpE IT 
Iu AnTOGETHER FITTING AND zROzER THAT WE uHOxnD DO THIu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr c N | tr rm OW | tr h F | tr f R | tr k A | tr i I | tr e H | tr v D | tr jw CT |tr d G | tr pn VL
NOW WE ARE ENGAGED IN A GREAT CIVIL WAR TEuTING WHETHER THAT NATION OR ANl NATION uO CONCEIVEDAND uO DEDICATED CAN LONG ENDxRE WE ARE gET ON A GREAT bATTLEFIELD OF THAT WAR WE HAVE COgE TO DEDICATE A zORTION OF THAT FIELD Au A FINAL REuTING zLACE FOR THOuE WHO HERE GAVE THEIR LIVEu THAT THAT NATION gIGHT LIVE IT 
Iu ALTOGETHER FITTING AND zROzER THAT WE uHOxLD DO THIu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr c N | tr rm OW | tr h F | tr f R | tr k A | tr i I | tr e H | tr v D | tr jw CT |tr d G | tr pn VL | tr g M
NOW WE ARE ENGAGED IN A GREAT CIVIL WAR TEuTING WHETHER THAT NATION OR ANl NATION uO CONCEIVEDAND uO DEDICATED CAN LONG ENDxRE WE ARE MET ON A GREAT bATTLEFIELD OF THAT WAR WE HAVE COME TO DEDICATE A zORTION OF THAT FIELD Au A FINAL REuTING zLACE FOR THOuE WHO HERE GAVE THEIR LIVEu THAT THAT NATION MIGHT LIVE IT 
Iu ALTOGETHER FITTING AND zROzER THAT WE uHOxLD DO THIu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr c N | tr rm OW | tr h F | tr f R | tr k A | tr i I | tr e H | tr v D | tr jw CT |tr d G | tr pn VL | tr g M | tr z P
NOW WE ARE ENGAGED IN A GREAT CIVIL WAR TEuTING WHETHER THAT NATION OR ANl NATION uO CONCEIVEDAND uO DEDICATED CAN LONG ENDxRE WE ARE MET ON A GREAT bATTLEFIELD OF THAT WAR WE HAVE COME TO DEDICATE A PORTION OF THAT FIELD Au A FINAL REuTING PLACE FOR THOuE WHO HERE GAVE THEIR LIVEu THAT THAT NATION MIGHT LIVE IT 
Iu ALTOGETHER FITTING AND PROPER THAT WE uHOxLD DO THIu
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr c N | tr rm OW | tr h F | tr f R | tr k A | tr i I | tr e H | tr v D | tr jw CT |tr d G | tr pn VL | tr g M | tr z P | tr u S
NOW WE ARE ENGAGED IN A GREAT CIVIL WAR TESTING WHETHER THAT NATION OR ANl NATION SO CONCEIVEDAND SO DEDICATED CAN LONG ENDxRE WE ARE MET ON A GREAT bATTLEFIELD OF THAT WAR WE HAVE COME TO DEDICATE A PORTION OF THAT FIELD AS A FINAL RESTING PLACE FOR THOSE WHO HERE GAVE THEIR LIVES THAT THAT NATION MIGHT LIVE IT 
IS ALTOGETHER FITTING AND PROPER THAT WE SHOxLD DO THIS
xiaochi@ZPX5YU6G2Z22SV2:/mnt/e/picasso250/az$ cat enc.txt | tr a E | tr c N | tr rm OW | tr h F | tr f R | tr k A | tr i I | tr e H | tr v D | tr jw CT |tr d G | tr pn VL | tr g M | tr z P | tr u S | tr x U
NOW WE ARE ENGAGED IN A GREAT CIVIL WAR TESTING WHETHER THAT NATION OR ANl NATION SO CONCEIVEDAND SO DEDICATED CAN LONG ENDURE WE ARE MET ON A GREAT bATTLEFIELD OF THAT WAR WE HAVE COME TO DEDICATE A PORTION OF THAT FIELD AS A FINAL RESTING PLACE FOR THOSE WHO HERE GAVE THEIR LIVES THAT THAT NATION MIGHT LIVE IT 
IS ALTOGETHER FITTING AND PROPER THAT WE SHOULD DO THIS

有耐心的同学可以看看,经过前面几次不靠谱的实验,我很快就解密出来了。

这种套路叫做频率分析。为了降低难度,我使用的是分好词的密文,实际上,不分词最终也可以解密,而且你截获的密文越多,解密的可能性就越高。

为了防止敌人猜出来,我们的密码表就要常换常新。

这种加密思路一直延续到二战时期。

德军发明了一种叫做“英尼格玛”的机器,他能根据电路接线的不同,生成不同的字母对应表。

这种密码技术在当时非常先进,给盟军造成了很大的麻烦,幸亏图灵等人出手破解了这种密码。

关于这个破解还有个细节。据说最初德军的数学家把机器原型交付给军方的时候,军方问了一个很“聪明”的问题,就是e字母会不会对应到e字母自身。数学家很老实的回答,是有可能的。

军方立刻觉得数学家很蠢,要求更改程序,使得一个字母永远不会加密成自身。

数学家照做了。

结果战争时期,英军截获了一条密文。里面什么字母都有,就是没有e。

那么英国的数学家们立刻判断,这条密文的原文全是e。

他们的判断是准确的。这条新推测出的情报,加速了密码机制的破解。

战后调查表明,那天的一个加密员想要测试机器,就顺手在机器上摁了十几个e发送了出去。

希望德国的将军们以后不要再犯这种小聪明。

在破解“英尼格玛”的过程中,产生了一个副产品:计算机。

所以后来我们就开始用计算机加密。自然,可以使用一些计算量非常大的加密方式。

这样,使得纯人力破解加密不再可行。

我刚才讲的几种古典加密方式,都属于对称加密。什么叫对称加密呢?就是通讯双方持有一份相同的密码本(或者专业点,叫密钥)。

而最新科技又使得我们可以使用另一种加密方式,是的,你猜出来了,叫做 非对称加密。

非对称加密利用了一类数学问题,这类数学问题正着算很简单,但是倒着算很难。

分解质因数就是其中一种。

举个简单的例子,计算3x7很简单,但是分解21使得他是两个质数的乘积就很困难。

当然,这个例子太简单了。我另一个例子:100001087x100000841这个很简单

但是10000147399909553是哪两个质数的的乘积呢?这就比较困难。不论对人类,还是对计算机。

那么我们就可以先计算好两个大质数,然后乘起来。这个乘积结果数字可以公开告知所有人,这就是公钥,是公开的。而那两个具体的大质数,就是私钥,需要自己小心保存。

这样,我们就可以让人用公钥加密,然后我们再用私钥解密。

形象一点的说法,就是你有一把钥匙,然后你造了很多锁,给所有人,所有人都可以给你寄来小箱子,但这些小箱子只有你能打开。

当然,如果你要具体的和某个人通讯,你还要检查一下,这个小箱子是不是真的由这个人打造的。在古代可能要放一个贴身的玉佩什么的。现代只需要数字签名一下,就可以了。

数字签名的原理依然依赖于之前所讲到公钥私钥体系。发送方用自己的私钥签名,而接收方用发送方的公钥验证签名。因为私钥公钥的 数学关系,保证了接收方可以确保直到这是由发送方的私钥运算得出的结果,但同时不用知道具体的私钥。

在破解“英尼格玛”的过程中,盟军缴获了一台机器,也加速了密码破译过程。

密码学家们痛定思痛,决定不再把加密过程视为秘密。加密过程应该是公开的,可供查阅的。但是密钥是保密的。

现代的加密方式,包括AES家族,RSA家族等,都是遵循这一策略的,算法都是公开的。

马克思主义者不会缺少实践环节。

第一个实践是对称加密。

这次实践用到的工具是openssl,加密方式是-aes-256-cbc(美国军方也使用此加密标准,或许此加密方式有美国军方安装的后门,或许没有)

加密:

openssl enc -aes-256-cbc -a -in file.txt -out file.txt.1 -k xiaochi -iter 100000

解密

openssl enc -aes-256-cbc -d -a -in file.txt.1 -out file.txt.out -k xiaochi -iter 100000

第二个实践是非对称加密

所用到的工具是opengpg(开源,或许开源社区的天才会在其中加入后门,或许不会)

以下教程包含了加解密和验证签名。

OpenGPG尝试


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK