Hashing with Salt and Pepper 포스팅 썸네일 이미지

Crypto

Hashing with Salt and Pepper

Hashing with Salt and Pepper Server-Side Password Storage 1. 개요 해시함수는 실생활에서도 자주 이용되고 있습니다. 임의의 값에 대해 고정된 길이로 매핑할 수 있기 때문에 보통 hash table의 형태로 많이 사용되고 있습니다. 오늘은 단순한 해시 함수가 아닌, Salt와 Pepper를 사용한 해시 함수에 대해서 설명하고자 합니다. 2. 배경지식 예를 들어 한 서비스에서 비밀번호를 hash table의 형태로 관리하고 있다고 가정합시다. 그러면 예를 들어 아래와 같이 hash table이 저장되어있겠죠? User Hash Alice 20A0B08E69 Bob 630B0260BC Charlie 20A0B08E69 Daisy 82B97C9972 그러면 예를 들..

2023.01.04 게시됨

Rainbow Table Attack 알아보기 포스팅 썸네일 이미지

Crypto

Rainbow Table Attack 알아보기

Rainbow Table Attack 알아보기 1. 개요 오늘은 Rainbow Table Attack에 대해서 알아보도록 하겠습니다. Rainbow Table Attack은 주로 암호 알고리즘을 알고 있고 자유롭게 평문-암호문 쌍을 생성할 수 있는 환경의 선택평문공격(Chosen-Plaintext Attack)으로 분류됩니다. 예를 들어서 대부분의 서비스들은 유저의 비밀번호를 암호화/해싱이 된 형태로 저장합니다. 그래야 전송 과정에서 탈취를 당하더라도 credential이 유출되지 않기 때문입니다. 그러면 이때 암호문을 탈취한 뒤, 평문을 다시 얻어낼 수 있을까요? 선택평문공격을 할 수 있는 환경이라면 Rainbow Table Attack을 수행할 수 있습니다. 2. Rainbow Table 생성 우선 ..

2023.01.03 게시됨

Hashcat 사용기 포스팅 썸네일 이미지

Crypto

Hashcat 사용기

Hashcat 사용기 수업 실습 중 재미있는 툴을 알게되어서 간단한 글을 작성해보려고 합니다. Hashcat이라고 하는 브루트포싱 툴인데, 이것저것 가능하더라구요. 1. Installation sudo apt install hashcat 2. Usage Hashcat은 기능이 많아서 각각 설명하기에는 너무 길어집니다. 시간이 많고 궁금하신 분들은 hashcat --help를 통해서 정독시간을 가지시면 될 것 같습니다. 저는 많이 쓰이는 옵션만 간단하게 짚고 넘어가도록 하겠습니다. 쭉 가볍게 읽고, 아래 example에서 직접 해보면서 이해 안되는 부분이 있다면 돌아와도 좋을 것 같습니다. Hash Type (-m) 가장 먼저 해시 함수의 종류입니다. 엄청 많이 있는데, 가장 핵심적인 친구들만 적어보도록 ..

2022.12.20 게시됨

공개키 암호에 대한 이모저모 (1) - based on 소인수분해 포스팅 썸네일 이미지

Crypto

공개키 암호에 대한 이모저모 (1) - based on 소인수분해

공개키 암호에 대한 이모저모 (1) RSA, Rabin 이번에는 공개키 암호화에 대해서 몇 가지 알아봅시다. 시험공부를 위한 암기만 했더니 다시 보니깐 이름만 어디서 본 거같고 아무고토 알 수 없습니다... 너무 깊게까지는 안들어가고, 전반적으로 무엇인지 알 수 있을 정도로만 정리하도록 하겠습니다. 0. 공개키 암호 정말정말 간단하게 설명하고 넘어갈게요. 공개키암호 보다는 비대칭키 암호라는 단어를 더 좋아해서, 이걸로 설명하겠습니다. 비대칭키, 즉 암호화/복호화를 하는 키는 2개이며, 하나는 공개, 하나는 비공개로 하여 암호화/복호화하는 과정입니다. 이 키들을 각각 공개/비공개키라고 합니다. 일단 각 키는 보통 수학적 문제에 기반하여 생성합니다. 그래서 키의 생성 과정은 비공개키를 통해 공개키를 만들어 ..

2021.07.08 게시됨

base64 encoding 알아보기 (좀 필요 이상으로 많이) 포스팅 썸네일 이미지

Crypto

base64 encoding 알아보기 (좀 필요 이상으로 많이)

base64 encoding 알아보기 (좀 필요 이상으로 많이) 1. 개요 base64 encoding 기법은 CTF부터 시작해서 실생활에서도 정말 많이 사용되는 encoding 기법 중 하나입니다. 사실 현실은 온라인으로도 툴이 너무 잘되어있어서, 걍 원리고 뭐고 걍 일단 집어넣어보는 정도인 것 같습니다. 이번 글에서는 진짜 얘가 뭔지, 왜 필요한지, 어떤 과정으로 이루어지는지 봅시다. 그러면 일단 base64부분을 알아보기 전에, encoding부터 알아봅시다. Encoding 문자 인코딩(영어: character encoding), 줄여서 인코딩은 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말한다. source : https://ko.wikipedia.org/wik..

