일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Protostar
- picoCTF2018
- 시스템해킹
- Hxd
- picoCTF
- Aleph One
- 해설
- CTF
- 카이사르
- 해킹 공부
- cryptography
- 리버싱
- #picoCTF2018
- 시스템
- 번역
- grep
- 리눅스
- writeup
- reversing
- write up
- forensics
- 스택
- 버퍼오버플로우
- Smashing The Stack For Fun And Profit
- WEB
- general skills
- dreamhack
- KOISTUDY
- #hacking
- 정답
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라는 해독 결과를 볼 수 있다.
반응형