항등원과 역원, 그리고 합동식

2023. 2. 3. 12:58·Tips & theory
728x90
반응형

서론

암호학은 수학적으로 공부해야할 것들이 많기 때문에

다른 분야에 대비해서 어렵기도 하지만, 뭔가 공부한다는 느낌이 팍팍 드는게 은근 마음에 든다.

 

이론

항등원

항등원은 임의의 수 a에 대해 e를 연산 했을 때 그 결과 값이 a가 되는 e를 항등원이라고 한다.

예를 들어 덧셈 연산을 하면

a + e = a

가 되고 이를 만족하기 위한 e는 0이 된다.

 

잠시 생각해보면

더하기, 빼기 = 0
곱하기, 나누기 = 1
행렬의 덧셈 = 역행렬
행렬의 곱셈 = 단위행렬

이 된다.

우선 행렬은 내비두고,

사칙연산에 의한 항등원은 직관적으로 알 수 있을 것이다.

 

이를 수학적 기호로

a △ b = b △ a = e

로 표현하고, 왼쪽을 만족하는 경우 왼쪽 항등원, 오른쪽을 만족하는 경우 오른쪽 항등원,

양쪽을 만족하면 양쪽 항등원 또는 항등원이라고 한다.

 

역원

역원은 a와 x를 연산한 결과가 항등원 e가 될 때를 이야기한다.

찬가지로 예를 들어 a + x = e일 때 덧셈에 대한 항등원 e는 0 이기에 x는 -a가 된다.

ax = e 일 때 곱셈에 대한 항등원 e는 1 이기에 x는 1/a가 된다.

 

항등원과 역원의 계산

각자 설명할 수도 있겠지만 모아서 보면 이해가 쉬울 것 같아 모아보았다.

기본적인 수식은

a △ b = b △ a = e

에서 시작한다.

 

항등원의 계산

위에서 항등원의 정의를 a + e = a라고 했다.

이를 위 수식에 넣어보면

a △ e = e △ a = a가 된다.

 

예를 들어보자.

a △ b = a + b - 3

일때 연산 △에 대한 항등원은

a △ e = e △ a = a

=> a + e - 3 = a

=> e = 3

즉 항등원은 3이 된다.

 

역원의 계산

역원의 정의는 a + x = e 였다.

예를 들어

a △ b = a + b - 3

일 때 5의 역원을 구해보자.

 

마찬가지로

a △ b = b △ a

에 넣어보면

5 △ x = x △ 5 = e

=> 5 + x - 3 = e

=> x = e + 3 - 5

항등원 계산에서 e = 3임을 알 수 있었으니 역원은 1이 된다.

 

합동식

위의 원리를 이해했다면 합동식의 이해가 쉽다.

위의 식

a △ b

를 다시 풀어서 이야기해보면 "a와 b가 임의의 연산을 한 결과"라고 이야기할 수 있다.

합동식은 a와 b가 임의의 연산을 한 결과가 c와 b를 같은 연산을 했을 때 그 값이 같으면 합동식이라고 한다.

 

이것도 예를 들어보자.

10을 3으로 나눈 나머지와 7을 3로 나눈 나머지는 모두 1로 같으며, 이는 합동식이 된다.

이를 식으로 다시 표현해보면

10 % 3 == 7 % 3

10 mod 3 == 7 mod 3

가 된다.

 

이를 다시 표현하면

10 ≡ 7 (mod 3)

10 ≡ 7

이 된다.

 

그냥

10 ≡ 7

만 보면 이게 무슨 개소린가 할텐데, 3으로 나눴을 때 같은 나머지를 가지는 "성질"으로 인한 것이다.

 

합동식의 성질

이 합동식은 성질이 있다.

a ≡ b (mod m)과 c ≡ d (mod m)을 만족하면

a + c ≡ b + d (mod m)

a - c ≡ b - d (mod m)

ac ≡ bd (mod m)

a^n ≡ b^n (mod m)

c^n ≡ d^n (mod m)

를 만족한다.

다만 나누기에서는 만족하지 않는다.

 

그래서 이걸 어디 써먹느냐

큰 수의 나머지를 계산할 때 유용하게 써먹을 수 있다.

 

예를 들어 4^23을 9로 나눈 나머지는 얼마인지 계산한다고 가정하자.

이를 식으로 나타내보면

4^23 % 9

가 되고,

