암호압축: 브루트포스 공격 방어를 위한 대칭 암호화 알고리즘

읽는 시간: 6 분
...

📝 원문 정보

  • Title: Cryptompress: A Symmetric Cryptography algorithm to deny Bruteforce Attack
  • ArXiv ID: 1604.02128
  • 발행일: 2016-04-08
  • 저자: Vivek Kumar, Sandeep Sharma

📝 초록 (Abstract)

이 논문은 '암호압축(Cryptompress)'이라는 새로운 대칭 암호화 알고리즘을 소개한다. 이 알고리즘은 연속적인 유사한 이진 쌍으로 구성된 데이터에 적용 가능한 압축 방법과 함께 제시되며, 이를 통해 브루트포스 공격을 방어하는 효과를 기대한다. 30비트 블록 코드를 사용하며, 두 개의 연속적인 비트(00, 01, 10, 11)는 각각 첫 네 개의 양의 소수(2, 3, 5, 7)에 매핑된다. 이 매핑을 통해 암호화 과정에서 데이터가 압축되고, 이를 복원하는 데 필요한 세 가지 주요 행렬인 Add-Sum 행렬(ASM), 시퀀스 행렬(SM), 그리고 항 행렬(TM)이 사용된다.

💡 논문 핵심 해설 (Deep Analysis)

#### 1. 암호압축(Cryptompress)의 핵심 개념

암호압축은 브루트포스 공격을 방어하기 위한 대칭 암호화 알고리즘이다. 이 알고리즘은 데이터를 압축하는 과정에서 암호화를 수행함으로써, 해독이 더욱 어려워지도록 설계되었다. 특히, 연속적인 유사한 이진 쌍을 효과적으로 처리하여 압축률을 높이는 것이 핵심이다.

2. 압축 및 암호화 과정

암호압축의 첫 단계는 데이터를 압축하는 것이다. 이를 위해, 30비트 블록 코드가 사용되며, 이 중 두 개의 연속적인 비트(00, 01, 10, 11)는 각각 첫 네 개의 양의 소수(2, 3, 5, 7)에 매핑된다. 이러한 맵핑을 통해 데이터가 압축되며, 이 과정은 Add-Sum 행렬(ASM), 시퀀스 행렬(SM), 그리고 항 행렬(TM)이라는 세 가지 주요 행렬을 사용하여 수행된다.

  • Add-Sum 행렬(ASM): ASM은 압축 및 복구 시퀀스 모두에서 검색 테이블과 같은 역할을 한다. 이는 블록 코드 데이터와 축소 행렬(RM) 데이터 사이의 채널 역할을 하며, 대상 숫자가 어떤 연산을 수행해야 하는지 결정한다.
  • 시퀀스 행렬(SM): SM은 각 4개의 소수에 대한 형식인 S n | R n으로 구성된다. 이는 압축 과정에서 중복 정수 개수와 시퀀스 번호를 저장하는 역할을 한다.
  • 항 행렬(TM): TM은 각 타겟 숫자에 대한 마지막 발생 시퀀스 번호를 저장한다.

3. 키 확장 및 피에스텔 네트워크

키 확장 과정에서는 초기 키 해독이 실패할 경우, 32비트 무작위 비트(스틱 키)가 선택되어 초기 키와 결합된다. 이 32비트는 8개의 동등한 세트로 나뉘며, 각 세트는 4비트씩 구성된다. 이러한 스틱 키 세트는 피에스텔 네트워크의 입력 중 하나로 사용되며, 평문을 두 개의 동등한 부분(왼쪽과 오른쪽)으로 분할하고 XOR 연산을 통해 암호화를 수행한다.

4. 압축 및 복구 과정

압축 과정에서는 우측 시프트 연산, ASM에 대한 조회, 그리고 덧셈/뺄셈 연산이 수행된다. 이 과정은 블록 코드 내 첫 번째 발생하는 소수를 선택하여 시작되며, 마지막 정지가 될 때까지 계속된다.

