>  기사  >  Java  >  Java 암호화 및 복호화 기본 분류 및 모델 요약 공유

Java 암호화 및 복호화 기본 분류 및 모델 요약 공유

Y2J
Y2J원래의
2017-05-02 11:41:151183검색

이 글에서는 주로 Java 암호화 및 복호화의 기본 분류 방법을 요약하여 관련 정보를 소개합니다. 도움이 필요한 친구는

Java 암호화 및 복호화의 기본:

암호학은 코드 작성 및 해독을 연구하는 기술 과학입니다. 통신 비밀을 유지하기 위해 코드를 컴파일하는 데 적용되는 비밀번호 변경의 객관적인 법칙에 대한 연구를 암호학이라고 하며, 통신 정보를 얻기 위해 코드를 해독하는 응용을 해독이라고 하며 일반적으로 암호학이라고 합니다.

암호화의 일반적인 용어

일반 텍스트: 암호화할 데이터입니다.

암호문: 일반 텍스트로 암호화된 데이터입니다.

암호화: 일반 텍스트를 암호문으로 변환하는 프로세스입니다.

암호화 알고리즘: 일반 텍스트를 암호문으로 변환하는 변환 알고리즘입니다.

암호화 키: 암호화 알고리즘을 통해 암호화 작업을 수행하는 데 사용되는 키입니다.

복호화: 암호문을 비문으로 변환하는 과정입니다.

복호화 알고리즘 : 암호문을 일반 텍스트로 변환하는 변환 알고리즘입니다.

복호화 키: 짧은 머리를 복호화하여 복호화 작업을 수행하는 키입니다.

암호동물학 분류

1. 시간별

a. 기본 암호화 단위로 문자를 사용합니다.


b. 현대 암호화: 정보 블록이 기본 암호화 단위로 사용됩니다.


2 기밀 내용의 알고리즘으로 구분

a. 제한된 알고리즘: 알고리즘의 기밀성을 유지하는 것이 원칙입니다.


b. 키 기반 알고리즘: 알고리즘의 기밀성은 키의 기밀성을 기반으로 합니다.


3. 키 체계로 구분

a. 대칭 암호 체계: 단일 키 또는 개인 키 암호 체계라고도 하며 암호화 과정은 동일합니다. 암호 해독 프로세스에서는 동일한 키 세트를 사용합니다. 해당 알고리즘은 DES, AES 등 대칭 암호화 알고리즘이다.


b. 비대칭 암호화 시스템: 이중 키 또는 공개 키 암호화 시스템이라고도 하며 암호화 프로세스와 복호화 프로세스는 서로 다른 키를 사용합니다. 해당 알고리즘은 RSA와 같은 비대칭 암호화 알고리즘이다.


4. 평문 처리 방식으로 구분

a. 스트림 암호(Sequence cipher)라고도 하며, 1비트씩 암호화됨 평문의. 예를 들어 RC4 알고리즘이 있습니다.


b. 블록 암호: 암호화 시 평문을 고정 길이의 그룹으로 나누어 동일한 키와 알고리즘을 사용하여 각 그룹을 암호화하고 출력도 고정 길이의 평문입니다. 마지막 그룹 크기가 지정된 그룹 크기를 충족하지 않는 경우


에는 두 가지 처리 모드가 있습니다.

채우기 모드 없음, 직접 처리 잔여 데이터는 암호화되며, 이 그룹의 암호화된 크기는 나머지 데이터와 관련됩니다.


에는 채우기 모드가 있으며, 지정된 길이를 충족하지 않는 그룹에 대해 데이터가 채워집니다. 데이터의 마지막 그룹이 지정된 그룹 크기와 동일한 경우, 지정된

크기의 그룹을 직접 추가하면 패딩의 마지막 바이트가 패딩 바이트 수를 기록합니다.


블록 암호 작업 모드 소개

전자 코드북 모델--ECB

동일한 키를 사용하여 각 그룹의 평문을 독립적으로 암호화합니다. 이렇게 암호화하면 각 그룹의 암호화가 서로 간섭하지 않고 독립적으로 수행되므로 병렬로 수행할 수 있습니다. 또한 각 그룹은 독립적으로 암호화되기 때문에 동일한 일반 텍스트 그룹은 암호화 후에도 동일한 암호문을 갖게 됩니다. 이 모드는 일반 텍스트 그룹화의 통계적 규칙성과 구조적 특성을 쉽게 노출합니다. 대체 공격으로부터 보호하지 않습니다.


