복호화(5)
-
cryptography
Cryptography 제삼자로부터 정보를 보호하는 방법에 대한 연구 키 생성Key generation 암호화 및 복호화에 사용할 키를 만드는 과정 암호화키를 이용해 평문Plaintext 을 암호문Ciphertext 으로 변환하는 과정 복호화송신자가 전송한 암호문을 수신자가 키를 이용해 Ciphertext를 Plaintext로 변환하는 과정 인코딩Encoding데이터를 다른 형태로 변환하는 것데이터의 기밀성을 고려하지 않으며, 누구나 디코딩하여 원문을 구할 수 있음크기를 줄이거나 컴퓨터가 이해하기 쉬운 형식으로 변형하기 위해 사용ex) 압축, base64, ...PyCryptodome 패키지PyPI에 등록되어 있는 암호학 전용 패키지AES, DES, RSA와 같은 암호 + 소수 판별과 같은 기능을 가진 ..
2024.05.09 -
DreamHack [crypto] Basic_Crypto 1
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 #include #include int main(void) { char arr[501]; ..
2023.09.04 -
DreamHack [crypto] ROT128
암호학 워게임입니다.(암호학 최고!!!)소스코드#!/usr/bin/env python3hex_list = [(hex(i)[2:].zfill(2).upper()) for i in range(256)] #0~255 정수 값을 16진수 문자열로 변환한 뒤, 이를 두 자리로 맞추고 대문자로 바꾼 값을 list에 저장with open('flag.png', 'rb') as f: #flag파일을 이진모드로 열어서 파일 내용을 읽어옴 plain_s = f.read() #plain_s에 저장plain_list = [hex(i)[2:].zfill(2).upper() for i in plain_s] #plain_s에 저장된 바이트 값을 16진수 문자열로 변환한 뒤, 이를 두 자리로 맞추고 대문자로 바꾼 값을 l..
2023.08.31 -
DreamHack [crypto] SingleByteXor
dreamhack 암호학 워게임입니다.dying message입니다.54586b6458754f7b215c7c75424f21634f744275517d6d xor 변환기를 돌려보았습니다.흐음..... 텍스트 데이터를 보면 형태는 DH{} 비슷한걸로 보아바로 xor변환을 하면 안될 것 같습니다. 0_0seo 님의 C코드를 참고하였습니다.#define _CRT_SECURE_NO_WARNINGS#include #include void main(){ char hex[25] = { 0x54, 0x58, 0x6b, 0x64, 0x58, 0x75, 0x4f, 0x7b, 0x21, 0x5c, 0x7c, 0x75, 0x42, 0x4f, 0x21, 0x63, 0x4f, 0x74, 0x42, 0x75, 0x51, 0x7d, ..
2023.08.23 -
SuNiNaTaS 5번
5번입니다.힌트는 12342046413275659정답이 아님을 알면서도 한번 넣어보기~실패!ㅋㅋㅋㅋㅋㅋㅋ 한참을 소스코드를 보는데 딱봐도 수상한 부분을 포착했습니다.eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('g l=m o(\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\..
2023.08.23