카테고리 없음 / / 2023. 4. 25. 21:00

암호학의 발전과정,대표기술,적용사례

반응형

현대사회에서 필수적인 기술인 암호학의 발전과정과 대표기술 그리고 소프트웨어 개발 시 적용사례들에 대해 정리해 보았다.

 

암호학의 발전과정

암호학은 수천 년의 역사를 가지고 있다. 고대시대부터 중세시대 르네상스시대 그리고 현재까지 쭉 여러 가지 목적에 의해 사용되고 발전되어 왔다. 과거에는 군사, 외교, 종교 목적으로 주로 사용되었다 예를 들어 스키틸레(Skytele)는 고대 그리스에서 사용된 암호화 도구로, 막대기에 둘러싼 종이에 메시지를 작성하여 전달하는 방식이었다. 또한 비네더 암호는 폴리알파벳 암호로, 단일 문자 대체 암호보다 강력한 보안을 제공했다. 20세기 초반에는 암호화와 복호화를 수행하는데 기계가 사용되기 시작했다. 가장 유명한 암호화 도구는 독일의 에니그마(Enigma)로, 제2차 세계대전에서 독일군이 사용했었다. 이와 같은 기계식 암호화 기술은 그 당시의 암호학 발전에 크게 기여했다. 컴퓨터가 등장하면서 암호학은 또다시 크게 발전하였다. 복잡한 암호화 알고리즘과 암호해독 기술들이 개발되었다. 대표적인 암호화 알고리즘으로는 DES, RSA, AES알고리즘등이 있다. 그리고 인터넷 시대에 들어서면서 암호학은 더욱 중요한 역할을 맡게 되었다. SSL/TLS, HTTPS와 같은 통신 보안 프로토콜이 개발되어 인터넷상의 데이터 전송을 안전하게 보호해 주었다. 또한 인터넷에서의 금융거래, 개인정보보호등의 중요성이 증가함에 따라, 더 강력한 암호화 기술과 해시 알고리즘들이 개발되었다. 최근 블록체인 기술의 출현과 발전은 암호학의 새로운 활용 분야를 제시했다. 블록체인은 분산 원장 기술로, 해시 함수와 디지털 서명, 합의 알고리즘등 암호학 기술을 사용하여 데이터의 무결성, 보안 및 탈중앙화를 지원한다. 암호학의 발전은 인류역사와 함께해 왔으며, 기술의 발전에 따라 지속적으로 변화하고 성장하고 있다.

 

대표기술

소프트웨어 개발에서 자주 사용되는 암호학 기술위주로 정리해 보았다. 먼저 대칭키 암호화기술이다. 같은 키를 사용하여 데이터를 암호화하고 복호화하는 방식이다. 대표적인 대칭키 암호화 알고리즘으로는 AES, DES 등이 있다. 다음은 비대칭키 암호화기술이다. 공개키와 개인키 두 개의 키를 사용하는 암호화 방식이다. 공개키로 암호화된 데이터는 개인키로만 복호화할 수 있다. 대표적인 비대칭키 암호화 알고리즘으로는 RSA, ECC 등이 있다. 또한 굉장히 자주 사용되는 해시함수도 대표적인 암호학 기술이다. 이 함수는 데이터를 고정된 길이의 고유한 문자열로 변환하는 함수이다. 해시함수는 데이터 무결성을 확인하는 데 사용되며, 비밀번호 저장등에 활용된다. 대표적인 해시 함수로는 SHA시리즈와 MD5등이 있다. 그리고 암호학에서는 예측할 수 없는 진짜 난수가 필요하다. 이는 키 생성, 난수 기반 암호화등에 사용된다. 그럴 경우 암호학기술이 적용된 CSPRNG의 사용은 안전한 난수를 생성하는 방법 중 하나이다. 또한 디지털 서명을 할 때 암호화 알고리즘이 사용된다. 비대칭키 암호화와 해시함수를 사용하여 구현되는데 대표적인 디지털 서명 알고리즘은 RSA, DSA 등이 있다. 마지막으로는 키교환 프로토콜이 있다. 통신하는 당사자 간에 안전하게 비밀키를 공유하는 방법이다. 이를 통해 안전한 통신이 가능하나 대표적인 키 교환 프로토콜로는 Diffie-Hellman 키 교환 및 ECDH 등이 있다. 이러한 기술들은 소프트웨어 개발에서 데이터 보호, 무결성, 인증 및 기타 보안 관련 작업을 수행하는 데 사용된다. 암호학 기술에 대한 이해를 통해 개발자는 더욱 안전한 소프트웨어 및 시스템을 구축할 수 있다.

 

적용사례

소프트웨어 개발에서 암호학은 다양한 방식으로 적용된다. 먼저 데이터베이스에 저장되는 개인정보, 비밀번호, 기밀문서등을 보호하기 위해 데이터 암호화가 사용된다. 대칭키 암호화 알고리즘이나 비대칭키 암호화 알고리즘을 사용하여 데이터를 안전하게 보호할 수 있다. 그다음으로는 클라이언트와 서버간에 전송되는 데이터를 보호하기 위해 SSL/TLS와 같은 암호화 프로토콜이 사용된다. 이를 통해 중간자 공격으로부터 데이터를 안전하게 보호할수 있다. 예를 들어 온라인 쇼핑몰에서 결제를 할 때 고객의 신용카드 정보와 개인정보를 보호하기 위해 SSL/TLS를 사용하여 고객의 웹 브라우저와 서버 사이의 전송되는 정보를 암호화하는 식이다. 사용자 인증과정에서 비밀번호 해싱과 같은 암호학적 기법이 사용된다. 해시함수를 사용하여 비밀번호를 저장하고 인증 과정에서 사용자가 입력한 비밀번호와 해시값을 비교하여 접근 권한을 확인한다. 예를 들어 소셜미디어 플랫폼에서 사용자가 로그인할 때 비밀번호를 확인하여 인증해야 한다. 이때 시스템은 사용자의 비밀번호를 해싱하여 저장하고, 로그인 시 해시된 비밀번호와 입력된 비밀번호의 해시 값을 비교하여 인증한다. 그리고 파일이나 메시지의 무결성을 확인하기 위해 해시함수를 사용한다. 데이터를 전송하거나 저장할 때 해시 값을 함께 전송하고, 수신자는 해시값을 사용하여 데이터의 무결성을 확인할 수 있다. 예를 들어 소프트웨어 개발자가 새로운 버전의 소프트웨어를 배포할 때, 고객이 다운로드한 파일이 손상되지 않았는지 확인하기 위해서 해시 값을 제공한다. 고객은 다운로드한 파일의 해시 값을 확인하여 제공된 해시 값과 비교하여 무결성을 검증할 수 있다. 이러한 실제 상황 예시들은 각각의 암호학적 기법이 소프트웨어 개발에서 어떻게 사용되는지를 보여준다. 암호학은 다양한 분야에서 중요한 역할을 하며, 올바르게 적용하면 소프트웨어의 보안과 안정성을 크게 향상할 수 있다.

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유