Ⅰ. 서론
암호기술에 人}용되는 함수들은 모두 부울함수의형태로 표현가능하다. 또한 임의의 함수에 대한 부울함수 표현은 소프트웨어 구현뿐만 아니라 하드웨어구현시 효율성 측면에서 매우 중요한 역할을 한다.
동일한 입출력을 가지는 함수라고 할지라도, 그구현방법에 따른 효율성과 제작비용의 차이는 매우크다. 따라서, 임의의 수학적 논.리로 이루어진 함수를 가장 효율적이고, 제작비용이 적게 드는 부울함수형태로 전환하는 작업은 반드시 필요하다. 또한. 암호학 분야에서는 암호알고리즘 세부논리에 대한 부울함수 표현을 대수공격 등 각종 분석법에 적용할 수 있다.
Ⅱ. 부울대수
2.1. 기본적인 정의, 성질(1)
본 절에서는 부울대수에서 사용되는 연산과 부울함수를 정의하고 부울함수의 성질에 대해서 간략히 언급한다.
정의 1) (부울연산)
집합 {0, 1} 에서의 부울 연산 +(V), -(A). '(「) 을 다음과 같이 정의한다.
#
정의 2) (부울함수)
임의의 양의정수 n, m 에 대하여, 함수 /가 尤 {0, 1}"- {* 0, 1} 인 경우 부울함수 라고 부른다.
정의 3)
부울함수 fA "개의 변수 %i, x2, ..., X”을 가질 때,
a) 각각의 항 Xj, x- (KMn) 를 리터럴 (literal) 이라고 부른다.
b) X, 혹은 X: 의 곱으로만 이루어진 항을 디스정트(disjunct) 라고 부른다.
c) Disjunct 들의 합으로 부울함수 f를 표현한경우 /의 disjunctive normal form (d.n. 。이라고 부른다.
d) /의 정의역의 원소를 민텀 (minterm) 이라고 부르며, /가 /: {0, 1}”-{0, 1} 인 경우. {xv{0, 1}" I/(X)= 1}을 ON-set, (xe {0, 1}" 丨 /以) = 0}을 OFF-set 이라고 한다.
위와 같이 정의된 부울함수는 다음과 같은 성질을 만족한다.
정리 4)
八 % h 를 출력이 1 비트인 부울함수 라고 하고, X, y, Z 를 literal 이라고 할 때, 다음 성질을 만족한다.
#
2.2. 부울함수 합성문제
부울함수 합성문제는 입출력 비트들을 이용하여원래의 함수와 동일한 입출력을 가지는 가장 간단한부울함수 표현을 유추해내는 문제이다.(4)。
부울함수 합성문제는 다음과 같이 크게 두 가지로분류된다.
. Deductive inference problem : 함수 정의역의 원소의 개수와 같은 개수의 입출력 데이터를 이용하여 합성하는 문제
. Inductive inference problem : 함수 정의역의 원소의 개수보다 적은 개수의 입출력 데이터를 이용하여 합성하는 문제
특히, Inductive inference problem을 해결하여 합성된 부울 함수를 불완전하게 정의된 부울 함수라고 하며, 이는 ON-set과 OFF-set 원소의 개수의 합이 정의역의 원소보다 적은 경우를 말한다. 즉, I ON—set I + I OFF-set \ < 2 如이다.
불완전하게 정의된 부울 함수도 대수적으로 부울합과 부울곱 연산으로 표현가능하며, ON-set에 해당되는 모든 minterm들에 대한 함수 값이 1이 되고, OFF-set에 해당되는 모든 minterm들에 대한함수 값이 0이 되며, 그리고 그 밖의 minterm들에대한 함수 값이 1 혹은 0이 되도록 표현할 수 있다. 모든 부울함수는 부울곱들의 부울합 형태로 표현될수 있다.
Ⅲ. 출력이 1비트인 부울함수 합성문제
출력이 1.비트인 부울함수를 3-Layer System을 이용하여 합성하는 문제는 3-Layer System의 특성을 이용하여 도출한 방정식 또는 부등식에 대한 해 집합을 구하는 문제로 변환 될 것이며, 변환된 문제의 해는 수리계획적 방법으로 찾을 수 있다.
3.1. 3-Layer System
입력이 n 비트이고, 출력이 1 비트인 임의의 부울함수 F를 고려한다.
#
F는 다음과 같이 初개의 부울변수로 이루어진 K 개의 disjunct들의 논리합으로 표현될 수 있다.
#
또한, 위 부울함수 표현은 언제나 아래 그림과 같은 3-Layer system 으로 꾸며질 수 있다.
위 그림은 州개의 부울변수, [, ..., '을 입력으로 하고 출력이 y가 되는 부울함수를 K개의 논리곱 A 1, …, Ak과 그 출력을 입력으로 하는 하나의 논리합 V。으로 구성한 것이다.
각각의 논리곱 A, , , =1, ・“, 及의 입력은 2n 개의 논리합 V'", z=l, -, n, 7=0, 1의 결과이다 V%의 입력은 부울변수, ''와 결정변수s“‘ 이고 출력은 게이트 A, .의 입력이 된다. 마찬가지로 \/ 七의 입력은 부울변수 们와 결정변수 以이고 출력은 게이트 A; 의 입력이 된다. 여기서 결정변수 s“와 s ;느 각각 * , 와 们가 j번째 disjunct 에 참여한 경우를 나타내는 결정변수로서 다음과 같이 정의된다.
#
#
합성하고자 하는 부울함수는 K개의 disjunct를가진 함수이고 각각의 disjunct에는 %, 또는 x; (/=1, 2, .. s)가 참여하거나 또는 참여하지 않고 있다.
임의의 /에 대해 旳와 攵, '가 동시에 같은 dis- junct에 참여하는 경우는 0이 되므로 의미 없는 disjunct가 된다. 이런 경우는 없다고 가정한다.
위의 그림 1 은 합성하고자 하는 부울함수를 일반화 하여 나타내고 있다. 여기서 S, , 와 S' 0 는 X, 또는 X; 가 j 번째 disjunct 에 참여하는 경우에는 i 번째 논리합 V, 의 결과가 Xi 또는 幻'이 되도록 0을 반납하고, X, 또는 旳'가 참여하지 않는 경우에는, 번째 disjunct의 결과에 영향을 주지 않도록 1을 반납하도록 정의되었다.
그림 1. 출력이 1 비트인 3-Laver System
X, 와 幻'가 같은 disjunct 에 동시에 참여하는 경우가 없다는 가정에 의해 모든 입력에 대하여 다음 조건을 만족해야 한다.
#(1)
다음은 ON-set 과 OFF-set 의 원소에 의해 도출되는 성질들을 살펴보기로 하자.
3.2. OFF-set 의 원소에 의한 조건
R = 丨 OFF-se시이라 하고, 임의의 원소 w m OFF- set 에 대해 Ur={i\ x, 가 次에 포함되고 Xj = 1} Ur = {/I;七가 如에 포함되고 X)= 0} r = 1, 2, .., R이라고 정의하면, OFF-set 의 원소를 입력하였을 때의 결과는 언제나 y=0이어야 하므로모든 丿, =1, 2, ..., K에 대하여 게이트 A, 의 출력은반드시 0이 되어야 한다. 각각의, 에 대하여 A, 의출력이 0이 되어야 하기 때문에 적어도 하나의 /=l, 2, ..m /=0, 1의 출력이 0이 되어야 한다.
OFF-set 의 원소에 대해 幻 = 1인 경우에는 각각의 disjunct에 x/(ze t/r) 중 적어도 하나는 참여하거나 또는 *, = 0인 /에 대해서는 각각의 dis- junct에 Xi( ze ur') 중 하나는 참여하여야 한다.
위 결과를 수식으로 표현하면 다음과 같다.
#
따라서,
#(2)
이 만족되어야 한다.
3.3. ON-set minterm에 의한 조건
A = I QV-se시이라 하고, ON-set의 원소를 %3=1, 2, .. ., 4)라고 하자.
모든 ON-set 원소의 입력에 대하여 출력 y는언제나 y=l이어야 하므로 적어도 하나의, 에 대하여 의 출력은 반드시 1 이 되어야 한다. 임의의 minterm %에 대한 게이트 /\, 의 출력을 라고 하고 幻에 대하여 게이트 Vi 2=1, 2, /=0, 1의 출력들을 생각하면, <如의 幻가
1인 경우 게이트 V;, 의 출력은 1이고、새의 출력은 s'».가 되어야 한다. 마찬가지로 Xi 가 0인 경우게이트 V° 의 출력은 1이고 /'의 출력은 S, , 가되어야 한다. 苏, 를 다음과 같이 정의하면
#
부울변수 %技와 席, 간에는 다음과 같은 식이 성립한다.
#
또한 적어도 하나의 게이트 에 대하여 x? = 1이 되려면
#(3)
가 만족되어야 한다.
耸에 대해서도 X技 = 1, 또한, 어떠한 苏' = 0이 동시에 만족될 수 없으므로
#(4)
가 만족되어야 한다.
3.4. 출력이 1비트인 경우의 수리계획적 모델링
위에서 구한 식 (1)~(4) 에 대한 해집합을 구하기 위한 방법인 0T Integer Programming에 대해서 알아보고, 0-1 Integer Programming에 알맞도록 모델링 하여 문제를 해결한다.
3.4.1. 0-1 Integer Programming
우리가 해결할 문제는 m개의 선형부등식을 만족하는 이진벡터 X=(、x J, -, X „) '를 찾는 문제이다.
정의 5)(ILP)
일반적으로 Integer Linear Programming (ILP)은 다음과 같이 정의된다.
#(5)
여기서,
#
이다.(2.3)
본 논문에서 다루는 ILP는 목적함수 와 무관하게, 해집합 { * 冬 {0, 1}" 丨 4 G m /> }을 찾는것이 목적이지만, 목적함수의 적절한 설정으로 인해대수적 차수가 가장 낮은 함수, 게이트 수가 적은 함수, disjunct 수가 적은 함수 등 여러가지 형태의함수를 합성할 수 있다.
만일 임의의 炉{0, 1}”가 (5)의 홍H(feasible solution)라면 부울함수 합성문제는 Satisfiable 하다.
Ⅱ.P를 해결하는 알고리즘들에는 Branch and Bound, Lagrangian relaxationt23, 4] 그리고 interior point method를 이용한 방법''⑹들이 있다.
3.4.2. 부울함수 합성문제에의 적용
위에서 소개한 출력이 1 비트일 경우의 부울함수합성문제는 다음과 같은 ILP 의 해집합을 구하는 문제로 변형될 수 있다
範개의 literal 心, ..., 先”로 구성된 欢개의 disjunct Ci, C2.......C辑와 그것으로 구성된 3-Layer System을 고려하고 다음을 정의중卜자.
#
#
각 disjunct C가 1 이려면 1 c 혹은 7%에 포함된 인수에 해당되는 적어도 하나의 literal이 1이되어야 한다. 그러므로,
#
이다.
여기서, %;를 1—知로 바꾸면 다음과 같이 변형된다.
#
#를이용하여 3.1. 의 부울함수 합성문제를 Integer linear programming으로 변형하면 다음과 같다.
#(6)
#(7)
#(8)
#(9)
위 부등식들을 제약조건으로 하는 ILP 의 임의의한 해를 구하고, 구해진 해의 S ”, S H S 砌, s K” 의 값들을 이용하면, 결정변수의 정의에 의해 함수를합성할 수 있다.
3.5. 계산복잡도
제약조건의 개수와 그에 사용되는 변수의 개수를 이용하여 입력변수의 개수와 합성될 부울함수의 형태에 따른 계산복잡도를 추정한다.
ON-set의 원소의 개수와 OFF-set의 원소의 개수는 함수마다 다를 수 있지만, 암호알고리즘에서 사용되는 부울함수들은 일반적으로 regulari顷⑺를만족하므로,
#
이라고 가정한다.
사용되는 변수는 s, „ s, , ', xa, \ 荷, 이다. 각 변수의 종류별 개수는 다음과 같다.
표 1. 문제의 규모에 따른 변수의 개수
식 (6), (7), (8), (9) 에 의한 제약조건의 개수는
#
이다.
여기서 〃은 입력변수의 개수이고, K는 합성하고자 하는 함수의 disjunct 의 개수이다.
따라서 예를 들어 입력의 크기가 6 비트이고, 출력이 1 비트인 함수를 10개의 disjunct를 가지는부울함수표현으로 나타내려면. 2, 360개의 변수로 이루어진 2, 332개의 제약조건을 만족하는 해를 구해야 한다.
Ⅳ. 출력이 2비트 이상인 부울함수 합성문제
블록암호 알고리즘에서 실제로 사용되고 있는 부울함수들은 그 출력의 크기가 2비트 이상인 경우가 대부분이다. 따라서 실제 사용되는 함수에 대한 부울함수표현을 알아내기 위해서는 출력이 1 비트인 경우의 부울함수 합성문제를 출력의 비트 수만큼 되풀이 하여 풀어야 한다.
본 논문에서는 출력이 1 비트인 경우의 부울함수합성문제의 되풀이 하여 출력이 여러비트인 부울함수를 합성하는 방법을 소개한다.
4.1. 촐력이 2 비트인 3-Layer System
부울함수 F를 F :{0, 1尸->{0, 1}2 라고 하자. 다음과 같이 출력이 1 비트인 두 개의 부울함수로나누어 생각할 수 있다.
#
F1, F2를 각각 출력이 1 비트인 부울함수로 생각하면, 다음 그림과 같이 3-Layer System 두 개를 동시에 고려하면 된다.
그림 2. 출력이 2 bit인 3-Layer System
출력이 2 비트 이상인 부울함수 합성문제의 계산복잡도는 출력이 1 비트인 부울함수 합성문제의 계산복잡도의 정수배 이다.
Ⅴ. DES S-box의 부울함수 합성문제
잘 알려진 블록암호 알고리즘 중 하나인 DES 에사용된 비선형 함수인 S-box 에 대한 부울함수 표현을 찾아봄으로써 위에서 제시한 수리계획법을 이용한 부울함수 합성문제의 해결가능성 및 암호 분석기술로의 적용가능 여부를 확인해 보았다.
DES의 S-box⑻ 는 입력이 6 비트 이고, 출력이 4 비트인 함수이다.
DES의 첫 번째 S-box 인 — 의 치환표는다음과 같다.
표 2. DES S — box의 치환표
따라서, DES의 S[ — box 를
#
라고 하고, P를
#
로 나누어 고려하였다. 여기서, 幻 3=1, .., 6) 은입력비트이고, 力 3=1, .., 4)는 출력비트이다.
ILP의 제약조건에 포함되는 계수들은 입력 비트와 그에 대한 출력비트로 결정되므로, 모든 입력에 대한 출력을 구해보면 표 3 과 같다.
표 3. DES S-box 의 입 출력표
출력의 첫 비트 外에 대한 Fj을 구해보자.
如 = 6이고, |ON-set| = |QEF-s或丨 =25이므로임의의 K를 정하여 다음 제약조건을 가지는 0-1 Integer programming의 해를 구하면 된다.
#(10)
#(11)
#(12)
#(13)
K가 매우 크면, 해는 반드시 존재하지만. 계산복잡도가 커지고. K가 매우 작으면 해가 존재하지 않을 수 있으므로, 적절한 K를 선택하는 것이 중요하다. 본 논문에서는 K=20을 기본으로. 해가 존재하지 않는 경우 30 으로 확장하였다.
이상으로 해를 구하기 위한 모델링은 모두 끝났다. 실제로 해를 구하는 연산은 ILOG 에서 개발한 M.P. (Mathematical Programming) Solver 인 AMPL⑼ 을 이용하였으며, 이는 목적함수와 제약조건이 입력되는 M.P. 형태의 문제를 가장 적합한 방법으로 해결해 주는 Solver 이다.
AMPL 에 의해 구해진 £-况赁의 矿에 대한결정변수 s, , , 跖'의 해와 그에 따라 찾아진 부울함수표현은 표 4와 같다.
표 4. S - box 의 F1에 대한 해
#
위에 제시한 해는 식 (10), (11), (12), (13) 을제약조건으로 하는 ILP (5) 에 대한 feasible solution 중 하나이다. 목적함수의 적절한 조정을 통하여 disjunct 의 수가 가장 적은 함수, gate 수가 가장 적은 함수, 대수적 차수가 가장 낮은 함수 등의 최적화 된 형태의 부울함수표현을 찾을 수 있다. 하지만, 본 논문에서는 feasibility 만을 고려하였으므로, 목적함수에 대한 설정은 생략하였다.
다른 함수들에 대한 부울함수 표현을 찾기 위해서해당함수의 입출력에 대한 ON—set과 OFF-set 으로 교체하여 하여 다시 시행하였다.
#의 F2, F3, F4에 대한 부울함수표현은다음과 같다.
#
#
#
이와 마찬가지 방법으로 다른 28개의 함수에 대한해를 구하고, 그 해를 이용해 DES S-box 의 부울함수표현을 모두 찾을 수 있었다. (별첨#1)
Ⅵ. 결론
본 논문에서는 부울함수 표현이 알려지지 않은 임의의 함수에 대해 그 입력과 출력에 관한 정보만을이용하여 동일한 입출력을 가지는 부울함수표현을 찾아내는 문제를 수리계획법의한 부류인 0-1 Integer programming을 이용하여 해결하는 방법을제시하였다. 또한, 그 방법을 적용하여 입력이 6비트인 DES 의 S-box 의 부울함수 표현을 찾아내었다. 이런 결과는 임의의 함수에 대한 최적화된 부울함수표현을 이용하여 효율적인 하드웨어 구현을 가능하도록 할 뿐 아니라, 치환표 형태로 공개된 비선형 암호논리에 대한 부울함수표현을 밝혀내어 대수적 구조를이용한 암호분석기술에 유용하게 사용될 수 있다.
입출력의 크기가 작은 함수의 경우는 모든 가능한입출력의 정보를 이용하여 동일한 함수를 합성할 수있으나, 입출력의 크기가 큰 함수의 경우에는 제한된입출력의 정보만을 이용하여 함수를 합성한 후 출력이 알려지지 않은 입력에 대한 출력을 추측해 내는방법에 대한 연구가 향후 연구과제로 남아있다. 입력의 크기가 큰 함수의 부울함수표현을 찾아내는 계산복잡도를 현저하게 줄이는 방법이 연구되어 진다면, 이를 이용하여 수집된 평문과 그에 대한 암호문을 이용하여 임의의 암호문에 대한 평문을 추측해 낼 수있는 방법에 대한 연구가 가능하게 된다.
* 본 연구는 2001년 한양대학교 지원으로 수행되었습니다.
** 본 연구는 2001년 고려대학교 지원으로 수행되었습니다.
참고문헌
- Ralph P. Grimaldi. Discrete and combinatorial mathematics an applied introduction. Addison wiley. 1989
- John E. Mitchell. Panos M. Pardalos and Mauricio G.C. Resende. Interior Point methods for combinatorial opti mization. Handbook of combinatorial Optimization. Kluwer Academic publishers . 1998
- G.L.Nemhauser and L.A. Woolsey. Integer and Combinatorial Optimization. John wiley. New York. 1988
- John E. Mitchell and Mike Todd. 'Solving combinatorial optimization problems using Karmarkar's algorithm.' Mathematical Programming 56. pp. 245-284. 1992 https://doi.org/10.1007/BF01580902
- M.Raghavachari. 'On connections between zero-one integer programming under linear constraints,' Operations
- B,H.Faaland and F,S,Hilier ,'Interior path methods for heuristic integer programming procedures,' Operations Research 27, pp.1069-1087. 1979 https://doi.org/10.1287/opre.27.6.1069
- Koji Kusuda, Tsutomu Matumoto Strength Evaluation of the Data Encryption Standard, Yokohama National University, October 1993
- NIST 'Data Encryption Standard, Federal Information Processing Standards Publication (FIPS PUB).' 46. National Bureau of Standards, Washington. DC, 1977
- Robert Fourer, David M. Gay. Brian W. Kernighan. AMPL A Mmodeling Language For Mathematical Programming, Boyd and Fraser, Massachusetts,1993