보안
1) Confidentiality(기밀성)
- 허가 받지 않은 사람이 정보를 해독하지 못하도록 하는것
2) Encryption Algorithms(암호 알고리즘)
1) Symmetric Key Cryptography(대칭키암호)
- 암호할때 사용하는 키랑 복호할때 사용하는 키가 같음
- Stream Ciphter(비트단위로 암호화)
- *Block Ciphers(블록단위로 암호화)
- -> round function을 반복함으로써 Ciphertext가 얻어짐
-> round function의 입력값으로는 key와 이전 round의 output이 들어간다
Feistel Cipher암호알고리즘: 특정한 암호알고리즘이 아닌 block cipher를 설계하는 방식
- DES(Data Encryption Standard) : Feistel Cipher의 일종
-> Permutation(순서를 막 섞는 것) , Substitution(특정한 숫자나 문자를 대체)을 사용하는 방식
- DES (56Key) -> exhaustive key search : 2^56번 수행
->컴퓨터의 성능이 발달되며 이를 수행하는게 큰 어려움이 없어져 대책이 필요해짐
solution?
① 3DES : 기존의 DES와 호환성 유지
-> 112bit key(두 개의 key)사용
두 개의 key를 사용하는 이유
key1 key2로 Encrption Decryption Encryption 하는 이유?
- -> Attackerd에게 2^112 번으로 이론적으로 공격가능성이 존재하기 때문
- -> 사실상은 2^56개의 테이블entry를 만들어 저장하는게 실제로 가능하지 않다
② AES : 새로운 것으로 갈아엎음
2) Public Key Cryptography(공개키암호,비대칭키암호)
암호할때 사용하는 키랑 복호할때 사용하는 키랑 다름
사용자가 보낸 plaintext데이터를 key를 사용하여 encrypt(암호화)하여 보내면 ciphertext형식으로 네트워크를 통해전달되서 수신자 측에서 key를 사용하여 decrypt(복호화)하여 데이터를 얻어냄