복구 과정에서는 TM에서 가장 높은 시퀀스 번호를 가진 마지막 대상 정수를 참조하고 RM에서 해당 결과를 가져온다. 그런 다음 ASM을 사용하여 좌측 시프트 연산을 수행하고 SM에서 알려진 중복 정수 개수를 가져온다.

5. 암호압축의 장점과 한계

암호압축은 브루트포스 공격에 대한 효과적인 방어 수단으로, 데이터를 압축하는 과정에서 암호화를 수행함으로써 해독이 더욱 어려워진다. 그러나 이 알고리즘의 복잡성과 연산량 증가로 인해 성능 저하가 발생할 수 있다.

6. 결론

암호압축은 브루트포스 공격을 방어하기 위한 새로운 대칭 암호화 알고리즘이다. 이 알고리즘은 데이터를 압축하는 과정에서 암호화를 수행함으로써, 해독이 더욱 어려워지도록 설계되었다. 그러나 복잡성과 연산량 증가로 인해 성능 저하가 발생할 수 있으므로, 이를 개선하기 위한 추가 연구가 필요하다.

암호압축은 압축 및 암호화 과정에서 세 가지 주요 행렬을 사용하여 데이터를 효과적으로 처리하며, 키 확장과 피에스텔 네트워크를 통해 초기 키 해독이 실패할 경우에도 안전하게 작동한다. 이러한 특징으로 인해, 암호압축은 브루트포스 공격을 방어하는 효과적인 방법으로 평가될 수 있다.

암호압축의 핵심 개념과 과정을 이해함으로써, 이 알고리즘이 어떻게 작동하고 어떤 장점 및 한계를 가지고 있는지 파악할 수 있으며, 이를 바탕으로 보안 시스템에서 효과적으로 활용할 수 있을 것이다.

📄 논문 본문 발췌 (Excerpt)

## 암호압축: 메커니즘 및 주요 매트릭스 설명

암호화 과정의 시작 단계로, 우리는 주로 연속적인 유사한 이진 쌍으로 구성된 데이터에 적용 가능한 압축 방법을 따릅니다. 이 압축 방법은 암호화 단계와 함께 제시되었습니다. 30비트 블록 코드를 고려하고, 두 개의 연속된 비트(00, 01, 10, 11)를 첫 네 개의 양의 소수(2, 3, 5, 7)에 매핑하는 맵핑 함수를 설정합니다. 이러한 맵핑 함수는 다음과 같이 표현할 수 있습니다:

M = { 00 ⟺ 2, 01 ⟺ 3, 10 ⟺ 5, 11 ⟺ 7 } (식 1)

이 함수는 30비트 블록 코드를 15개의 정수(15바이트)로 변환합니다. 그 다음 압축 시퀀스는 세 가지 주요 연산 - 우측 시프트 연산, Add-Sub 행렬(ASM)에 대한 조회, 그리고 더 간단한 덧셈/뺄셈 연산을 수행하며 시작됩니다. 압축 시퀀스는 블록 코드 내 첫 번째 발생하는 소수를 선택함으로써 경계를 갖습니다. 첫 번째 소수가 처리되면 다음에 발생하는 소수가 대상이 되고, 그렇게 반복하여 블록 코드에서 마지막 정지가 될 때까지 계속됩니다.

대상 정수가 획득되면 다음 단계는 우측 시프트 연산을 수행하고 두 가지 규칙을 따릅니다. 첫째, 유사한 정수를 함께 더하고 시퀀스 번호(Sn)와 누적된 중복 정수 개수(Rn)를 행렬인 시퀀스 행렬(SM)에 입력합니다. 둘째, 다른 정수와 마주칠 때마다 ASM에서 대상 숫자에 특정 덧셈/뺄셈 연산을 수행합니다. 이 과정은 대상 숫자가 블록의 끝에 도달할 때까지 계속되며 최종 결과가 저장됩니다. 이 결과는 새로운 행렬인 축소 행렬(RM)에 저장됩니다. 남은 모든 이용 가능한 대상 소수에 대해 동일한 연산이 수행되어 RM, SM 및 새로운 행렬인 항 행렬(TM)에만 변환된 데이터가 남습니다. TM은 각 대상 숫자에 대한 마지막 시퀀스 번호를 포함합니다.

