순환 이동(Circular Shift)
순환 이동 연산은 데이터의 비트를 한 방향으로 이동시키되, 이동 과정에서 데이터의 경계를 넘어가는 비트는 반대쪽 끝으로 다시 돌아오는 연산입니다. 즉, 데이터가 순환적으로 이동하게 됩니다.
예를 들어, 8비트 데이터 10110011을 왼쪽으로 3비트 순환 이동하면, 10011101이 됩니다.
서큘러 연산(Circular)과 시프트연산(Shift)
- Shift Left: 데이터를 왼쪽으로 이동. 왼쪽 끝의 비트는 오른쪽으로 돌아옴.
- Shift Right: 데이터를 오른쪽으로 이동. 오른쪽 끝의 비트는 왼쪽으로 돌아옴.
* 이 두 연산은 서로 역함수 관계임. 왼쪽으로 n 비트 이동한 데이터를 원래 상태로 돌리려면 오른쪽으로 n 비트 이동해야함
예시
-
- 키: 왼쪽으로 3비트 순환 이동
- 평문: 10110011
- 암호화: 평문을 왼쪽으로 3비트 순환 이동 → 10011101
- 복호화: 암호문을 오른쪽으로 3비트 순환 이동 → 10110011 (원본 평문 복구)
Swap 연산
Swap 연산은 주어진 데이터의 일부를 교환하는 연산. 이 연산은 데이터의 두 부분을 서로 바꾸는데 사용됩니다. Swap 연산은 많은 알고리즘, 특히 정렬 알고리즘에서 중요한 역할을 합니다. 순환 이동 사이퍼에서의 Swap 연산을 간략하게 설명하면 다음과 같습니다: 데이터의 두 부분을 나누고, 그 두 부분의 위치를 서로 교환하는 것입니다. 예를 들어, 8비트의 데이터 11010001을 4비트 단위로 Swap 한다면 1101과 0001의 위치를 바꾸어 00011101 이 됩니다.
'개발 과 보안 > 암호학의 모든것' 카테고리의 다른 글
차분분석(Differential Cryptanalysis) (1) | 2023.10.24 |
---|---|
Shannon의 합성암호 개념 (1) | 2023.10.19 |
현대 대칭키 암호_구성요소1.[ P-box & S-box ] (1) | 2023.10.19 |
현대 대칭키 암호_ 구성요소2. [ xor 연산 ] (0) | 2023.10.18 |
암호학 (0) | 2023.09.02 |