현대암호학 #2

케이요·2021년 10월 23일
0

현대 암호학

목록 보기
2/6

2021-09-06-현대암호학-2주차.md

  1. Mathmatics of Cryptography

Greatest Common Divisor

  • Definition. 정수 𝑎𝑎𝑏(0)𝑏(\neq0)에 대하여 아래 조건을 만족하는 정수인 몫(quotient) 𝑞𝑞와 나머지(remainder) 𝑟𝑟이 존재한다.

    𝑎=𝑏𝑞+𝑟(0𝑟<𝑏)𝑎=𝑏𝑞+𝑟 (0≤𝑟<𝑏)

    • 나머지 𝑟𝑟00일 때 𝑏가 𝑎를 나눈다라고 하며 𝑏𝑏𝑎𝑎약수(divisor)라고 한다
    • 정수 𝑎𝑎𝑏𝑏를 모두 나누는 정수를 𝑎𝑎𝑏𝑏공약수(common divisor)라고 한다
    • 공약수 중 가장 큰 정수를 최대공약수(greatest common divisor)라고 한다
    • 𝑎𝑎𝑏𝑏의 최대공약수를 gcd(a,b)\gcd(a,b)로 표기하고, 최대공약수가 11일 때 𝑎𝑎𝑏𝑏서로소(relatively prime)라고 한다.

The Euclidean Algorithm

  • Definition. gcd(a,0)=a\gcd(a,0) = a.
  • Theorem. 정수 𝑎𝑎𝑏(<𝑎)𝑏(<𝑎)𝑎=𝑞𝑏+𝑟𝑎=𝑞𝑏+𝑟를 만족하면

    gcd(𝑎,𝑏)=gcd(𝑏,𝑟)\gcd (𝑎,𝑏) =\gcd (𝑏,𝑟)

    • 유클리드 알고리즘을 활용한 효율적 gcd(a,b)\gcd(a,b) 계산
      스크린샷 2021-10-23 오후 8.37.04.png

The Extended Euclidean Algorithm

  • Theorem. 양의 정수 𝑎𝑎𝑏𝑏에 대하여 다음 식을 만족하는 정수 𝑥𝑥𝑦𝑦가 존재한다.

    gcd(a,b)=ax+by\gcd(a, b) = ax + by

    • 확장 유클리드 알고리즘을 이용하여 최대공약수를 두 정수의 선형 결합(Linear Combination)으로 나타낼 수 있음. 스크린샷 2021-10-23 오후 8.15.43.png

Modular Arithmetic

  • Definition. 정수 𝑎𝑎를 양의 정수 𝑛𝑛으로 나누어서 나머지 𝑟(0𝑟<𝑛)𝑟(0≤𝑟<𝑛)을 얻었을 때, 다음과 같은 연산으로 표현할 수 있다.

    𝑎mod𝑛𝑟𝑎\mod𝑛 ≡ 𝑟

    • 연산자 mod모듈라 연산자(modular operator)라고 한다.
    • 양의 정수 𝑛𝑛모듈러스(modulus) 또는 법(法)이라고 한다.
  • Definition. 양의 정수 𝑛𝑛과 두 정수 𝑎𝑎, 𝑏𝑏에 대하여 𝑎mod𝑛𝑏mod𝑛𝑎\mod𝑛≡ 𝑏\mod𝑛을 만족하면 모듈라 n에 대하여 a와 b는 합동(congruence)이다라고 하고 다음과 같이 표현한다.

    𝑎𝑏(mod𝑛)𝑎 ≡ 𝑏 \pmod 𝑛

    • 𝑎𝑎𝑏𝑏가 합동이면 두 정수는 𝑛𝑛으로 나누었을 때 나머지가 같다고 할 수 있다.
    • 다시말해 𝑎𝑏𝑎−𝑏𝑛𝑛으로 나누어진다.
  • Theorem. 모듈라 연산은 다음과 같은 특성을 갖는다.
    1. (𝑎+𝑏)mod𝑛=[(𝑎mod𝑛)+(𝑏mod𝑛)]mod𝑛(𝑎+𝑏) \mod𝑛 = [(𝑎\mod𝑛) + (𝑏\mod𝑛)] \mod𝑛
    2. (𝑎𝑏)mod𝑛=[(𝑎mod𝑛)(𝑏mod𝑛)]mod𝑛(𝑎-𝑏) \mod𝑛 = [(𝑎\mod𝑛) - (𝑏\mod𝑛)] \mod𝑛
    3. (𝑎×𝑏)mod𝑛=[(𝑎mod𝑛)×(𝑏mod𝑛)]mod𝑛(𝑎\times𝑏) \mod𝑛 = [(𝑎\mod𝑛) \times (𝑏\mod𝑛)] \mod𝑛
  • Remark. 모듈러 연산 mod2\mod 2를 이용하면 암호학에서 가장 많이 사용되는
    XOR()XOR(\oplus) 논리 연산을 표현할 수 있다.
    - XOR()XOR(⊕)연산: 2개의 입력 비트가 같으면 00, 다르면 11을 출력
    스크린샷 2021-10-23 오후 8.37.04.png