전반적으로 압축 시퀀스는 세 개의 행렬로 결과가 나타납니다. 이 행렬의 총 크기는 원본 블록 코드보다 클 수 있으며, 연속적인 유사한 이진 쌍의 발생 빈도에 따라 달라집니다. 예를 들어, 더 큰 블록 크기에서 연속적으로 유사한 이진 쌍이 발생하면 결과 시퀀스 행렬은 덜한 정보를 포함하게 되어 데이터가 효과적으로 압축됩니다.

원본 형태로 데이터를 복구하려면 TM에서 가장 높은 시퀀스 번호를 가진 마지막 대상 정수를 참조하고 RM에서 해당 결과를 가져옵니다. 그런 다음 ASM을 사용하여 좌측 시프트 연산을 수행하고 SM에서 알려진 중복 정수 개수를 가져옵니다.

위에서 언급했듯이, 암호압축 과정에서 다루어야 할 주요 행렬은 네 가지가 있습니다. 각 행렬의 구조와 중요성을 설명하겠습니다.

  1. Add-Sum 행렬(ASM): ASM은 압축 및 복구 시퀀스 모두에서 검색 테이블과 같은 역할을 합니다. 축소 행렬(RM) 데이터에 큰 영향을 미치며, 블록 코드 데이터와 RM 데이터 사이의 채널 역할을 합니다. 이는 대상 숫자가 어떤 연산을 수행해야 하는지 결정하기 때문에 매우 중요합니다. 즉, 대상 숫자가 다른 정수와 마주칠 때 1비트 덧셈 또는 뺄셈이 필요한지 결정합니다. 테이블 1은 ASM의 구조를 설명하며, ‘0’은 대상 숫자에서 1비트를 뺀다( -1)를 의미하고, ‘1’은 대상 숫자에 1비트를 더한다 (+1)를 의미합니다. 좌측 시프트 과정에서는 이 과정이 반전됩니다. ‘X’는 대상 숫자 자체의 덧셈을 나타내며 ASM과 관련이 없습니다. 세부 사항은 제4절에서 확인하세요.

키 설명:

  1. ASM 키: ASM 키를 사용하면 전체 Add-Sub 행렬(ASM)을 재구성할 수 있습니다. 초기 16개의 정수를 사용하여 새로운 ASM을 생성합니다…

크립토프레스(Cryptompress) 알고리즘 설명: 키 확장 및 개혁된 피에스텔 네트워크

이전 부분에서 암호화 및 복호화 방법에 대해 설명했습니다. 이제 키 확장과 관련된 개혁된 피에스텔 네트워크에 대해 자세히 살펴보겠습니다.

초기 키 해독 시도가 실패할 경우, 32비트 무작위 비트(스틱이 키)가 선택되어 초기 키와 결합됩니다. 이 32비트는 8개의 동등한 세트로 나뉘며, 각 세트는 4비트씩 구성됩니다. 이러한 8개의 세트는 시퀀스 매트릭스(S.M.)에 적용되는 피에스텔 네트워크의 입력 중 하나로 사용됩니다.

피에스텔 네트워크 [7]는 평문을 두 개의 동등한 부분(왼쪽과 오른쪽)으로 분할하고, XOR 연산을 사용하여 왼쪽 부분에 서브 키를 적용한 후 두 부분을 교환하는 암호화 방법입니다. 이 과정은 원하는 횟수만큼 반복될 수 있습니다. 본 논문에서는 이러한 피에스텔 네트워크를 개혁하여 8개의 스틱 키 세트를 서브 키로 사용합니다.

…(본문이 길어 생략되었습니다. 전체 내용은 원문 PDF를 참고하세요.)…

Reference

이 글은 ArXiv의 공개 자료를 바탕으로 AI가 자동 번역 및 요약한 내용입니다. 저작권은 원저자에게 있으며, 인류 지식 발전에 기여한 연구자분들께 감사드립니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키