Cryptography

    Cryptography(암호학) - 현대암호

    Cryptography(암호학) - 현대암호

    현대 암호는 안정성을 갖춘 암호화를 하기 위해 혼돈, 확산이라는 성질을 가져야한다. 혼돈은 암호문에서 평문이 특성을 알아내기 힘들다는 성질이고, 확산은 평문의 작은변화가 암호문에서는 큰 변화로 이어진다는 성질이다. 현대에는 대칭키 암호 시스템 즉 암호화, 복호화할때 사용하는 키가 같은 암호시스템이랑 키가 서로 다른 비대칭키(공개키) 암호 시스템이 있다. 1. 대칭키 암호 시스템 대표적으로 블록암호, 스트림 암호가 있다. 블록 암호는 정해진 블록 단위로 암호화 하는 것이다. 만약 블로의 크기가 4바이트라면 평문도 4바이트로 쪼개서 암호화를 진행 해야한다. 스트림 암호란 송신자와 수신자가 공유하는 데이터 스트림을 생성하고 이를 평문에 XOR하는 암호이다. 스트림 암호는 아래와 같이 암호화 할 수 있다. C(..

    Cryptography(암호학) - 고전암호

    Cryptography(암호학) - 고전암호

    오늘은 고전 암호에 대해서 알아볼 것이다.(참고:드림핵 암호학 강의) 1. 고전암호 고전 암호는 요즘처럼 좋은 컴퓨터가 생기기전에 주로 사용한 암호인데, 지금은 그 암호의 복호화가 너무 쉽기때문에 특별한 경우 빼고 잘 사용하지는 않는다. 고전암호는 치환, 전치 의 과정으로 암호화한다. 치환은 평문 문자를 다른문자로 바꾸는 것이다. 전치는 평문 문자의 위치를 바꾸는 것이다. 고전 암호 중 한 가지 원리만 이용한 것에는 치환 암호, 전치 암호가 있고, 더 많은 원리를 이용한 것에는 단일 문자 치환 암호, 다중 문자 치환 암호가 있다. 단일 문자 치환 암호는 평문의 각 글자를 약속된 다른 문자로 치환하는 암호이다. 대표적으로 카이사르암호 라는 것이 있는데, 이는 평문의 각 알파벳을 일정한 거리만큼 밀어서 다른..

    Cryptography(암호학) - 배타적 논리합과 합동식

    Cryptography(암호학) - 배타적 논리합과 합동식

    오늘은 배타적 논리합, 합동식에 대해 알아볼 것이다. 1. 배타적 논리합(XOR) 배타적 논리합은 XOR이라고도 불리는데 이는 입력으로 들어온 두 입력값(인자)가 다를 경우 True(참)을 반환하는 연산이다. XOR은 기본적으로 비트단위로 이루어진다. 2진법으로 각 자리 수가 같은면 0, 다르면 1을 반환한다. 2. 합동식 합동식은 두 정수 x,y를 m으로 나눴을때 나머지가 같은지 확인하는 것이다. x,y를 각각 m으로 나눴을때 같으면, x와 y가 mod m에 대해 합동이라고 한다. 예를들어, 13과 3은 10으로 나눴을때 나머지가 같으므로 아래처럼 나타낸다. 13 ≡ 3(mod 10) 그리고 12와 5를 3으로 나눴을때 나머지는 다르므로 아래처럼 나타낸다. 만약 a,b가 mod m에 대해 합동이면, 아..

    Cyber Chef - 매우 유용한 암호 도구

    Cyber Chef - 매우 유용한 암호 도구

    나는 암호에도 관심이 많다. 그래서 ctf를 나가도 암호학에 관심이 많다. 한번은 darkCTF에서도 haxXor에서 5552415c2b3525105a4657071b3e0b5f494b034515 값을 hex로 decode하고 "darkCTF{}" 가 flag 형식이여서 이걸 UTF-8로 XOR하는 도구가 필요했다. 결국 문제는 문제를 풀지는 못하였지만 Write Up을 보니 Cyber Chef라는 도구를 사용하고 있었다. 이 문제는 위의 값을 darkCTF{} (UTF-8)로 XOR 하면 1337hack이라는 key 값이 다시 나왔고, 1337hack을 다시 XOR하면 flag값이 나왔다. 이제 cyberchef에 대해 소개할 것이다. 일단 cyberchef는 굉장히 많은 decode, encode 툴이..