본문 바로가기

Java/암호화5

암호화 패딩 종류 패딩(Padding) 암호화에서 사용되는 기술 중 하나로 평문을 암호화하기 전에 일정한 규칙에 따라 데이터의 길이를 조정하는 과정 주로 블록 암호화에서 사용되며 평문의 길이가 블록 크기의 배수가 아니어서 블록 크기의 배수가 되도록 평문의 길이를 늘려야 할 때 사용 패딩을 통해 암호의 안전성이 더욱 강화됨 대칭 암호화에서는 PKCS5Padding, 비대칭 암호화에서는 OAEPPadding이 보안성이 가장 높아 주로 사용됨 PKCS5Padding, PKCS7Padding 패딩할 크기의 바이트를 모든 패딩의 바이트로 설정하여 패딩을 진행 가장 널리 사용되는 패딩 방식 PKCS5Padding과 PKCS7Padding은 기본적으로 동일한 것으로 간주됨 PKCS1Padding RSA 알고리즘과 함께 사용되며 데이터.. 2024. 3. 18.
블록 암호화 기법 종류 ECB (Electronic Code Book) 평문을 일정한 블록 단위로 나누어 순차적으로 암호화하는 구조로 가장 단순한 기법 동일한 평문 블록에 대해 동일한 암호문 블록이 생성 각각의 블록은 서로 독립적이며 한 개의 블록만 해독되어도 나머지 블록도 해독되기 때문에 보안상 매우 취약함 CBC (Cipher Block Chaining) 평문을 일정한 블록 단위를 나누어 이전 암호문 블록을 암호화하여 평문 블록과 XOR 연산을 수행하여 새로운 암호문 블록을 생성함 → 가장 강력한 암호화 모드로 여겨짐 최초 키의 생성 버퍼로 IV(초기화 벡터)를 사용하며 첫 번째 블록과 XOR 연산을 통해 암호화를 진행함 각각의 블록이 서로 독립적이지만 ECB와 다르게 동일한 평문 블록에 대해 동일한 암호문 블록이 생성되지.. 2024. 3. 18.
암호화 알고리즘 종류 대칭 알고리즘 DES (Data Encryption Standard, 데이터 암호화 표준) 1970년대에 IBM에서 개발한 AES 도입 이전까지의 표준 대칭 키 암호화 알고리즘 블록 크기가 64 bit (8 byte), 키 크기가 56 bit (7byte)로 고정 작동 원리 = 암호화할 데이터를 블록으로 나눈 후 각 블록 내의 데이터의 일련의 수학적 연산을 적용하여 작동 현재는 IT기술의 발전으로 안전성이 보장되지 않아 사용이 지양됨 3DES (Triple DES) DES를 3번 반복하는 방식의 대칭 키 암호화 알고리즘 DES와 마찬가지로 블록 크기가 64 bit (8 byte), 키 크기가 56 bit (7byte)로 고정 암호화를 3번 실행하기 때문에 속도가 느리고 DES의 사실상 퇴출로 사용이 지양.. 2024. 3. 18.
javax.crypto.Cipher 정의 Java에서의 암호화 및 복호화 기능을 제공하며 JCE framework의 핵심을 구성 Java Cryptography Extension(JCE) = Java 보안 기능의 핵심을 담당하는 Java Crpytography Architecture(JCA)의 일부분으로, 애플리케이션에서 데이터 암호화, 복호화 그리고 개인 데이터의 해싱을 제공 암호학에서 원본 = Plaintext, 암호화된 문서 = Ciphertext라 부름 getInstance()에 "알고리즘/모드/패딩" 형식으로 파라미터를 입력해 암호화 방식을 지정하여 인스턴스 생성 지원 알고리즘 종류 대칭 알고리즘 AES (Advanced Encryption Standard) - 가장 일반적 DES (Data Encryption Standard) .. 2024. 3. 18.
Jasypt (application.properties 암호화) 정의- .properties 파일을 간단히 암호화 및 복호화하여 관리할 수 있도록 하는 Java 라이브러리- .properties 파일에 DB 정보와 같은 보안 정보를 암호화하기 위해 주로 사용- 기본 라이브러리가 아니기 때문에 별도로 import 필요Gradleimplementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.3' 기본 세팅application.propertiesjasypt.encryptor.bean=jasyptEncryptorspring.datasource.password=ENC(jal14ljlkjdaslko2j3c)- application.properties에 ecnryptor bean을 정의- encryptor를 통해 .. 2024. 2. 28.