DreamHack [crypto] Basic_Crypto 1

2023. 9. 4. 00:44Wargame/dreamhack

320x100
320x100

dreamhack crypto 난이도 1 첫번째 문제입니다.

문제

Roman emperor's cipher ==> 카이사르 암호

 

<카이사르 암호>

평문의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 치환하는 암호화 기법으로, 시저 암호라고도 부름.

즉, 암호화를 할 때 평문을 n번씩 밀려서 암호화하는 방법.

알파벳을 밀어낸 횟수를 key라고 하면, 알파벳은 총 26자 => 가능한 키의 개수는 26.

 

암호문

 

복호화 시작=~~~~~~ (서치했습니다^^;)

출처: http://[Dreamhack] Basic_Crypto1.. : 네이버블로그 (naver.com)

카이사르 암호 복호화 C언어 코드

 

#caesar.c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
	char arr[501];
	int len;
	scanf("%s", arr);
	len = strlen(arr);
	for (int key = 1; key < 26; key++) {
		for (int t = 0; t < len; t++) {
			if (arr[t] >= 65 && arr[t] <= 90) {
				if (arr[t] + key > 90) {
					arr[t] = arr[t] + key - 26;
				} else {
					arr[t] += key;
				}
			} else {
				if (arr[t] > 122) {
					arr[t] = arr[t] + key - 26;
				} else {
					arr[t] += key;
				}
			}
		}
		printf("key %d : %s\n", key, arr);
	}
}

 

 

 

Debugging=~~~~~~

flag 획득!!

평문의 'B'가 암호문에서 'E'가 되었기 때문에,

오른쪽으로 3번 밀어낸 암호문이라는 것을 알 수 있습니다.

공백 ==> _

암호문에서의 공백을 언더바로 채워주면~~~~~~

 

이상.//

320x100
320x100

'Wargame > dreamhack' 카테고리의 다른 글

DreamHack [crypto] darimchal_001  (0) 2023.09.22
DreamHack [Web] file-download-1  (0) 2023.09.19
DreamHack [crypto] ROT128  (2) 2023.08.31
DreamHack [web] command-injection-1  (0) 2023.08.30
DreamHack [web] cookie  (0) 2023.08.27