https://cloud.google.com/docs/security/encryption/default-encryption
https://ko.wikipedia.org/wiki/%EC%95%94%ED%98%B8%ED%99%94
암호화(暗號化) 또는 엔크립션(encryption)은 특별한 지식을 소유한 사람들을 제외하고는 누구든지 읽어볼 수 없도록 알고리즘을 이용하여 정보(평문을 가리킴)를 전달하는 과정이다. 이러한 과정을 통해 암호화된 정보(암호문)를 낳는다. 이에 역행하는 과정을 해독 또는 디크립션(decryption)이라고 하며 이로써 암호화된 정보를 다시 읽을 수 있다.
암호화하기 이전 데이터를 평문이라 하면, 암호화된 정보는 암호문이라고 한다.
단방향 암호화
단방향 암호화는 대표적으로 신원 증명과 인증 과정에서 사용된다. 예를 들어 비밀번호를 ‘wiki123’이라고 지정했을 때, 이를 암호화하여 ‘A3pnqq49.Hw’라는 아무런 유사성 없는 암호문을 만들어 낸다. 단방향 암호화의 특징은 역으로 변환하는 것이 불가능하고, 어떤 방법을 쓰더라도 암호문을 원래의 평문으로 되돌릴 수 없다는 것이다.
비밀키 암호화
비밀키 암호화는 말 그대로 비밀키를 사용하여 암호화와 복호화하는 과정을 가진다. 평문에 암호화 키 값을 이진수 연산 처리하여 암호문을 생성하고, 암호문을 받은 수신자는 동일한 암호화 키 값을 역으로 대입하여 암호문을 해독한다. 따라서 비밀키 암호화를 위해서는 송신자와 수신자 모두 동일한 암호화 키를 알고 있어야 한다.
공개키 암호화
공개키 암호화는 공개키와 개인키라고 불리는 서로 다른 두 개의 키를 사용한다. 앞선 비밀키 암호화 방식과 비교해보면 송, 수신자에게 공개된 공개키를 사용하여 암호화하는 점은 비슷하지만, 복호화는 개인키를 가진 사람만 할 수 있다는 점에서 차이가 생깁니다. 조금 더 복잡해 보이는 해당 방식은 비밀키 암호화 방식보다 처리가 느리기 때문에 실제 암호화 시스템은 비밀키 암호화 방식과 공개키 암호화 방식을 혼합하여 구축된다.
Google은 FIPS 140-2 검증 모듈(BoringCrypto)이 포함된 공통 암호화 라이브러리인 Tink를 사용하여 Google Cloud 간에 암호화를 일관되게 구현합니다.
https://csrc.nist.gov/projects/cryptographic-module-validation-program/Certificate/3318
https://cloud.google.com/docs/security/encryption/default-encryption