용어 정리 Plaintext : 일반문자 (original message) Ciphertext : 암호화된 문자 (coded message) Encryption / Enciphering : Converting plaintext -> ciphertext Decryption / Deciphering : Converting ciphertext -> plainte...
Divisibility (가분성) > b | a : b / a : a = m * b : b는 a의 약수이다. Greatest Common Divisor (GCD) > gcd(a,b) = max(k, such that k | a and k | b) a = k x m, b = k x n k는 a의 약수이다, k는 b의 약수이다. 그렇기에 max(k, k | ...

DES > 키의 길이가 56bit이다. 56bit가 짧아서 AES가 나온거다. Block Cipher: 임의의 길이의 데이터를 고정된 데이터 길이로 바꿔 데이터를 암호함. 56bit -> 64bit block으로 암호함. Feistel Nework: 여러개의 round들로 구성된다. typically 16 rounds in DES Confusion: ke...

DES vs Advanced Encryption Standard(AES) > #### AES Requirements Symmetric block cipher, 128-bit data, 128/192/256-bit keys Stronger & faster than Triple-DES 모든 디자인, 설계를 public하게 공개 Feistel network를 사...

임의의 길이 데이터 전체 암호화하는데 조금 어려움이 있다. 그래서 128bit단위로 데이터를 암호화하는 AES가지고 Modes of operation. 임의의 길이 데이터를 암호화 복호화 해주기 위해 여러개를 반복해서 사용해야되는데 어떻게 여러번 반복해서 사용하냐에 대한 정의가 Modes of operation임. Block Cipher을 가지고 기밀성은...

Random Randomness(진짜 랜덤인가), Unpredictability(예측 불가능) 2가지 특징을 만족하는지 확인해야 됨. > #### Randomness를 판단하는 기준 Uniform distribution: bit단위로 다 뽑고 bit의 0혹은1 빈도수가 비슷하면 Uniform distribution을 따른다 라고 할 수 있다. Indepe...

Symmetric Key Cryptography의 문제점 사용자 그룹의 사람이 많아지면 많아질수록 소유하고 있어야 하는 키의 개수가 점점 많아지게 된다. n명의 사용자가 있는 그룹의 경우 각 n(n-1)/2개의 키를 가지고 있어야 한다. 그렇기에 나온게 Asymmetric Cryptography Asymmetric Cryptography >#### Pu...

Hash Function >임의의 길이의 데이터를 고정된 길이의 데이터로 변환해주는 것. Compression(압축): 압축하는것이 중요한데, 압축하는데 드는 비용이 적어야 된다. 압축하는데 드는 비용이 많이 드는 경우 효율성이 떨어진다. Ease of computation: 입력 x가 주어졌을때 출력 h 구하는 과정이 쉬워야 된다. > Hash, Mac,...

Transport level **SSL(Secure Socket Layer) Protocol TLS(Transport Layer Security) Protocol ** SSL v2.0, v3.0 SSL v3.1 == TLS v1.0 현재 TLS v1.2를 전세계적으로 사용중이고 TLS v1.3을 사용하는 곳도 있다. SSL/TLS Protocol > 인...
Fuzzing > 랜덤한 시퀀스를 입력으로 주었을 때 내부에서 해당 시퀀스를 처리함에 있어서 crash를 유발할 수 있는 여러가지 입력을 만들어 내는 테스팅 방법론을 fuzzing이라 한다. Mutation-based Fuzzing 기존의 올바른 입력을 가지고 작은 변경(mutation)을 반복적으로 가해 새로운 동작이나 오류를 유발하는 입력을 만드는 방식...