이 영역을 누르면 첫 페이지로 이동
caputdraconis 블로그의 첫 페이지로 이동

caputdraconis

페이지 맨 위로 올라가기

caputdraconis

네트워크 관점에서의 클라우드 컴퓨팅을 공부하는 중입니다 :)

[컴퓨터보안] Feistel Cipher(파이스텔 암호) 동작 방식

  • 2023.04.25 09:59
  • Security
글 작성자: caputdraconis
반응형

 

출처 : Cryptography and Network Security: Principles and Practice 8th

 

 위의 동작 그림을 기반으로 Feistel Cipher의 동작 방식을 설명하겠습니다. Block Cipher 기반의 암호화 방식이기 때문에, Feistel Cipher 또한 암호화 되어야 하는 Plain Text를 여러개의 Block 으로 나누고, Block 하나와 키를 Encryption Algorithm에 Input 합니다. 이때 한 Block의 길이를 2w bits, key를 K, 진행되는 round의 횟수(Number of rounds)를 n 이라고 하겠습니다. 위의 그림은 n=16 일 때입니다. n은 몇이든 가능합니다.

 Encryption Algorithm에 들어온 2w bits의 Plain Text Block은 1w bits 두 개로 나누어, 왼쪽과 오른쪽을 각각 $$ LE_{0} \quad RE_{1} $$ 라고 이름을 붙이겠습니다. 이 두 조각은 n 번의 rounds를 거치고, 합쳐지며 Cipher Text Block을 생성하게 됩니다. i(1~)번째 라운드의 입력값은 아래와 같습니다.
$$ LE_{i-1} \quad RE_{i-1} \quad SubKey\,K_{i}\,derived\,from\,the\,over\,all\,K $$
여기서 Subkey는 K, 그리고 다른 Subkey들과는 모두 서로 다릅니다. 

모든 라운드는 같은 구조/로직을 가지고 있습니다. Substitution(치환)은 LE 에서 수행되는데, 이는 RE에 round function F를 돌리고 그 결과를 LE와 XOR(Exclusive-OR) 연산을 통해서 수행됩니다. 여기서 사용되는 round fuction F는 매 라운드마다 같지만, round subkey K를 사용하기 때문에 결과가 같지 않습니다. 즉, 아래와 같은 수식으로 표현이 가능합니다.
$$ F(RE_{i}\leftarrow\,w\,bits, K_{i+1}) \, =>\, output\leftarrow\,w\,bits $$

반응형

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [컴퓨터보안] Web Security

    [컴퓨터보안] Web Security

    2023.04.26
  • [컴퓨터보안] Stream Ciphers | Block Ciphers

    [컴퓨터보안] Stream Ciphers | Block Ciphers

    2023.04.24
  • [컴퓨터보안] Transposition Techniques(전치 기술)

    [컴퓨터보안] Transposition Techniques(전치 기술)

    2023.04.24
  • [컴퓨터보안] Substitution Technique(치환 기술)

    [컴퓨터보안] Substitution Technique(치환 기술)

    2023.04.24
다른 글 더 둘러보기

정보

caputdraconis 블로그의 첫 페이지로 이동

caputdraconis

  • caputdraconis의 첫 페이지로 이동

검색

메뉴

    카테고리

    • 분류 전체보기 (168)
      • Cloud (3)
      • Computer Network (12)
      • Database (2)
      • Terraform (2)
      • 🥚고리즘 (13)
      • 겅부겅부🙃 (10)
        • Naver CS50 코칭스터디 (2)
        • Machine Learning (1)
        • Computing System (6)
      • 언어&프레임워크 (20)
        • Python (4)
        • Django (10)
        • Node JS (1)
        • C++ (2)
        • Java (1)
        • Flutter (2)
      • Security (76)
        • WebHacking Study (11)
        • 지옥방 스터디 (22)
        • 여름방학 스터디 (2)
        • PWN Study (6)
        • SUA Reversing Study (3)
        • PWN (3)
        • WebHacking (20)
        • Reversing (4)
      • 알고 있으면 도움되지 않을까,,? (23)
      • 일상다반사 (1)
      • 근황 정리 (1)
      • 42 Seoul (1)
        • Setting (1)

    최근 글

    인기 글

    댓글

    공지사항

    아카이브

    태그

    • Python
    • old-16
    • 파이썬
    • 드림핵
    • 리스트함수
    • 웹해킹.kr
    • 파이썬함수
    • 파이썬기초

    나의 외부 링크

    • Github
    • solved.ac
    • caputdraconis@kakao.com

    정보

    caputdraconis의 caputdraconis

    caputdraconis

    caputdraconis

    블로그 구독하기

    • 구독하기
    • RSS 피드

    방문자

    • 전체 방문자
    • 오늘
    • 어제

    티스토리

    • 티스토리 홈
    • 이 블로그 관리하기
    • 글쓰기
    Powered by Tistory / Kakao. Copyright © caputdraconis.

    티스토리툴바