2021.07.07 게시됨

[RSA] RSA 공격법 포스팅 썸네일 이미지

Crypto

[RSA] RSA 공격법

RSA 공격법 CTF에서 크립토문제로 생각보다 자주 출제되는 RSA 이다. 크게 분류하면 적절하지 못한 소수를 택한 경우 / 구조상 문제로 나뉜다. 0. 개인키 유출 p, q, ϕ(n), d 중 단 하나라도 노출된다면 나머지 키들을 모두 획득할 수 있다. 방법은 확장된 유클리드 호제법을 사용하면 간단하게 구할 수 있다. 이론은 이전글 참고 : dokhakdubini.tistory.com/288 [RSA] 이론적인 접근으로 RSA 이론적인 접근으로 이번에 다뤄볼 암호체계는 RSA입니다. 0. 배경지식-공개키 암호 시스템 RSA 알고리즘을 이해하기 위해서 기본적으로 공개키 암호 시스템에 대해서 가볍게나마 훑어보겠습니 dokhakdubini.tistory.com 1. 소인수분해 n을 소인수분해 할 수 있다면 ..

2020.09.27 게시됨

[RSA] 이론적인 접근으로 포스팅 썸네일 이미지

Crypto

[RSA] 이론적인 접근으로

RSA 이론적인 접근으로 이번에 다뤄볼 암호체계는 RSA입니다. 0. 배경지식-공개키 암호 시스템 RSA 알고리즘을 이해하기 위해서 기본적으로 공개키 암호 시스템에 대해서 가볍게나마 훑어보겠습니다. 읽어보고 아직 잘 모르겠다 싶은 부분이 있다면 따로 더 공부를 한 뒤에 읽는걸 추천드립니다. = 공개키 암호 시스템 = 비대칭키 암호 시스템이라고도 합니다. 개인적으로 비대칭키 암호 시스템이라고 알고있는 것이 직관적인 이해를 돕는 것 같습니다. 암호화, 복호화에 사용되는 키가 서로 다른 암호 시스템이고, 암호화키를 공개합니다. (왜 공개키 암호/비대칭키 암호인지 알겠죠?) 대칭키 암호화 비교했을 때 엄청나게 많은 연산량을 필요로 하기 때문에 보통 키 분배 문제 해결을 위해 사용됩니다. 더불어 많은 연산량 덕분..

2020.09.26 게시됨

Pollard's Rho에 대하여 포스팅 썸네일 이미지

Crypto

Pollard's Rho에 대하여

Ⅰ. Pollard’s Rho에 대하여 Pollard’s Rho는 공개키 암호알고리즘에서 가장 많이 사용되는 계산 문제 중 하나인 인수분해 문제를 해결하기 위한 알고리즘 중 하나이다. Pollard’s Rho 알고리즘은 보통 10자리 이하의 수에 대한 수인수분해에 최적으로 알려져있는 알고리즘이다. Pollard’s Rho에서 사용되는 이론은 다음과 같다. 1. 두 정수 x와 y는 다음과 같은 경우에 mod n에 대하여 합동이다. 1) 그들의 차가 n의 배수이다. 2) 각 숫자가 n으로 나누었을 때 같은 나머지를 갖는다. 2. GCD(Greatest Common Divisor), 즉 최대공약수는 각각 숫자들을 나누는 인수 중 가장 큰 숫자이다. 3. Birthday Paradox(생일 역설), 즉 두 사람..

2020.09.09 게시됨

[AES] 이론적인 접근으로 포스팅 썸네일 이미지

Crypto

[AES] 이론적인 접근으로

AES Advanced Encryption System 이론적으로 AES에 대해 다뤄보고자합니다. 다음글은 코딩적인 접근으로 해보자 합니다. 1. AES의 등장배경 원래는 DES라는 암호체계를 사용하고있었지만, $2^{56}$개의 키에대해서 전사적 공격이 가능해 취약한 알고리즘이 되었습니다. (보통 $2^{60}$보다 작은 케이스로 전수조사가 가능하면, 그닥 안전하지 않은 알고리즘으로 분류합니다.) 물론 그 약점을 피하기위한 Triple DES같은 알고리즘이 많았지만, 효율적이지않아 결국 새로운 암호체계가 필요했습니다. 따라서 AES공모를 하게되었고, 다음과 같은 요구사항을 충족해야했습니다. - 블록의 크기는 128비트 -대칭키 암호이며 세 종류의 키(128, 192, 256비트)를 사용할 수 있어야 함..

2020.04.11 게시됨