| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- grep
- Smashing The Stack For Fun And Profit
- 스택
- write up
- Protostar
- 시스템
- KOISTUDY
- dreamhack
- Aleph One
- 버퍼오버플로우
- Hxd
- writeup
- forensics
- 해설
- 카이사르
- #picoCTF2018
- 정답
- picoCTF2018
- 번역
- CTF
- reversing
- #hacking
- cryptography
- picoCTF
- 해킹 공부
- 리눅스
- 리버싱
- WEB
- general skills
- 시스템해킹
Archives
- Today
- Total
Security || AI
[암호학]카이사르(시저)암호 해독 C언어 본문
이번 글에서는 CTF문제에 자주 출제되는 암호 기법 중 하나인 카이사르(시저)암호에 대해 다루어 볼 것이다..
카이사르 암호는 치환 암호의 일종으로 예를 들어 A -> C, B -> D 이런식으로 암호화를 하는 암호 기법이다.
#include <stdio.h>
#include <string.h>
#include <windows.h>
main()
{
char s[10000];
gets(s);
for(int n=1; n<=26; n++)
{
for(int i=0; i<strlen(s); i++)
{
if(i<strlen(s)){
if(isalpha(s[i]))
{
if(s[i]==90)
s[i]=65;
else if(s[i]==122)
s[i]=97;
else
s[i]++;
}
}
}
printf("%d번째: %s\n",n,s);
}
system("pause");
}문자열을 받으면 알파벳인 경우에만 문자의 아스키코드를 더해 모든 경우의 대칭 암호를 보여주는 소스코드이다.
소문자에서는 z의 아스키코드인 122, 대문자에서는 Z의 아스키코드인 90일 때 각각 a, A로 바꾸어주는 알고리즘을 가진다.
실행 예시, 결과
5번째에 This is Caesar라는 해독 결과를 볼 수 있다.
반응형