[자격증]/정보처리기사 실기

1414200 암호 알고리즘

Ben의 프로그램 2023. 9. 30. 17:37
728x90

핵심 Keyword

1. 암호 알고리즘, 양방향, 개인키, Stream, Block, 공개키, 단방향, HASH

2. 

3. 


암호 알고리즘이란?
암호 알고리즘은 패스워드, 주민번호, 은행계좌와 같은 중요 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법을 의미합니다. 암호화라는 것은 무엇을 의미할까요? 송신자가 수신자에게 ABC 라는 문장을 보낼 때, 중간에서 이것을 훔쳐볼 수 있습니다. 제 3자가 내용을 알아볼 수 있게 되기 때문에, 암호화 방식을 사용하게 되었습니다. ASCII 코드에서 A 는 65인데요. 이런 값들에다가 예를 들어서 100을 더해서 보내는거죠. 대신 수신자에게만 따로 100을 더해서 보냈으니, 100을 빼서 정보를 해독하라고 알려주는 것이 암호화라고 이해할 수 있습니다. 이런 암호화 방식을 암호 알고리즘이라고 하고, 여러가지 종류가 있습니다. 

암호 방식 분류는 위와 같이 분류할 수 있습니다. 기본적으로 양방향과 단방향으로 크게 분류할 수 있으며, 단방향 방식에는 HASH 만 있다는 것이 특징입니다. 양방향은 개인키와 공개키 방식으로 구분할 수 있으며, 개인키 방식에는 Stream 과 Block 방식이 있다는 것이 특징입니다. 개인키(대칭키)에서 가장 대표적인 것으로 DES 가 있었고, 공개키(비대칭키)에서 가장 대표적인 것으로는 RSA가 있었습니다. 

 

개인키(대칭키) 암호화 기법 Private Key Encryption (양방향)
개인키 암호화 기법은 동일한 키로 데이터를 암호화하고 복호화하는 암호화 기법을 의미합니다. 복호화하고 암호화하는 키가 같은 특징 때문에 대칭키 암호화 기법이라고도 부르기도 하며, 하나의 키로 복호화와 암호화를 수행하기 떄문에 단일키 암호화 기법이라고도 합니다. 상대방과 내가 갖고 있는 동일한 하나의 키라서 암호화/복호화의 속도가 빠르지만, 관리해야 할 키의 수가 많아지는 단점이 있습니다. 이 부분을 헷갈릴 수 있는데, 왜 이렇게 되냐면, 10명의 사람이 서비스를 이용한다면 10명의 사람에게 각각 키를 주어줘야 합니다. 즉, 이용자의 숫자만큼 개인만을 위한 키를 제공해야 하기 때문에 관리해야하는 키의 숫자가 많아지게 됩니다. 

개인키 (대칭, 단일키) 암호화 기법의 종류
1. 스트림 암호화 방식
: 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화하는 방식을 의미합니다. 대표적으로 LFSR, RC4 가 있습니다. 

2. 블록 암호화 방식
: 한 번에 하나의 데이터 블록을 암호화 하는 방식을 의미합니다. 대표적으로는 DES, SEED, AES, ARIA 가 있습니다. 

- SEED 
: 1999 년 한국인터넷진흥원 KISA에서 개발한 블록 암호화 알고리즘입니다. 블록 크기는 128비트이며, 키 길이에 따라 128, 256으로 분류됩니다. 

- ARIA (Academy, Research Institute, Agency) 
: 2004년 국가정보원과 산학연합회가 개발한 블록 암호화 알고리즘입니다. 

- DES (Data Encryption Standard) ** 개인키(대칭키)의 가장 대표적인 방식
: 1975년 미국 NBS에서 발표한 개인키 암호화 알고리즘입니다. DES를 3번 적용하여 보안을 더욱 강화한 3DES 도 있습니다.

- AES (Advanced Encryption Standard) 
: 200년 미국 표준 기술 연구소 (NIST)에서 발표한 개인키 암호화 알고리즘입니다. DES의 한계를 느낀 NIST에서 공모한 후 발표했습니다. 

 

공개키(비대칭키) 암호화 기법 Public Key Encryption (양방향)
공개키 암호화 기법은 데이터를 암호화할 때 사용하는 공개키(Public Key)는 사용자에게 공개하고, 복호화할 때의 비밀키(Secret Key)는 관리자가 비밀리에 관리하는 암호화 기법을 의미합니다. 암호화와 복호화에 사용하는 키가 다르기 때문에 비대칭 암호 기법이라고도 합니다. 사용자에게 공개하는 공개키는 동일하기 때문에 관리해야 할 키의 개수는 적어지지만, 암호화와 복호화에 사용하는 키가 다르기 때문에 암호화와 복호화의 속도가 다른 특징이 있습니다. 대표적으로 공개키 암호화 기법으로는 RSA (Rivest Shamir Adleman) 기법이 있습니다. 

- RSA (Rivest Shamir Adleman)
: 1978년 MIT의 라이베스트, 샤미르, 애들먼에 의해 제안된 공개키 암호화 알고리즘입니다. 큰 숫자를 소인수분해 하기 어렵다는 것에 기반하여 만들어졌습니다. 

 

HASH (단방향)
해시 HASH 는 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것을 의미합니다. 해시 알고리즘을 해시 함수라고 부르며, 해시 함수로 변환된 값이나 키를 해시값 또는 해시키라고 부릅니다. 데이터의 암호화, 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에서 활용됩니다. 해시 함수의 종류에는 SHA 시리즈, MD5, N-HASH, SNEFRU 등이 있습니다.

- SHA 시리즈
: 1993년 미국 국가아보국(NSA)이 설계, 미국 국립표준기술 연구소 (NIST)에 의해 발표됩니다. 초기 개발된 SHA-0 이후 SHA-1 이 발표되었고, 다시 SHA-2 라고 불리는 SHA-224, SHA-256, SHA-384, SHA-512 가 발표되었습ㄴ디ㅏ. 

- MD5 ( Message Digest Algorithm 5 )
: 1991년 R.Rivest 가 MD4 를 대체하기 위해 고안한 암호화 해시 함수입니다. 블록 크기가 512 비트이며, 키 길이는 128비트입니다. 

- N-NASH
: 1989년 일본의 전신전화주식회사 (NTT) 에서 발표한 암호화 해시 함수입니다. 블록 크기와 키 길이가 모두 128비트입니다. 

- SNEFRU
: 1990 년 R.C.Merkle 가 발표한 해시 함수 입니다. 32 비트 프로세서에서 구현을 용이하게 할 목적으로 갭라되었습니다.