암호학(5)
-
현대암호 간단 정리
고전암호로 시저, 아핀, 비즈네르 암호들이 있다. 난이도상으로는 이것부터 정리를 했어야했는데 현대암호로 불쑥 점프한 것 같지만 지금 하는 것은 사실상 코드가 어떤식으로 돌아가는지, 어떤 식으로 활용되는지 정도이므로 자세한 건 이후에 암호 하나하나 자세하게 후술할 생각이다. AES256, 512 DES와 더불어 대칭키 암호, 주로 데이터 암호화에 쓰임 메세지 패딩이 있다. python 설치모듈 pip install pycryptodome from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad from Crypto.Random import get_random_bytes import base64 key = get_random_bytes..
2023.05.29 -
블록암호
블록암호 : 자료 블록을 처리하는 핵심 알고리즘 운영 모드의 조합으로 구성되는 암호의 한 종류. 일련의 자료 블럭을 처리하는 기법 1. DES 1979년에 개발해서 1990년까지 비밀이었던 알고리즘. 2. AES DES의 계보를 잇는 암호 알고리즘. 이 외에도 GOST, FOX, IDEA, Threefish 등 여러 블록 암호가 있다. 구성 요소 1. 암호화알고리즘 E 2. 복호화 알고리즘 D 블록암호는 임의의 입력으로부터 결과를 계산할 수 없어야한다는 목표가 있다. 즉, 어떠한 패턴도 발견할 수 없어야한다. = 무작위해보여야 한다. 블록크기 주로 64비트나 128비트 블록 이유 : 암호문의 길이와 메모리 사용량을 최소화하기 위해서는 블록이 너무 커서는 안 됨. 메모리를 최대한 아껴야한다면 64비트 블록..
2023.04.12 -
[암호] 무작위성
보호되어 있는 글입니다.
2023.03.08 -
rot13알고리즘 구현(특수문자, 대문자, 소문자 구현)
about rot13 https://en.wikipedia.org/wiki/ROT13 역의 개념을 이용한 카이사르 기반 암호화 기법인데. rot 14, rot15 등의 방법들을 넣으면 일반적인 카이사르 암호랑은 다른 결과값이 나온다. 따라서 이를 코딩해본다. https://rot13.com/ 의 코드의 결과 값을 비교해가며 맞는 코드인지 확인했다. ct2 = ""#입력하고자하는 평문, 혹은 암호문 apb1="abcdefghijklmnopqrstuvwxyz".upper() apb2="abcdefghijklmnopqrstuvwxyz" for k in range(26): flag="" for i in range(len(ct2)): if( 'A'
2023.03.01 -
[암호] 고전암호와 암호학 기초
보호되어 있는 글입니다.
2023.01.10