[보안] Types of Cipher

양현지·2023년 4월 23일
2

Security

목록 보기
5/14
post-thumbnail

1. Hash function

- Hash function velog

2. stream cipher

: random generator를 사용해 암호화 키와 초기화 벡터를 생성

  • random generator? seed를 기반으로 무작위 비트열 생성

1) RC4 예시

: 대표적인 대칭형 stream cipher

  • KSA (key scheduling algorithm)와 PRGA (pseudo random generation algorithm)을 이용하여 암호화

① 암호화할 메시지와 초기화 벡터를 입력 받음

	char S[256];
    char K[256];

    char key[] = "key";
    char plainText[] = "killhitler";
    vector<char> KeyStream(strlen(plainText));

② 초기화 벡터와 암호화 키를 사용하여 RC4 내부 상태 초기화

	int i=0;
    // S[i], K[i] 초기화
    for (i = 0; i < 256; i++) {
        S[i] = i;
        K[i] = key[i % strlen(key)];
    }
    int j=0; 
     // S[i]를 뒤섞어줌
    for (i = 0; i < 256; i++) {
        j = (j + S[i] + K[i]) % 256;
        swap(S[i], S[j]);
    }
    i=j=0;

③ 암호화

	// Encryption
    for (int k = 0; k < strlen(plainText); k++) {
        i = (i + 1) % 256;
        j = (j + S[i]) % 256;
        swap(S[i], S[j]);

        t = (S[i] + S[j]) % 256;
        KeyStream[k] = S[t];
        plainText[k] ^= S[KeyStream[k]]; 
    }

④ 복호화 :

    //복호화 과정
   for (int k = 0; k < strlen(plainText); k++) {
       plainText[k] ^= S[KeyStream[k]];  
   }

3. Block Cipher

  • 현재는 stream cipher보다 block cipher을 사용하는 추세.

  • confusion : 원문의 내용을 알기 어렵게 하는 것

  • Diffusion : 암호화 알고리즘의 추론을 어렵게 하는 것

    1) Attacks on Block Cipher

    2) DES

    대칭키를 입력받아 초기 라운드 키를 생성하고, 평문을 블록으로 나누어 암호화하는 과정입니다. 각 라운드에서는 입력된 블록과 라운드 키를 사용하여 다양한 연산을 수행하고, 최종적으로 암호문을 출력

    (요약하면 쉬운데 과정을 들여다 보면 복잡.. 그래도 간단히 summary하자면 다음과 같다.)

    ① 대칭키를 입력받음 (64bit)
    ② 대칭키로 부터 초기 라운드 키를 생성
    ③ 평문을 입력받음
    ④ 평문을 64 bit block으로 분할
    ⑤ 분할된 block을 재배치
    ⑥ 16라운드를 거쳐 암호문을 생성
    ⑦ 암호문 결과(64bit)를 다시 32bit 2개로 나눔
    ⑧ 재배치
    ⑨ 암호문 완성

    3) 3DES(Triple DES)

  • DES 알고리즘을 세 번 연속으로 적용하여 암호화
    ① 3개의 서로 다른 대칭키를 준비합니다.
    ② 첫 번째 대칭키로 DES 암호화를 수행합니다.
    ③ 두 번째 대칭키로 DES 복호화를 수행합니다.
    ④ 세 번째 대칭키로 DES 암호화를 수행합니다.

    C = Ek1E_{k1}( DK2D_{K2} (Ek1E_{k1} (P) )

  • Why 2-DES?
    : MIM 공격에 취약함 (known plaintext attack)

4) AES

4. Block Cipher mode

- Block Cipher Mode

1개의 댓글

comment-user-thumbnail
2023년 4월 23일

좋은 자료 감사합니다😊

답글 달기

관련 채용 정보