Residue Systems

  • Definition. 𝑛(1)𝑛(≥ 1)개의 원소를 가지는 어떤 정수 집합의 원소들을 𝑛𝑛으로 나눴을 때 모든 나머지들을 얻을 수 있다면, 이 집합을 모듈러스 𝑛𝑛에 대한 완전 잉여계(complete residue system)라고 한다.
  • 정수 집합을 Z={...,2,1,0,1,2,...}\mathbb Z = \{...,−2,−1,0,1,2,... \}라고 표기할 때,
    모듈라 연산은 완전 잉여계 Z𝑛={0,1,2,...,𝑛1}\mathbb Z_𝑛 = \{0,1,2,...,𝑛−1\} 을 만든다.
  • Definition. 완전 잉여계 Z𝑛\mathbb Z_𝑛의 원소 중에 𝑛𝑛과 서로소인 원소들의 집합을 기약잉여계(reduced residue system) Zn\mathbb Z^∗_n이라고 한다.

Identities & Inverses

  • Definition. 완전 잉여계 Z𝑛\mathbb Z_𝑛에서 항등원(identity) 𝑒Z𝑛𝑒 ∈ \mathbb Z_𝑛은 모든 원소 𝑎Z𝑛𝑎 ∈ \mathbb Z_𝑛에 대하여 다음과 같은 성질을 만족한다.
    • (Z𝑛,+):𝑎+𝑒𝑒+𝑎𝑎(mod𝑛)(\mathbb Z_𝑛,+): 𝑎+𝑒≡𝑒+𝑎≡𝑎\pmod𝑛 덧셈 대한 항등원
    • (Z𝑛,×):𝑎×𝑒𝑒×𝑎𝑎(mod𝑛)(\mathbb Z_𝑛,×): 𝑎×𝑒≡𝑒×𝑎≡𝑎\pmod𝑛 곱셈에 대한 항등원
    • Z𝑛\mathbb Z_𝑛에서 덧셈에 대한 항등원은 00, 곱셈에 대한 항등원은 11이다.
  • Definition. 완전 잉여계 Z𝑛\mathbb Z_𝑛에서 원소 𝑎Z𝑛𝑎 ∈ \mathbb Z_𝑛 에 대한 역원(inverse) 𝒃Z𝒏𝒃 ∈ \mathbb Z_𝒏은 다음과 같은 성질을 만족한다.
    • (Z𝑛,+):𝑎+𝑏𝑏+𝑎𝑒(mod𝑛)(\mathbb Z_𝑛,+): 𝑎+𝑏≡𝑏+𝑎≡𝑒 \pmod𝑛 덧셈에 대한 역원
    • (Z𝑛,×):𝑎×𝑏𝑏×𝑎𝑒(mod𝑛)(\mathbb Z_𝑛,×): 𝑎×𝑏≡𝑏×𝑎≡𝑒\pmod 𝑛 곱셈에 대한 역원
    • 일반적으로 덧셈에 대한 역원은 𝑎−𝑎, 곱셈에 대한 역원은 𝑎1𝑎^{−1}으로 표기한다.
  • Theorem. (Z𝑛,×)(\mathbb Z_𝑛,×)상에서 원소 𝑎Z𝑛𝑎 ∈ \mathbb Z_𝑛의 곱셈에 대한 역원이 존재하기 위한 필요충분조건gcd(𝑎,𝑛)=1\gcd(𝑎, 𝑛)= 1이다.
    • gcd(𝑛,𝑎)=1\gcd(𝑛,𝑎) =1이라면 𝑎1𝑎^{−1}을 다음과 같이 찾을 수 있다.
      • 확장 유클리드 알고리즘을 사용하여 𝑛𝑥+𝑎𝑦=1𝑛𝑥+𝑎𝑦=1인 정수 𝑥𝑥, yy를 구할 수 있다.
      • (𝑛𝑥+𝑎𝑦)mod𝑛1mod𝑛(𝑛𝑥+𝑎𝑦) \mod𝑛≡1\mod𝑛
      • 𝑎𝑦1(mod𝑛)𝑎𝑦 ≡ 1 \pmod𝑛
    • 𝑎1𝑦(mod𝑛)∴𝑎^{−1} ≡𝑦\pmod𝑛
profile
맛있는 건 정말 참을 수 없어

0개의 댓글