잉카콜라 2023. 4. 2. 13:24

 

배타적 논리합

배타적 논리합( eXclusive OR, XOR )

    → 입력으로 들어온 2개의 값이 서로 다를 때, 참 거짓을 반환하는 연산이다.

 

Dreamhack - Cryptography

위 사진에서는 입력으로 2가지의 값이 들어오고 출력으로는 참, 거짓으로 나타나게 된다.

  • 입력값 → 0 , 0 : 2개의 입력값이 0으로 같으므로 0을 출력( 반환 )
  • 입력값 → 0 , 1 : 2개의 입력값이 0과 1로 다르므로 1을 출력( 반환 )
  • 입력값 → 1 , 0 : 2개의 입력값이 1과 0으로 다르므로 1을 출력( 반환 )
  • 입력값 → 1 , 1 : 2개의 입력값이 1로 같으므로 0을 출력( 반환 )

 

 

Dreamhack - Cryptography

위 사진은 배타적 논리합 연산의 예이다.

  • 숫자 5와 7을 이진수로 변환하게 되면 각각 101 , 111 로 변환이 된다.

 

  • 숫자 3과 10을 이진수로 변환하게 되면 각각 0011 , 1010 으로 변환이 된다.

 

따라서 임의의 정수를 x 라고 할 경우 임의의 정수 x 와 자기 자신을 배타적 논리합 하게 된다면 아래와 같은 결과인 0이 반환된다.

Dreamhack - Cryptography

 

 

 

합동식

합동식이란 두 정수 a, b 를 각각 정수 m 으로 나누었을 때 나머지가 같은지를 판별하는 식이다.

위 예시에서 숫자 7과 17을 10으로 나누었을 경우 나머지는 둘 다 7로 같다.

따라서 7과 17은 mod 10 에 대해 합동이라고 하며 기호로는 아래와 같이 나타낼 수 있다.

Dreamhack - Cryptography

 

 

반대로 숫자 12와 5는 3으로 나누었을 경우 나머지가 같지 않게 된다.

 

따라서 12와 5는 mod 3 에 대해 합동이 아니며 기호로는 아래와 같이 나타낼 수 있다.

Dreamhack - Cryptography

 

 

 

Dreamhack - Cryptography 공부내용 정리

https://dreamhack.io/

관련된 문제는 사이트에 수록되어 있습니다

728x90