DreamHack [crypto] Basic_Crypto 1
2023. 9. 4. 00:44ㆍWargame/dreamhack
320x100
320x100
dreamhack crypto 난이도 1 첫번째 문제입니다.
Roman emperor's cipher ==> 카이사르 암호
<카이사르 암호>
평문의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 치환하는 암호화 기법으로, 시저 암호라고도 부름.
즉, 암호화를 할 때 평문을 n번씩 밀려서 암호화하는 방법.
알파벳을 밀어낸 횟수를 key라고 하면, 알파벳은 총 26자 => 가능한 키의 개수는 26.
복호화 시작=~~~~~~ (서치했습니다^^;)
출처: http://[Dreamhack] Basic_Crypto1.. : 네이버블로그 (naver.com)
#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=~~~~~~
평문의 '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 |