4^23 mod 9

로 표현할 수 있다.

 

이는 합동식의 성질에서와 같이

4^3 mod 9 = 64 mod 9 = 1 = 1 mod 9

이므로

4^3 ≡ 1 mod 9

가 성립하므로

(4^3) ^ 7 ≡ 1^7 mod 9

4^21 ≡ 1 mod 9

가 성립한다.

 

또한 합동식의 성질에서

a ≡ b (mod m)과 c ≡ d (mod m)을 만족하면

ac ≡ bd (mod m)

인데, c = c라 가정하면 양변에 같은 값을 곱해줄 수 있으므로

ac ≡ bc (mod m)

로 표현할 수 있기 때문에

4^21 * 4^2 ≡ 1 * 4^2 mod 9

4^23 ≡ 16 mod 9

가 되며, 결국

4^23 ≡ 7

이 된다.

 

곱셈에서의 역원 - 확장된 유클리드 호제법 (- RSA)

이거 설명하려고 지금까지 어그로 끌었다.

 

아직 RSA까지는 조금 더 가야하니 일단 생략하지만

RSA는 서로소인 a와 b가 있을 때 a와 b의 곱셈의 역원을 이용하는 암호화 방식이다.

 

이 때 두 수가 서로소라는 의미는 GCD(a, b) = 1이라는 것과 같기 때문에

결국

as + bt = 1

의 꼴로 나타낼 수 있다.

위에서 설명한 것과 같이 a와 b를 알고 있기 때문에 역원을 구할 수 있게 된다.

이 때 각각을 b로 나눈 나머지를 표현해보면

as mod b + bt mod b = 1 mod b

가 되고, bt mod b는 0이기에

as mod b = 1 mod b

as ≡ 1 mod b

가 된다.

 

즉, 서로소인 경우 두 정수는

as ≡ 1 mod b

라 할 수 있고 이를 풀어 이야기하면

소수 a에 임의의 값을 곱해서 b로 나눈 나머지가 1이

이라는 의미가 된다.

728x90
반응형
저작자표시 비영리 변경금지

'Tips & theory' 카테고리의 다른 글

Quadratic Residues - 제곱 잉여  (0) 2023.02.07
PWN wargame 모음 (및 느낀점)  (0) 2023.02.04
Expanded Euclid's Algorithm - 확장된 유클리드 호제법  (0) 2023.02.02
Euclidean algorithm - 유클리드 호제법  (0) 2023.02.01
Diffie–Hellman key exchange 이론 및 중간자 공격  (2) 2023.01.30
'Tips & theory' 카테고리의 다른 글
  • Quadratic Residues - 제곱 잉여
  • PWN wargame 모음 (및 느낀점)
  • Expanded Euclid's Algorithm - 확장된 유클리드 호제법
  • Euclidean algorithm - 유클리드 호제법
wyv3rn
wyv3rn
아저씨의 흔한 취미. wyv3rn#1249
  • wyv3rn
    think storage
    wyv3rn
  • 전체
    오늘
    어제
    • 분류 전체보기 (489)
      • To do list (6)
        • Doing (0)
        • Complete (6)
      • Diary (35)
      • Tips & theory (77)
      • Kernel Exploit (22)
      • Wargame (310) N
        • pwn.college (34)
        • Dreamhack (145) N
        • pwnable.kr (15)
        • Lord of Sqlinjection (3)
        • Cryptohack (20)
        • Root me (27)
        • CodeEngn (4)
        • Exploit Education (22)
        • ROP Emporium (8)
        • H4C (10)
        • Hackerchool (22)
      • CTF (39)
        • Solved (37)
        • Unsolved (2)
      • Script (0)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

    • PWN wargame 모음 (및 느낀점)
    • 비공개 글들에 대해.
    • 뭐라도 하나 얻어가시길...
  • 인기 글

  • 태그

    x86
    heap
    rop
    tcache
    CANARY
    Buffer Overflow
    pwnable.kr
    la ctf
    exploit education
    dreamhack
    x64
    pwntools
    vtable
    ROOT ME
    BOF
    Format String Bug
    root
    lob
    phoenix
    Me
    _IO_FILE
    hackerschool
    FSB
    64bit
    root-me
    RTL
    docker
    cryptohack
    32bit
    libc
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.3
wyv3rn
항등원과 역원, 그리고 합동식
상단으로

티스토리툴바