실제로 구현에 따르면 ECB의 프로세스는 단지 일반 텍스트를 그룹화한 다음 별도로 암호화하고 최종적으로 하나로 묶는 프로세스일 뿐입니다. 이 모드는 메시지 길이가 1패킷을 초과하는 경우 권장되지 않습니다. 각 그룹에 임의의 비트(예: 128비트 그룹의 유효한 일반 텍스트 96비트 및 난수 32비트)를 추가하면 보안이 약간 향상될 수 있지만 이로 인해 암호화 프로세스 중에 데이터가 확장되는 것은 의심할 여지가 없습니다.


장점:

1. 단순함


2. 🎜>

3. 오류는 전송되지 않습니다.


단점:

1. 🎜>
2. 일반 텍스트에 대한 활성 공격 가능


2. CBC


1회 초기화 필요 벡터 IV에서는 첫 번째 일반 텍스트 집합이 초기화 벡터와 XOR된 후 암호화됩니다. 이후의 각 일반 텍스트 집합은 암호화되기 전에 이전 암호 텍스트 집합과 XOR됩니다. IV는 비밀로 유지될 필요가 없으며 암호 텍스트와 함께 일반 텍스트로 전송될 수 있습니다.


장점:


1. 적극적으로 공격받기가 쉽지 않으며, 보안이 ECB보다 우수합니다. 긴 메시지입니다. SSL, IPSec 표준입니다.

단점:


1. 병렬 컴퓨팅에 도움이 되지 않음

2. >
3. 초기화 벡터 IV가 필요합니다


3. 암호문 피드백 모드--CFB


IV가 필요합니다. 암호화 후 첫 번째 그룹화된 평문과 XOR 연산을 수행하여 첫 번째 그룹의 암호문을 생성한 다음 첫 번째 그룹의 암호문을 암호화하고 두 번째 평문 그룹과 XOR 연산을 수행하여 두 번째 그룹의 암호문을 래핑합니다. 암호문 등은 암호화가 완료될 때까지 계속됩니다.

장점:

1. 일반 텍스트 모드 숨기기

2.

3. 패킷 크기보다 작은 데이터는 암호화하여 적시에 전송할 수 있습니다.

단점:

1.

2. 오류 전송: 하나의 일반 텍스트 단위가 손상되어 여러 단위에 영향을 미칩니다.


4. 출력 피드백 모드--OFB

에는 암호화 후 첫 번째 암호화된 데이터가 XOR됩니다. 첫 번째 암호화된 데이터를 두 번째 암호화하여 두 번째 암호화된 데이터를 두 번째 일반 텍스트 집합과 XOR하여 두 번째 암호 집합을 생성합니다. 암호화가 완료될 때까지 계속됩니다.


장점:

1. 일반 텍스트 모드 숨기기

2. 블록 암호를 스트림 모드로 변환합니다.

3. 시간상 패킷보다 작은 데이터를 암호화하여 전송할 수 있다.


단점:


1 . 병렬 컴퓨팅에 도움이 됨;

2. 일반 텍스트에 대한 적극적인 공격이 가능합니다.

3. 오류 전송: 하나의 일반 텍스트 단위가 여러 단위에 영향을 미칩니다.


5. 카운터 모드--CTR

카운터의 초기 값은 암호화되어 첫 번째 일반 텍스트 세트와 XOR됩니다. 첫 번째 암호 텍스트 집합을 생성하면
카운터가 증가하고, 암호화 후 다음 암호 텍스트 집합을 생성하기 위해 다음 일반 텍스트 집합과 XOR 연산이 수행되며, 암호화가 완료될 때까지 계속됩니다. 완료



장점:


1. 병렬로 계산할 수 있습니다.

2. CBC 모드만큼 좋음

3. 암호화 및 솔루션에는 암호화 알고리즘만 포함됩니다.


단점:

1. 오류 전파가 없고 데이터 무결성 확보가 어렵다;


블록 암호 패딩 방법 소개

PKCS5: 패딩 문자열은 값이 5인 바이트 시퀀스로 구성되며 각 바이트는 바이트 시퀀스 길이로 채워집니다. 블록의 크기는 8비트로 명확하게 정의됩니다.

PKCS7: 패딩 문자열은 값 7의 바이트 시퀀스로 구성되며 각 바이트는 바이트 시퀀스의 길이로 채워집니다. 블록의 크기는 정의되지 않으며 1-255 사이일 수 있습니다.

ISO10126: 패딩 문자열은 바이트 시퀀스, 이 바이트 시퀀스의 마지막 바이트 패딩 바이트 시퀀스 길이, 나머지 바이트로 구성됩니다. 무작위 데이터로 가득 차 있습니다.

이 기사가 도움이 되기를 바랍니다

위 내용은 Java 암호화 및 복호화 기본 분류 및 모델 요약 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.