암호학

    1. 암호와 스테가노 그래피

    암호는 메세지에 대한 기밀성 (메세지의 내용 은폐)

    스테가노 그래피틑 비밀통신을 숨김 (메세지의 존재 은폐)


    2. 암호기술의 제공

    기밀성, 무결성, 인증, 부인방지


    - 케르크호프의 원리

    암호의 안전성은 암호 알고리즘의 비밀에 의존하는것이 아니라 키의 비밀을 지킴으로서 보장된다.


    3. 암호의 분류


    3.1 비밀키


    Ke = Kd

    - 관용암호 방식

    - 대칭암호 방식

    키의 개수구하기 (만약 n 명의 사람이 통신을 한다면)

    n * ( n - 1 ) / 2


    3.2 공개키


    Ke =/ Kd

    - Two Key 암호 방식

    - 비대칭 암호 방식

    키의 개수구하기 ( 만약 n명의 사람이 통신을 한다면)

    2n


    3.3 비밀키 암호 방식

    A. Substitution Cipher - 환자(치환)암호

    B. Transposition Cipher - 전치 암호

    C. Product Cipher - 적 암호


    A. Substitution Cipher

    - Caesar(Shift) 암호

    사용가능한 키 : 25개

    소모적공격, 전수공격, 전사공격, 무작위 대입, Brute Force 공격에 약하다.

    C = ( M + K ) mod 26

    - 단순환자암호

    사용가능한 키 : 26!개

    평문의 영문자를 무작위 다른 영문자로 치환하는 것

    언어의 통계적 성질을 이용하여 암호문 해독이 가능하다.

    - Affine 암호

    두개의 키를 사용하는 것

    C = (K1 * M + K2) mod 26

    - 동음이의환자 암호

    암호문의 문자빈도가 균등하게 분포되도록 하는 암호

    짧은문장에는 강하나 긴 문장에는 약하다. (2,3 문자 연속출현시 통계학적 성질이 남아있기 때문)

    - Vigenere 암호

    통계적 성질을 없애기위해 사용한 암호

    평문을 여러부분으로 나누어 암호를 적용

    키로 키워드를 사용했다.

    - HILL 암호

    - PlayFair 암호

    두 글자씩 끊어 암호화하는 방식


    * 만약 평문의 개수가 홀수면 지정된 단어를 집어넣어 짝수개를 맞춤

    * 만약 같은 문자가 반복되면 그 사이에 지정된 단어를 집어넣음


    * Key와 A-Z를 이용한 5 x 5 테이블을 만듬

    * 다음과 같은 법칙에 의해 암호화함

    1 ) 두 글자가 같은 가로줄 : 오른쪽 글자

    2 ) 두 글자가 같은 세로줄 : 아래 글자

    3 ) 두 글자가 모두 다른줄 : 사각형을 만들고 그 꼭짓점


    B. Transposition Cipher

    - Scytale 암호

    가장 오래된 암호로서 종이를 봉에감고 글씨를 세로로 씀

    - 단순전치 암호

    일정 간격으로 나눈 문자를 키의 재배열 순서에 따라 재 배치한것


    KEY = 351642

    M   = INFORM


    암호화 하는 예 )

    123456

    INFORM

    351642

    ->  FRIMON


    복호화 하는 예 )

    만약 주어진 키가 암호화키라면 복호화키를 추측해낸다


    123456

    351642

    ->  361524


    그 후 복호화를 실행


    123456

    FRIMON

    361524

    ->  INFORM


    - Nihilist 암호


    암호의 강도를 높이기 위해 사용된다.

    행과 열에 대해 모두 전치를 한다.


    ex )

    K = CAN

    M =Your Books


     

    C(2)

    A(1)

    N(3)

    C

    o

    y

    u

    A

    b

    r

    o

    N

    k

    o

    s


    우선 열에 대해 전치를 하고

    그 후 행의 순서에 따라 값을 가져온다.

    bro oyu kos


    C. Product Cipher

    - ADFGVX

    표를 만들어 인덱스와 컬럼에 6개의 문자(ADFGVX)를 행과 열로 나열하고 26개의 문자와 10개의 숫자를 무작위 대입


    1. 해당하는 문자에 대한 행과 열을 선택해 중간암호문 생성

    2. 중간 암호문은 전치 키워드의 길이에 따라 나열하고, 키워드 순서에 따라 전치


    - Shannon의 암호이론

    Confusion(혼돈) - 평문과 암호문사이의 상관관계를 숨김

    Diffusion(확산) - 평문의 통계적 특성을 암호문 전반에 퍼트림



    - Block 암호와 Stream 암호

    Block Cipher - 몇 글자 단위로 나누어 암호화

    Stream Cipher - 연속되는 1bit, 혹은 한글자식 나누어 암호화


    - One - Time Pad (Vernam 암호)

    키 계열이 반복되지않고 난수를 발생

    평문의 길이와 키 길이가 같음

    키를 한번쓰고 버림 - 완전암호

    해독할 수 없는 암호

    일회용암호를 사용하여 안전성을 보장받으려면 상당한 비용과 자원이 소모


    - 선형궤환 시프트 레지스터 (LFSR)

    레지스터의 단위를 플립/플롭(1bit)라고 한다.

    1비트씩 사용하여 난수를 배출

    - 암호 해독


    암호문 단독공격(Cipher-text only Attack)

    암호문만 알고있을 때 평문과 키를 유추하는 해독 방법


    기지 평문 공격 (Known Plain-text Attack)

    약간의 평문과 암호문을 알고있는 상태에서 해독 방법


    선택 평문 공격 (Chosen Plain-text Attack)

    공격자가 암호기에 접근하여

    평문에 대한 암호문을 알고있는 상태에서의 해독 방법


    선택 암호문 공격 (Chosen Cipher-text Attack)

    공격자가 복호기에 접근하여

    암호문에 대한 평문을 알고있는 상태에서의 해독 방법


    - Feistel 구조

    블록암호

    ★특징

    두번의 수행으로 환전한 확산이 이루어진다.

    라운드 함수에 관계없이 역변환이 가능하다. 즉, 암복화 과정이 같음

    두번의 수행으로 완전한 확산이 이루어진다.

    수행속도가 빠르다.

    H/W, S/W의 구현이 용이하다.


    - DES (Data Encryption Standard)


    1. DES 전체의 동작


    Parity bit(8 bit)를 포함한 64 Bit의 키를 사용

    암, 복호화 과정이 동일하지만 키의 순서만 바뀐다.

    암호화 ( K1 -> K16 ), 복호화 ( K16 -> K1 )




    IP(Initial Permutation) - 초기전치

    IP^-1(Inverse Initial Permutation) - 역전치

    이 과정을 16라운드 거친 후

    마지막으로 IP^-1 을 거치면 C(64BIT)의 암호문이 나오게 된다.

    (여기서 키들은 다 동일하지 않다.)

    - 식

    L(i) = R(i-1)

    R(i) = L(i-1)(+)F(R(i-1), K)


    2. F 함수의 동작

    E : Expansion Permutation - 확대전치

     -S박스의 동작

    S BOX - INPUT 6, OUTPUT 4

    ROW - b1, b6

    COLUMN = b2,b3,b4,b5

    P-Table : Permutation - 일반전치


    3. 키 스케쥴러의 동작

    ASCII 는 7BIT로 구성되어있으며 전송할때 오류검출을 위한 PARITY 1 BIT를 추가한다.


    - 기타 블록암호

    1 ) AES (Advanced Encryption Standard)

    Rijindael

    블록길이 : 128bit

    키 길이 : 128, 192, 256BIT

    SPN 구조


    Rijindael의 암호화 과정

    I ) 치환 - SubBytes

    II ) 전치 - ShiftRows

    III ) 혼합 - MixColumns

    IX ) XOR - AddRoundKey


    2 ) FEAL, LOKI

    Feistel 구조

    DES와 비슷함


    3 ) IDEA

    평, 암호문 : 64BIT, 키 : 128BIT


    - 암호운영방식

    ECB(Electronic Code Book)

    초기화벡터를 사용하지 않음

    짧은 평문이나 키를 암호화하는데 사용




    CBC(Cipher Block Chaining)

    평문과 초기값을 XOR하여 암호문 생성

    다시 암호문과 평문을 XOR하여 암호문을 생성한다.

    오류전파 O




    CFB(Cipher FeedBack)

    초기값을 암호화하여 평문과 XOR

    암호문을 암호환 값을 평문과 XOR

    오류전파 O




    OFB(Output FeedBack)

    키 수열이 평문과 무관하게 미리 계산될 수 있다.




    COUNTER MODE

    암호화할때 카운트라는 수와 함께 암호화 함


    ECB

    CBC - XOR -> 암호화, 오류전파 O

    CFB - 암호화 -> XOR, 오류전파 O

    OFB




    '고사' 카테고리의 다른 글

    자료구조  (0) 2017.10.06
    SHELL PROGRAMING  (0) 2017.10.03
    JAVA  (0) 2017.09.27
    인터넷 보안  (0) 2017.09.21
    전산개론  (0) 2017.06.19
    Posted by Config