Cryptography

Cryptography

BMP Image 암호화(ECB, CBC mode)

원본사진이다. 이 비트맵 이미지를 각각 ECB 모드와 CBC 모드로 암호화하였을 때 어떻게 변화하는지 살펴보자. 다음과 같은 코드로 암호화를 수행한다. from Crypto.Cipher import AES from PIL import Image import binascii, os, random, struct def convert2RGB(data): r, g, b = tuple(map(lambda d: [data[i] for i in range(0, len(data)) if i % 3 == d], [0, 1, 2])) pixels = tuple(zip(r, g, b)) return pixels def encrypt_bmp_file(key, mode, iv, in_filename, out_filename =..

Cryptography

DES 구현 (C)

#include unsigned static IP[64] = { 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 04, 62, 54, 46, 38, 30, 22, 14, 06, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 03, 61, 53, 45, 37, 29, 21, 13, 05, 63, 55, 47, 39, 31, 23, 15, 07 }; unsigned static FP[64] = { 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, ..

Cryptography/Differential Attack (차분 공격)

차분 공격 - 실습

Toy Cipher 를 대상으로 진행한 차분 공격 실습이다. 0. 평문쌍, 암호문쌍 평문쌍 코드 #define CRT_SECURE_NO_WARNINGS #include #include #include int main() { FILE *pA, *pB, *cA, *cB; uint32_t random = 0; uint32_t plain_a = 0x00, plain_b = 0x00; uint32_t cipher_a = 0x00, cipher_b = 0x00; uint32_t a = 0x00; //Write Plaintext pA = fopen("Plaintext_A.txt", "w"); pB = fopen("Plaintext_B.txt", "w"); srand((unsigned)time(NULL)); for (..

Cryptography/Differential Attack (차분 공격)

차분 공격 - 분석

1. 차분공격이란? 차분 공격이란 암호분석 방법의 한 종류이다. 차분이란 말은 말 그대로 차이, 즉 두 값 a, b 를 XOR 한 결과이다. 쉽게 생각해서 0 과 1 은 차이가 "존재"하기 때문에 XOR 한 결과가 1, 그리고 0과 0 혹은 1 과 1 의 차이는 "없음"이므로 XOR 결과가 0이다. 이러한 암호분석 방법의 존재 이유는 단 하나일 것이다. 전사공격보다 나은 방법. 즉 모든 값을 대입하여 원하는 결과를 얻는 무차별 대입 공격 (Brute Force Attack) 보다 더 빠르게, 효율적으로 공격을 수행하기 위해서 등장하였다. 2. 차분분석 차분공격을 진행하기 위한 일련의 과정으로 DDT(Differential Distribution Table)을 작성하는 것, Propagation Ratio..

Lucvs
'Cryptography' 카테고리의 글 목록 (2 Page)