java aria 암호화 예제

Posted on

MISTY1: 미쓰비시 전기(주)에서 개발한 128비트 키와 64비트 블록을 사용하는 블록 암호와 다양한 라운드 수를 사용했습니다. 하드웨어 및 소프트웨어 구현을 위해 설계되었으며 차동 및 선형 암호 해독에 강합니다. RFC 2994에 기재되어 있다. 아래 암호화 및 암호 해독 예제에서 UTF-8 charset에서 base64 인코딩을 사용했습니다. 그것은 프로그램의 출력을 표시하기 위해 수행됩니다. 응용 프로그램의 경우 byte 배열 형식으로 데이터를 저장하고 유효성을 검사할 수도 있습니다. 메시지에 여러 받는 사람이 있는 경우 암호화 단계가 받는 사람의 정보(예: 공개 키)에 따라 달라지므로 암호화 단계가 다른 결과를 생성합니다. 한 응용 프로그램이 각 받는 사람에게 다른 암호화된 메시지를 보내도록 선택할 수 있습니다. 다른 수신자에게 동일한 암호화된 메시지를 보낼 수 있지만 각 받는 사람에 대해 암호 해독 키를 다르게 암호화할 수 있습니다(이 후자의 접근 방식을 통해 받는 사람이 다른 받는 사람에 대해 알려진 일반 텍스트 공격을 수행할 수 있습니다.

받는 사람은 메시지의 암호 해독 키를 알고 있으며 받는 사람의 정보로 암호화된 키도 볼 수 있습니다. 어떤 경우든 메시지를 해독하기 위해 받는 사람별 정보(예: 개인 키)를 사용해야 하며 받는 사람이 수행하는 암호 해독 단계는 기본적으로 보낸 사람이 수행하는 정보와 반대입니다. RC5: 다양한 블록 크기(32, 64 또는 128비트), 키 크기 및 암호화 수를 지원하는 블록 암호가 데이터를 전달합니다. RFC 2040에 기재되어 있다. PBKDF2는 일반적으로 사용자가 제공한 암호만 비밀 정보에 대한 액세스를 보호하거나 허용하는 데 사용되는 경우 암호와 같은 소스에서 암호화 키 자료를 파생하는 데 사용됩니다. PBKDF는 의사 랜덤 함수(prf) 및 추가 솔트(salt)를 사용하여 사용자가 제공한 암호에 여러 반복을 적용하여 계산됩니다. 여기서 개발자는 prf, 반복 수 및 염값을 구성해야 합니다. 이러한 표준에 대한 사양은 2000년[3]에 마지막으로 작성되었으며, 그 이후로 계산 능력이 증가했습니다. 따라서 해시 함수의 SHA2 패밀리, 최소 64비트의 염값 및 최소 10,000의 반복 수를 사용하는 것이 좋습니다. Java에서 이를 지원하는 API를 제공하는 것은 좋은 단계이지만 이 것을 사용하는 방법과 위치에 대한 문서가 절대적으로 부족합니다. 설명의 용이성을 위해 블록 및 암호 키는 각 배열에 4개의 행이 있고 각 열이 단일 바이트(8비트)를 나타내는 열 배열로 표시되는 경우가 많습니다. 상태 또는 암호 키를 나타내는 배열의 열 수를 32(32비트 = 4바이트)로 나눈 블록 또는 키 길이로 계산할 수 있습니다.

상태를 나타내는 배열에는 Nb 열이 있으며 Nb 값은 각각 128, 192 및 256비트 블록에 해당합니다. 마찬가지로 암호 키를 나타내는 배열에는 Nk 열이 있으며, 여기서 Nk 값은 4, 6 및 8이 각각 128,192비트 및 256비트 키에 해당합니다. 128비트 상태(Nb=4) 및 192비트 암호 키(Nk=6)의 예는 다음과 같습니다.