암호화 소프트웨어

암호화 소프트웨어(encryption software)는 암호학을 사용하여 디지털 정보에 대한 무단 접근을 방지하는 소프트웨어이다. 암호학은 컴퓨터상의 디지털 정보뿐만 아니라 인터넷을 통해 다른 컴퓨터로 전송되는 디지털 정보를 보호하는 데에도 사용된다.

 분류 
암호화를 제공하는 소프트웨어 제품은 많이 존재한다. 소프트웨어 암호화는 암호를 사용하여 내용을 암호문으로 모호하게 만든다. 이러한 유형의 소프트웨어를 분류하는 한 가지 방법은 사용된 암호의 유형에 따른 것이다. 암호는 공개 키 암호(비대칭 암호라고도 함)와 대칭 키 암호의 두 가지 범주로 나눌 수 있다. 암호화 소프트웨어는 공개 키 또는 대칭 키 암호화 중 하나를 기반으로 할 수 있다.

암호화 소프트웨어를 분류하는 또 다른 방법은 그 목적에 따라 분류하는 것이다. 이 접근 방식을 사용하면 소프트웨어 암호화는 "전송 중 데이터"(data in transit)를 암호화하는 소프트웨어와 "저장 데이터"(data at rest)를 암호화하는 소프트웨어로 분류될 수 있다. 전송 중 데이터는 일반적으로 공개 키 암호를 사용하고, 저장 데이터는 일반적으로 대칭 키 암호를 사용한다.

대칭 키 암호는 스트림 암호와 블록 암호로 더 나눌 수 있다. 스트림 암호는 일반적으로 평문을 한 번에 한 비트 또는 바이트씩 암호화하며, 오디오 및 비디오 정보와 같은 실시간 통신을 암호화하는 데 가장 흔히 사용된다. 키는 키스트림 생성기의 초기 상태를 설정하는 데 사용되며, 해당 생성기의 출력은 평문을 암호화하는 데 사용된다. 블록 암호 알고리즘은 평문을 고정된 크기의 블록으로 나누고 한 번에 한 블록씩 암호화한다. 예를 들어, AES는 16바이트 블록을 처리하는 반면, 이전 모델인 DES는 8바이트 블록을 암호화했다.

저장 데이터의 전송 중 데이터를 위해 PKI가 사용되는 잘 알려진 사례도 있다.

 전송 중 데이터 

전송 중 데이터는 컴퓨터 망을 통해 전송되고 있는 데이터이다. 데이터가 두 엔드포인트 사이에 있을 때, 모든 기밀 정보는 취약할 수 있다. 페이로드(기밀 정보)는 기밀성뿐만 아니라 무결성과 유효성을 보장하기 위해 암호화될 수 있다.

종종 전송 중 데이터는 웹사이트 방문의 경우와 같이 서로 모르는 두 개체 사이에 존재한다. 관계를 수립하고 교환될 정보를 보호하기 위해 암호화 키를 안전하게 공유하기 위해, 이를 수행하기 위한 역할, 정책 및 절차의 집합이 개발되었는데, 이를 공개 키 기반 구조(PKI)라고 한다. PKI가 안전한 연결을 수립하면 엔드포인트 간에 대칭 키를 공유할 수 있다. 대칭 암호는 비대칭 암호보다 훨씬 효율적이기 때문에(CPU 사이클을 적게 사용함) 개인 키 및 공개 키보다 대칭 키가 선호된다. IPsec, SCP, SFTP, SSH, OpenPGP, HTTPS 등 전송 중 데이터를 암호화하는 여러 방법이 있다.

 저장 데이터 

저장 데이터(Data at rest)는 지속성 저장 장치에 저장된 데이터를 의미한다. 저장 데이터는 일반적으로 대칭 키에 의해 암호화된다.

암호화는 저장소 스택의 다양한 계층에서 적용될 수 있다. 예를 들어, 암호화는 디스크 계층, 파티션이라고 불리는 디스크의 하위 집합, 디스크 또는 파티션의 조합인 볼륨, 파일 시스템 계층, 또는 호스트 운영체제에서 실행되는 데이터베이스나 기타 애플리케이션과 같은 사용자 공간 애플리케이션 내에서 구성될 수 있다.

전체 디스크 암호화를 사용하면 전체 디스크가 암호화된다(암호화되지 않은 부팅/프리부트 파티션을 사용하지 않는 경우 부팅하거나 디스크에 액세스하는 데 필요한 비트 제외). 디스크는 여러 파티션으로 나눌 수 있으므로 파티션 암호화를 사용하여 개별 디스크 파티션을 암호화할 수 있다. 두 개 이상의 파티션을 결합하여 생성된 볼륨은 볼륨 암호화를 사용하여 암호화할 수 있다.https://www.jetico.com/web_help/bcve3_enterprise/html/01_introduction/02_what_is_ve.htm Volume Encryption 하나 이상의 파티션으로 구성된 파일 시스템도 파일 시스템 수준 암호화를 사용하여 암호화할 수 있다. 디렉터리 내의 파일이 암호화된 경우 해당 디렉터리를 암호화되었다고 한다. 파일 암호화는 단일 파일을 암호화한다. 데이터베이스 암호화는 저장될 데이터에 작용하여, 암호화되지 않은 정보를 수신하고 해당 정보를 암호화한 후에만 지속성 저장 장치에 기록한다. 암호화 가능 테이프 드라이브를 포함하는 다소 모호한 용어인 장치 수준 암호화는 CPU에서 암호화 작업을 분담(offload)하는 데 사용될 수 있다.

 저장 데이터의 전송 

안전한 연결을 생성할 수 없는 상태에서 저장 데이터를 안전하게 전송해야 할 필요가 있을 때, 이러한 요구를 지원하는 사용자 공간 도구들이 개발되었다. 이러한 도구들은 수신자가 자신의 공개 키를 게시하고 송신자가 해당 공개 키를 획득할 수 있음에 의존한다. 그런 다음 송신자는 정보를 암호화하기 위한 대칭 키를 생성하고, 수신자의 공개 키를 사용하여 정보 전송과 대칭 키를 안전하게 보호할 수 있다. 이를 통해 한 당사자에서 다른 당사자로 정보를 안전하게 전송할 수 있다.

 성능 
암호화 소프트웨어의 성능은 CPU의 속도에 비례하여 측정된다. 따라서 마이크로프로세서가 처리된 데이터의 바이트당 필요로 하는 클록 사이클 수를 나타내는 단위인 바이트당 사이클(cycles per byte, 때때로 cpb로 약칭됨)이 통상적인 측정 단위이다. 바이트당 사이클은 암호학적 함수의 실질적인 성능을 나타내는 부분적인 지표 역할을 한다. 애플리케이션은 Microsoft SQL, Oracle, MongoDB와 같은 데이터베이스 애플리케이션을 포함하여 자체적인 암호화(기본 암호화라고 함)를 제공할 수 있으며, 일반적으로 성능을 위해 CPU 사이클의 직접 사용에 의존한다. 이는 종종 조직 내부에서 파트너에 이르기까지 데이터의 속도와 규모에 영향을 미침으로써, 더 큰 보안과 규정 준수 충족의 용이성을 추구하는 기업들의 암호화 선호도에 영향을 미친다.

 같이 보기 
 코드형 표현
 암호 프로토콜
 공개 키(비대칭) 알고리즘
 대칭 알고리즘
 전송 계층 보안
 디스크 암호화 소프트웨어 비교
 방어 전략 (컴퓨팅)
 랜섬웨어: 암호화를 사용하는 악성 소프트웨어

 각주 

분류:암호 소프트웨어