빈도 분석을 통해 이 암호문을 해석하라고 합니다. 공백과 점은 생략되어 있다고 하네요.
먼저, 빈도 분석을 하기 위해 간단한 파이썬 코드를 작성하였습니다.
from collections import Counter
value = "SZQKAGCZVCVYABPSYINCGOZDAINVSCBNIVPNZVBPNYFKQHZMMPCQHZYGZGFCXZNVVZGDFNVBPNJYIFXMPCQHZYGBPNOYAIMYGBZGNGBVMPCQHZYGCBPINNBZQNDICGXHIZTOZGCFMPCQHZYGBPNJYIFXEAGZYIMPCQHZYGBPNEAGZYIDICGXHIZTOZGCFMPCQHZYGCGXCOYAIBZQNVYABPSYINCGGCBZYGCFMPCQHZYGSZQZVBPNOZIVBVYABPSYINCGOZDAINVSCBNIBYJZGCQNXCFCBCGZVAEAGZYIYIVNGZYIDICGXHIZTNUNGBZVAMPCQHZYGVPZHCGXBPNYFKQHZMDCQNVVPNZVBPNOZIVBONQCFNVSCBNIBYJZGBPNYFKQHZMDCQNVBPNJYIFXMPCQHZYGVPZHVBPNOYAIMYGBZGNGBVMPCQHZYGVPZHVCGXBPNDICGXHIZTOZGCFVPNZVYGNYOBPNQYVBPZDPFKINMYDGZLNXCBPFNBNVCGXQNXZCOZDAINVZGVYABPSYINCCVYOCHIZFBPZVKNCIVPNZVICGSNXVNMYGXZGBPNJYIFXRKBPNZGBNIGCBZYGCFVSCBZGDAGZYGVPNZVBPNMAIINGBINMYIXPYFXNIOYIFCXZNVZGBPNVPYIBHIYDICQBPNOINNVSCBZGDCGXBPNMYQRZGNXBYBCFAGXNIBPNZVAEAXDZGDVKVBNQVPNZVCFVYBPNOZIVBONQCFNVSCBNIBYVAIHCVVBPNBJYPAXINCXHYZGBQCISAGXNIBPNZVAEAXDZGDVKVBNQVPNPCVGNUNIRNNGHFCMNXYOOBPNHYXZAQZGPNINGBZINMCINNI"
print(Counter(value))
그렇게 얻은 결과입니다.
Counter({'N': 92, 'Z': 78, 'G': 69, 'C': 65, 'B': 65, 'V': 62, 'I': 60, 'Y': 59, 'P': 58, 'X': 31, 'Q': 30, 'A': 27, 'H': 26, 'F': 25, 'M': 22, 'O': 20, 'D': 19,
'S': 14, 'K': 9, 'J': 7, 'E': 5, 'T': 4, 'R': 3, 'U': 2, 'L': 1})
'N'이 92회로 가장 많이, 'Z'가 그 다음 78회 카운트 되었습니다.
암호학을 다 까먹었지만 통상적으로 문장에서 'e', 't' 순으로 가장 많이 쓰인다고 하는 건 기억이 납니당
1) c: 'N' - p: 'e', c: 'Z' - p: 't'로 우선 변환해보겠습니다.
StQKAGCtVCVYABPSYIeCGOtDAIeVSCBeIVPetVBPeYFKQHtMMPCQHtYGtGFCXteVVtGDFeVBPeJYIFXMPCQHtYGBPeOYAIMYGBtGeGBVMPCQHtYGCBPIeeBtQeDICGXHItTOtGCFMPCQHtYGBPeJYIFXEAGtYIMPCQHtYGBPeEAGtYIDICGXHItTOtGCFMPCQHtYGCGXCOYAIBtQeVYABPSYIeCGGCBtYGCFMPCQHtYGStQtVBPeOtIVBVYABPSYIeCGOtDAIeVSCBeIBYJtGCQeXCFCBCGtVAEAGtYIYIVeGtYIDICGXHItTeUeGBtVAMPCQHtYGVPtHCGXBPeYFKQHtMDCQeVVPetVBPeOtIVBOeQCFeVSCBeIBYJtGBPeYFKQHtMDCQeVBPeJYIFXMPCQHtYGVPtHVBPeOYAIMYGBtGeGBVMPCQHtYGVPtHVCGXBPeDICGXHItTOtGCFVPetVYGeYOBPeQYVBPtDPFKIeMYDGtLeXCBPFeBeVCGXQeXtCOtDAIeVtGVYABPSYIeCCVYOCHItFBPtVKeCIVPetVICGSeXVeMYGXtGBPeJYIFXRKBPetGBeIGCBtYGCFVSCBtGDAGtYGVPetVBPeMAIIeGBIeMYIXPYFXeIOYIFCXteVtGBPeVPYIBHIYDICQBPeOIeeVSCBtGDCGXBPeMYQRtGeXBYBCFAGXeIBPetVAEAXDtGDVKVBeQVPetVCFVYBPeOtIVBOeQCFeVSCBeIBYVAIHCVVBPeBJYPAXIeCXHYtGBQCISAGXeIBPetVAEAXDtGDVKVBeQVPePCVGeUeIReeGHFCMeXYOOBPeHYXtAQtGPeIeGBtIeMCIeeI
보통 암호문에서 가장 먼저 추측하는 단어가 'the' 입니다. 그런데 위의 일부만 해석한 암호문에서 'the'라는 유의미한 패턴은... 안보입니다.
2. 아래 암호문은 Z를 t로 바꾼 것을 제대로 되돌리고, N만 e로 바꾼 것입니다. 확실히 'BPe'가 특징적으로 나타나네요.
SZQKAGCZVCVYABPSYIeCGOZDAIeVSCBeIVPeZVBPeYFKQHZMMPCQHZYGZGFCXZeVVZGDFeVBPeJYIFXMPCQHZYGBPeOYAIMYGBZGeGBVMPCQHZYGCBPIeeBZQeDICGXHIZTOZGCFMPCQHZYGBPeJYIFXEAGZYIMPCQHZYGBPeEAGZYIDICGXHIZTOZGCFMPCQHZYGCGXCOYAIBZQeVYABPSYIeCGGCBZYGCFMPCQHZYGSZQZVBPeOZIVBVYABPSYIeCGOZDAIeVSCBeIBYJZGCQeXCFCBCGZVAEAGZYIYIVeGZYIDICGXHIZTeUeGBZVAMPCQHZYGVPZHCGXBPeYFKQHZMDCQeVVPeZVBPeOZIVBOeQCFeVSCBeIBYJZGBPeYFKQHZMDCQeVBPeJYIFXMPCQHZYGVPZHVBPeOYAIMYGBZGeGBVMPCQHZYGVPZHVCGXBPeDICGXHIZTOZGCFVPeZVYGeYOBPeQYVBPZDPFKIeMYDGZLeXCBPFeBeVCGXQeXZCOZDAIeVZGVYABPSYIeCCVYOCHIZFBPZVKeCIVPeZVICGSeXVeMYGXZGBPeJYIFXRKBPeZGBeIGCBZYGCFVSCBZGDAGZYGVPeZVBPeMAIIeGBIeMYIXPYFXeIOYIFCXZeVZGBPeVPYIBHIYDICQBPeOIeeVSCBZGDCGXBPeMYQRZGeXBYBCFAGXeIBPeZVAEAXDZGDVKVBeQVPeZVCFVYBPeOZIVBOeQCFeVSCBeIBYVAIHCVVBPeBJYPAXIeCXHYZGBQCISAGXeIBPeZVAEAXDZGDVKVBeQVPePCVGeUeIReeGHFCMeXYOOBPeHYXZAQZGPeIeGBZIeMCIeeI
c: 'B' - p: 't', c: 'P' - p: 'h'로 변환하겠습니다.
3. 바꾸고 보니 'ee'가 눈에 띕니다. 특히 가장 마지막 단어(?). 'IeeI'인데요, ee가 두 번 양쪽에 'I'라는 같은 알파벳이 들어가는 단어는 꽤나 희귀해 보입니다.
SZQKAGCZVCVYAthSYIeCGOZDAIeVSCteIVheZVtheYFKQHZMMhCQHZYGZGFCXZeVVZGDFeVtheJYIFXMhCQHZYGtheOYAIMYGtZGeGtVMhCQHZYGCthIeetZQeDICGXHIZTOZGCFMhCQHZYGtheJYIFXEAGZYIMhCQHZYGtheEAGZYIDICGXHIZTOZGCFMhCQHZYGCGXCOYAItZQeVYAthSYIeCGGCtZYGCFMhCQHZYGSZQZVtheOZIVtVYAthSYIeCGOZDAIeVSCteItYJZGCQeXCFCtCGZVAEAGZYIYIVeGZYIDICGXHIZTeUeGtZVAMhCQHZYGVhZHCGXtheYFKQHZMDCQeVVheZVtheOZIVtOeQCFeVSCteItYJZGtheYFKQHZMDCQeVtheJYIFXMhCQHZYGVhZHVtheOYAIMYGtZGeGtVMhCQHZYGVhZHVCGXtheDICGXHIZTOZGCFVheZVYGeYOtheQYVthZDhFKIeMYDGZLeXCthFeteVCGXQeXZCOZDAIeVZGVYAthSYIeCCVYOCHIZFthZVKeCIVheZVICGSeXVeMYGXZGtheJYIFXRKtheZGteIGCtZYGCFVSCtZGDAGZYGVheZVtheMAIIeGtIeMYIXhYFXeIOYIFCXZeVZGtheVhYItHIYDICQtheOIeeVSCtZGDCGXtheMYQRZGeXtYtCFAGXeItheZVAEAXDZGDVKVteQVheZVCFVYtheOZIVtOeQCFeVSCteItYVAIHCVVthetJYhAXIeCXHYZGtQCISAGXeItheZVAEAXDZGDVKVteQVhehCVGeUeIReeGHFCMeXYOOtheHYXZAQZGheIeGtZIeMCIeeI
4. ?*ee*: 'ee'가 포함되며 그 앞 뒤로 같은 알파벳이 있으며 그 알파벳으로 끝나는 단어, 'career'를 찾았습니다.
c: 'M' - p: 'c', c: 'C' - p: 'a', c: 'I' - p: 'r'로 변환하겠습니다.
SZQKAGaZVaVYAthSYreaGOZDAreVSaterVheZVtheYFKQHZcchaQHZYGZGFaXZeVVZGDFeVtheJYrFXchaQHZYGtheOYArcYGtZGeGtVchaQHZYGathreetZQeDraGXHrZTOZGaFchaQHZYGtheJYrFXEAGZYrchaQHZYGtheEAGZYrDraGXHrZTOZGaFchaQHZYGaGXaOYArtZQeVYAthSYreaGGatZYGaFchaQHZYGSZQZVtheOZrVtVYAthSYreaGOZDAreVSatertYJZGaQeXaFataGZVAEAGZYrYrVeGZYrDraGXHrZTeUeGtZVAchaQHZYGVhZHaGXtheYFKQHZcDaQeVVheZVtheOZrVtOeQaFeVSatertYJZGtheYFKQHZcDaQeVtheJYrFXchaQHZYGVhZHVtheOYArcYGtZGeGtVchaQHZYGVhZHVaGXtheDraGXHrZTOZGaFVheZVYGeYOtheQYVthZDhFKrecYDGZLeXathFeteVaGXQeXZaOZDAreVZGVYAthSYreaaVYOaHrZFthZVKearVheZVraGSeXVecYGXZGtheJYrFXRKtheZGterGatZYGaFVSatZGDAGZYGVheZVthecArreGtrecYrXhYFXerOYrFaXZeVZGtheVhYrtHrYDraQtheOreeVSatZGDaGXthecYQRZGeXtYtaFAGXertheZVAEAXDZGDVKVteQVheZVaFVYtheOZrVtOeQaFeVSatertYVArHaVVthetJYhAXreaXHYZGtQarSAGXertheZVAEAXDZGDVKVteQVhehaVGeUerReeGHFaceXYOOtheHYXZAQZGhereGtZrecareer
5. 이번엔 'VYAthSYrea'가 반복됩니다. 누가봐도 'south korea' 각이네요.
SZQKAGaZVaVYAthSYreaGOZDAreVSaterVheZVtheYFKQHZcchaQHZYGZGFaXZeVVZGDFeVtheJYrFXchaQHZYGtheOYArcYGtZGeGtVchaQHZYGathreetZQeDraGXHrZTOZGaFchaQHZYGtheJYrFXEAGZYrchaQHZYGtheEAGZYrDraGXHrZTOZGaFchaQHZYGaGXaOYArtZQeVYAthSYreaGGatZYGaFchaQHZYGSZQZVtheOZrVtVYAthSYreaGOZDAreVSatertYJZGaQeXaFataGZVAEAGZYrYrVeGZYrDraGXHrZTeUeGtZVAchaQHZYGVhZHaGXtheYFKQHZcDaQeVVheZVtheOZrVtOeQaFeVSatertYJZGtheYFKQHZcDaQeVtheJYrFXchaQHZYGVhZHVtheOYArcYGtZGeGtVchaQHZYGVhZHVaGXtheDraGXHrZTOZGaFVheZVYGeYOtheQYVthZDhFKrecYDGZLeXathFeteVaGXQeXZaOZDAreVZGVYAthSYreaaVYOaHrZFthZVKearVheZVraGSeXVecYGXZGtheJYrFXRKtheZGterGatZYGaFVSatZGDAGZYGVheZVthecArreGtrecYrXhYFXerOYrFaXZeVZGtheVhYrtHrYDraQtheOreeVSatZGDaGXthecYQRZGeXtYtaFAGXertheZVAEAXDZGDVKVteQVheZVaFVYtheOZrVtOeQaFeVSatertYVArHaVVthetJYhAXreaXHYZGtQarSAGXertheZVAEAXDZGDVKVteQVhehaVGeUerReeGHFaceXYOOtheHYXZAQZGhereGtZrecareer
c: 'V' - p: 's', c: 'Y' - p: 'o', c: 'A' - p: 'u', c: 'S' - p: 'k', c: 'Y' - p: 'o'로 변환하겠습니다.
6. 이번엔 'Zs'를 'is'로 바꿀 겁니다.
kZQKuGaZsasouthkoreaGOZDureskatersheZstheoFKQHZcchaQHZoGZGFaXZessZGDFestheJorFXchaQHZoGtheOourcoGtZGeGtschaQHZoGathreetZQeDraGXHrZTOZGaFchaQHZoGtheJorFXEuGZorchaQHZoGtheEuGZorDraGXHrZTOZGaFchaQHZoGaGXaOourtZQesouthkoreaGGatZoGaFchaQHZoGkZQZstheOZrstsouthkoreaGOZDureskatertoJZGaQeXaFataGZsuEuGZororseGZorDraGXHrZTeUeGtZsuchaQHZoGshZHaGXtheoFKQHZcDaQessheZstheOZrstOeQaFeskatertoJZGtheoFKQHZcDaQestheJorFXchaQHZoGshZHstheOourcoGtZGeGtschaQHZoGshZHsaGXtheDraGXHrZTOZGaFsheZsoGeoOtheQosthZDhFKrecoDGZLeXathFetesaGXQeXZaOZDuresZGsouthkoreaasoOaHrZFthZsKearsheZsraGkeXsecoGXZGtheJorFXRKtheZGterGatZoGaFskatZGDuGZoGsheZsthecurreGtrecorXhoFXerOorFaXZesZGtheshortHroDraQtheOreeskatZGDaGXthecoQRZGeXtotaFuGXertheZsuEuXDZGDsKsteQsheZsaFsotheOZrstOeQaFeskatertosurHassthetJohuXreaXHoZGtQarkuGXertheZsuEuXDZGDsKsteQshehasGeUerReeGHFaceXoOOtheHoXZuQZGhereGtZrecareer
c: 'Z' - p: 'i'로 변환하겠습니다.
7. 이제 대부분의 단어가 대애충 읽히는 수준입니다.
kiQKuGaisasouthkoreaGOiDureskatersheistheoFKQHicchaQHioGiGFaXiessiGDFestheJorFXchaQHioGtheOourcoGtiGeGtschaQHioGathreetiQeDraGXHriTOiGaFchaQHioGtheJorFXEuGiorchaQHioGtheEuGiorDraGXHriTOiGaFchaQHioGaGXaOourtiQesouthkoreaGGatioGaFchaQHioGkiQistheOirstsouthkoreaGOiDureskatertoJiGaQeXaFataGisuEuGiororseGiorDraGXHriTeUeGtisuchaQHioGshiHaGXtheoFKQHicDaQessheistheOirstOeQaFeskatertoJiGtheoFKQHicDaQestheJorFXchaQHioGshiHstheOourcoGtiGeGtschaQHioGshiHsaGXtheDraGXHriTOiGaFsheisoGeoOtheQosthiDhFKrecoDGiLeXathFetesaGXQeXiaOiDuresiGsouthkoreaasoOaHriFthisKearsheisraGkeXsecoGXiGtheJorFXRKtheiGterGatioGaFskatiGDuGioGsheisthecurreGtrecorXhoFXerOorFaXiesiGtheshortHroDraQtheOreeskatiGDaGXthecoQRiGeXtotaFuGXertheisuEuXDiGDsKsteQsheisaFsotheOirstOeQaFeskatertosurHassthetJohuXreaXHoiGtQarkuGXertheisuEuXDiGDsKsteQshehasGeUerReeGHFaceXoOOtheHoXiuQiGhereGtirecareer
예상가는 키워드가 있긴 하지만, 일단 더 바꾸어 보겠습니다.
c: 'O' - p: 'f', c: 'D' - p: 'g', c: 'G' - p: 'n', c: 'F' - p: 'l', c: 'K' - p: 'y', c: 'Q' - p: 'm', c: 'H' - p: 'p'으로 변환하겠습니다.
8. 이제 대부분이 읽힙니다.
kimyunaisasouthkoreanfigureskatersheistheolympicchampioninlaXiessinglestheJorlXchampionthefourcontinentschampionathreetimegranXpriTfinalchampiontheJorlXEuniorchampiontheEuniorgranXpriTfinalchampionanXafourtimesouthkoreannationalchampionkimisthefirstsouthkoreanfigureskatertoJinameXalatanisuEuniororseniorgranXpriTeUentisuchampionshipanXtheolympicgamessheisthefirstfemaleskatertoJintheolympicgamestheJorlXchampionshipsthefourcontinentschampionshipsanXthegranXpriTfinalsheisoneofthemosthighlyrecogniLeXathletesanXmeXiafiguresinsouthkoreaasofaprilthisyearsheisrankeXseconXintheJorlXRytheinternationalskatingunionsheisthecurrentrecorXholXerforlaXiesintheshortprogramthefreeskatinganXthecomRineXtotalunXertheisuEuXgingsystemsheisalsothefirstfemaleskatertosurpassthetJohuXreaXpointmarkunXertheisuEuXgingsystemshehasneUerReenplaceXoffthepoXiuminherentirecareer
c: 'U' - p: 'v', c: 'R' - p: 'b', c: 'X' - p: 'd', c: 'E' - p: 'j', c: 'J' - p: 'w', c: 'T' - p: 'x', c: 'L' - p: 'z'
kimyuna is a south korean figure skater she is the olympic champion in ladies singles the world champion the four continents champion a three time grand prix final champion the world junior champion the junior grand prix final champion and a four time south korean national champion kim is the first south korean figure skater to win a medal at an isu junior or senior grand prix event isu championship and the olympic games she is the first female skater to win the olympic games the world championships the four continents championships and the grand prix final she is one of the most highly recognized athletes and media figures in south korea as of a pril this year she is ranked second in the world by the international skating union she is the current record holder for ladies in the short program the free skating and the combined total under the isu judging system she is also the first female skater to surpass the two hudread point mark under the isu judging system she has never been placed off the podium in her entire career
'Wargame > SuNiNaTaS' 카테고리의 다른 글
SuNiNaTaS 30 (FORENSICS 366pt) (0) | 2020.08.24 |
---|---|
SuNiNaTaS 29 (FORENSICS 266pt) (0) | 2020.08.23 |
SuNiNaTaS 21 (FORENSIC 221pt) (0) | 2020.08.15 |
SuNiNaTaS 19 (FORENSICS 154pt) (0) | 2020.07.26 |
SuNiNaTaS 15 (FORENSICS 255pt) (0) | 2020.07.26 |