본문내용
한 라운드를 N번 반복해서 Cipher Text를 만드는 것이 Feistel Cipher 구조입니다.
2) DES 알고리즘
앞서 살펴본 Feistel Cipher와 동일한 구조로 되어 있습니다.
먼저 64 비트의 평문 블록을 L0, R0의 두개로 나누고 56bit의 키를 연산을 통해 48bit의 키를 생성합니다.
이어서 R0와 K1을 함수 f에 통과시켜 나온 값과 L0를 XOR 연산을 수행해서 R1을 생성합니다. L1은 R1이 그대로 이동합니다.
이런 연산을 16번의 라운드를 거쳐서 최종적으로 Cipher Text를 구성합니다.
3) 키분배
관용 암호의 경우 동일한 비밀키를 사용하기 때문에 키분배와 관리에 대한 문제가 발생합니다. A와 B가 직접 물리적으로 키를 교환하는 방식이 가장 바람직하지만 네트워크 환경에서는 적합하지 않기 때문에 KDC(Key Distribution Center)와 같은 Third Party 기관을 통하여 키를 분배하는 방식을 주로 사용하고 있습니다. 이러한 키 분배에 공개키 암호를 활용할 수도 있습니다.
또한 관용암호에서는 블록 모드의 운용 방식도 중요한 부분입니다만 앞에서 이미정리했으므로 여기에서는 생략하도록 하겠습니다.
3. 공개키 암호 설명
공개키는 관용 암호와 달리 두 개의 키를 쌍으로 사용하며 키 생성에 수학적 계산이 들어갑니다. 이런 공개키는 기밀성 유지를 위한 암호화, 디지털 서명을 통한 인증, 키 분배에 활용됩니다. 각각에 대해 살펴보고 공개키 암호의 대표적인 RSA알고리즘에 대해서 정리합니다.
1) 공개키 암호화
송신자(Bob)은 수신자(Alice)의 공개키로 암호화 해서 전송합니다. 수신자는 수신자 본인의 개인키로 복호화합니다. 송신자는 공개키 레파지토리(Public Key ring)에서 수신자의 공개키를 가져옵니다.
2) 디지털 서명 인증
인증에 활용할 경우 송신자(Bob)는 송신자의 개인키로 암호화해서 전송합니다. 수신자(Alice)는 송신자의 공개키로 복호화해서 사용합니다. 수신자는 송신자의 공개키로 복호화 하므로 사람에 대한 인증으로 누가 보낸 것인지 확인할 수 있습니다. 이런 경우는 브로드캐스트로 메시지를 전송할 때 사용합니다.
3) RSA 알고리즘
Ron Rives, Adi Sharmir, Len Adelman이 만든 공개키 알고리즘으로 널리 사용되고 있는 독보적인 암호화 알고리즘입니다. 개인키나 공개키로 암호화하는 것이 모두 수학적으로 안전하다고 알려져 있습니다. 키를 생성하고 암호화 하는 방식은 다음과 같습니다.
위 과정을 실제 예를 들어 설명한 자료를 참고하면 다음과 같습니다.
먼저 두개의 소수 47과 71을 p와 q로 설정합니다.
p와 q의 곱인 3337을 n으로 설정하고 (p-1)*(q-1)의 값인 3220을 오일러n으로 선정합니다.
이어서 최대공약수를 계산해 e값인 79를 선택하고 d 값을 1019로 계산하면 공개키 (79, 3337), 개인키 (1019, 3337)이 만들어집니다.
암호화와 복호화는 수학 계산에 따라서 이루어집니다.
2) DES 알고리즘
앞서 살펴본 Feistel Cipher와 동일한 구조로 되어 있습니다.
먼저 64 비트의 평문 블록을 L0, R0의 두개로 나누고 56bit의 키를 연산을 통해 48bit의 키를 생성합니다.
이어서 R0와 K1을 함수 f에 통과시켜 나온 값과 L0를 XOR 연산을 수행해서 R1을 생성합니다. L1은 R1이 그대로 이동합니다.
이런 연산을 16번의 라운드를 거쳐서 최종적으로 Cipher Text를 구성합니다.
3) 키분배
관용 암호의 경우 동일한 비밀키를 사용하기 때문에 키분배와 관리에 대한 문제가 발생합니다. A와 B가 직접 물리적으로 키를 교환하는 방식이 가장 바람직하지만 네트워크 환경에서는 적합하지 않기 때문에 KDC(Key Distribution Center)와 같은 Third Party 기관을 통하여 키를 분배하는 방식을 주로 사용하고 있습니다. 이러한 키 분배에 공개키 암호를 활용할 수도 있습니다.
또한 관용암호에서는 블록 모드의 운용 방식도 중요한 부분입니다만 앞에서 이미정리했으므로 여기에서는 생략하도록 하겠습니다.
3. 공개키 암호 설명
공개키는 관용 암호와 달리 두 개의 키를 쌍으로 사용하며 키 생성에 수학적 계산이 들어갑니다. 이런 공개키는 기밀성 유지를 위한 암호화, 디지털 서명을 통한 인증, 키 분배에 활용됩니다. 각각에 대해 살펴보고 공개키 암호의 대표적인 RSA알고리즘에 대해서 정리합니다.
1) 공개키 암호화
송신자(Bob)은 수신자(Alice)의 공개키로 암호화 해서 전송합니다. 수신자는 수신자 본인의 개인키로 복호화합니다. 송신자는 공개키 레파지토리(Public Key ring)에서 수신자의 공개키를 가져옵니다.
2) 디지털 서명 인증
인증에 활용할 경우 송신자(Bob)는 송신자의 개인키로 암호화해서 전송합니다. 수신자(Alice)는 송신자의 공개키로 복호화해서 사용합니다. 수신자는 송신자의 공개키로 복호화 하므로 사람에 대한 인증으로 누가 보낸 것인지 확인할 수 있습니다. 이런 경우는 브로드캐스트로 메시지를 전송할 때 사용합니다.
3) RSA 알고리즘
Ron Rives, Adi Sharmir, Len Adelman이 만든 공개키 알고리즘으로 널리 사용되고 있는 독보적인 암호화 알고리즘입니다. 개인키나 공개키로 암호화하는 것이 모두 수학적으로 안전하다고 알려져 있습니다. 키를 생성하고 암호화 하는 방식은 다음과 같습니다.
위 과정을 실제 예를 들어 설명한 자료를 참고하면 다음과 같습니다.
먼저 두개의 소수 47과 71을 p와 q로 설정합니다.
p와 q의 곱인 3337을 n으로 설정하고 (p-1)*(q-1)의 값인 3220을 오일러n으로 선정합니다.
이어서 최대공약수를 계산해 e값인 79를 선택하고 d 값을 1019로 계산하면 공개키 (79, 3337), 개인키 (1019, 3337)이 만들어집니다.
암호화와 복호화는 수학 계산에 따라서 이루어집니다.
추천자료
- 이동통신의 기초
- 전자서명과 인증
- 우리나라 정부의 생체인식 기술의 현황과 도입방향
- [과외]고등 국어 1-2학기 중간 예상문제 02
- [병원경영]병원정보화와 환자중심 마케팅기법 및 의료환경의 미래
- [사이버범죄][인터넷범죄][컴퓨터범죄]사이버범죄(인터넷범죄) 및 컴퓨터범죄(사이버범죄(인...
- IPSec이란?
- [자바][JAVA][자바스크립트]자바(JAVA)의 의미, 자바(JAVA)의 특징, 자바(JAVA)의 유래, 자바...
- 무인 편의점 설계 (공학)
- [저작권보호]저작권보호의 필요성, 저작권보호의 요건, 저작권보호의 저작권관리정보, 저작권...
- [DRM]DRM(디지털저작권관리)의 개념과 특징, DRM(디지털저작권관리)의 업체 동향, DRM(디지털...
- GMO전반에 대한 내용과 의견
- FTA무역용어집 07차
- 세상읽기와논술>> (E형) 최근 비트코인 열풍에 관한 나의 생각
소개글