오래 못 할 짓 하지 않기
[ 컴퓨터 보안 ] 8. Cryptography 대칭키 ( + 비대칭키 ) 본문
[ 컴퓨터 보안 ] 8. Cryptography 대칭키 ( + 비대칭키 )
쫑알bot 2024. 10. 15. 14:33암호 시스템의 구성
1) 암호화시키는 방법
- 치환 ( Substitution )
- 재배열 ( Transposition )
- 혼합 ( Product )
2) 사용되는 Key의 종류
- Single key (or secret) ➡️ Symmetric key
- Two-ket (or public) ➡️ Asymmetric key
3) Plaintext 처리 방법
- Block 단위
- Stream 단위
Symmetric Key
대칭키 방식
Encryption / Decryption에 같은 Key를 사용한다.
= Key 하나로 다 돌려 쓴다.
단, 둘 중에 한 곳에서 털리면 다 털린다.
Asymmetric Key
비대칭키 방식
Encryption과 Decryption에 다른 Key를 사용한다.
= Public Key와 Private Key가 나누어져 있다.
계산해야하는 게 좀 있기 때문에 대칭키보다는 속도가 조금 느리다.
- 알고리즘도 많다.
Key Size ( Range )
Key의 크기가 늘어나면
- 장점 : Brute-force 공격을 피할 수 있다.
- 단점 : 알고리즘이 복잡해지기 때문에 Time Complexity 가 커진다.
따라서 우리는 보안적인 안정성과 효율성 사이에서 중간점을 찾아야 한다.
Cryptogrphy Algorithms
1. Types
: 특정 알고리즘을 통해 얼마만큼의 크기의 Plain text를 Cipher text 로 바꿀지.
2. Modes
: 알고리즘에 세부적인 정보들
➡️ types = 어떤 알고리즘을 쓸지
➡️ modes = 해당 알고리즘에서 데이터를 어떤 식으로 처리하는지
📌 Type
[ 종류 1 ] Stream Cipher :
Bit-by-bit로 암/복호화한다.
아래 예시는
들어온 글자
➡️ XOR 연산
➡️ 암호
[ 종류 2 ] Block Cipher :
Block 단위로 (여러 bit를 묶어서) 암/복호화한다.
📌 Mode
: 특정 알고리즘 안에서 어떻게 작동하는지에 대해서 알려준다.
주로 어떤 알고리즘의 조합으로 만들어지고, 어떤 순서로 적용됐는지에 대해 나와있다.
Symmetric Key
: 암호화와 복호화에 같은(하나의) Key가 쓰인다.
특징1) 빠르다
특징2) Transposition + Substitution + Some other unit을 사용하여 암호를 만든다.
P-box S-Box
예) DES , AES
64비트 암호 / 암호에는 10개의 1이 있다.
몇 번 시도를 해야 Plaintext를 얻을 수 있을지
- Substitution 암호면?
➡️ 뭐가 1로 바뀐 것인지, 1:1 대응이 맞는지도 모르기 때문에 알 수 없다.
2^64
- Transposition 암호면?
➡️ 위치만 바뀐 것이기 때문에, Plain 은 무조건 1이 10개를 가지고 있다는 것이기 때문에
Component 분석
📌 Component 1) P-box
Permutation Box
- Straight P-box
: 정해진 규칙에 의해 재배열이 된다.
* Input bit 수 = Output bit 수
- Compression P-box
: 여러 개의 Input을 정해진 수의 Output으로 줄여서 출력시킨다.
나오지 못한 Input들은 Block으로 다른 Input 들과 합쳐진다.
- Expansion P-box
: 하나의 Input이 여러 Output으로 뻗어나간다.
나오지 못한 Input들은 Block으로 다른 Input 들과 합쳐진다.
✚ Inverteribility
Straight P box는 Invertible하다.
바꾼 내용에 대해서 다시 돌려주는 정보를 담고있는 것이
Inverted Table이고, 이는 Decription의 과정이다.
1. 우선 위 예시와 같이 6개의 숫자를 입력받고, 그에 대해 어떻게 permutation을 만들지 정한다.
2. 그 아래 각각의 인덱스를 쓴다.
3. 인덱스랑 permutation 테이블 위치를 바꾼다. (인덱스 순서가 섞인 채로 테이블에 들어간다)
4. 다시 sort한다.
( 3~4번 설명 이해가 안 될까봐 추가해둔다. )
하지만 Compression , Expansion P-box는 Non Invertible하다.
= Decription이 쉽지 않다..
BUT 할 수 있게 해주는 알고리즘이 있음
📌 Component 2) S-box
S-Box는 m x n substitution unit이다. (m은 입력 , n는 출력)
✚ Inverteribility
S box는 Invertible할 수도 있고, 안 할 수도 있다.
Encryption에서 001 = 101
Decryption에서 101 = 001
이 경우는 되긴하는데, 안 되는 경우도 많다.
근데 주로 단방향 암호화 시킬 때만 사용하기 한다. ex) Hash함수
📌 Component 3) Some other
- XOR : XOR 연산을 두 번 하면, Original value를 얻을 수 있다.
- Circular Shift : @^n하는 것
- Swap : 반으로 나눠서 앞 뒤를 바꾼다.
- Split and Combine : Block으로 나누고 ( Encryption ) > 합치기 ( Decryption )
(출처)
한동대학교 고윤민교수님 - 컴퓨터 보안
'3학년 2학기 > 컴퓨터 보안(Computer Security)' 카테고리의 다른 글
[ 컴퓨터 보안 ] 10. Cryptography : AES (0) | 2024.10.26 |
---|---|
[ 컴퓨터 보안 ] 9. Cryptography ( 이외 유닛 + DES ) (0) | 2024.10.22 |
[ 컴퓨터 보안 ] 7. Cryptography - 치환 / 재배열 / 암.복호화 (0) | 2024.10.15 |
[ 컴퓨터 보안 ] 6. Race Condition (0) | 2024.10.06 |
[ 컴퓨터 보안 ] 5. Buffer Overflow (0) | 2024.10.05 |