이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. Hereinafter, exemplary embodiments disclosed herein will be described in detail with reference to the accompanying drawings, but the same or similar elements are assigned the same reference numbers regardless of the reference numerals, and overlapping descriptions thereof will be omitted.
이하의 설명에서 사용되는 구성 요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. The suffixes "modules" and "parts" for components used in the following description are given or mixed only considering the ease of writing the specification, and do not have meanings or roles that are distinguished from each other.
또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. In addition, in describing the embodiments disclosed in this specification, detailed descriptions of related known technologies are omitted when it is determined that the gist of the embodiments disclosed in this specification may be obscured.
또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.In addition, the accompanying drawings are only for easy understanding of the embodiments disclosed in the present specification, and the technical spirit disclosed in the specification is not limited by the accompanying drawings, and all modifications included in the spirit and technical scope of the present invention , It should be understood to include equivalents or substitutes.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다.Terms including ordinal numbers such as first and second may be used to describe various components, but the components are not limited by the terms.
상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.The terms are used only for the purpose of distinguishing one component from other components.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When an element is said to be "connected" or "connected" to another component, it is understood that other components may be directly connected to or connected to the other component, but there may be other components in between. It should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that no other component exists in the middle.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.Singular expressions include plural expressions unless the context clearly indicates otherwise.
본 명세서에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In this specification, the terms "comprises" or "have" are intended to indicate the presence of features, numbers, steps, actions, components, parts or combinations thereof described in the specification, one or more other features. It should be understood that the existence or addition possibilities of fields or numbers, steps, operations, components, parts or combinations thereof are not excluded in advance.
본 명세서에서 설명하는 수행 객체들(암호화 수행객체, 복호화 수행객체, 서명 수행객체, 검증 수행객체 등)과 수행객체를 구성하는 구성요소들(암호화기, 복호화기, 서명기, 검증기, 암호키생성기 등)은 각각 물리적으로 구분되는 구조를 가질 수도 있고 기능적으로만 구분되어 있을 수 있다. Implementation objects (encryption execution object, decryption execution object, signature execution object, verification execution object, etc.) and components constituting the execution object (encryptor, decoder, signer, validator, cryptographic key generator) described in this specification Etc.) may have a physically distinct structure, or may be functionally separated.
기능적으로만 구분되는 경우, 이러한 수행 객체들과 구성요소들은 하나의 제어부에 포함될 수 있다. When only functionally, these execution objects and components may be included in one control unit.
상기 제어부는 단일 시스템이나 클라우드 서비스와 같은 분산 응용 프로그램 환경 내 특정 기능을 수행하는 API, 특정 기능을 수행하는 모듈, 컴포넌트(component), 칩, 단말 등의 하드웨어 또는 어플리케이션, 프로그램 등의 소프트웨어를 포함할 수 있다. The control unit may include an API that performs a specific function in a distributed application environment such as a single system or a cloud service, a module that performs a specific function, hardware such as a component, a chip, a terminal, or software such as an application or program. Can be.
I. 용어의 정의 I. Definitions
a) 정보의 표현 및 처리 방법 a) How to express and process information
컴퓨터 또는 통신시스템을 통해 보내고자 하는 정보는 숫자, 문자, 그림, 동영상, 소프트웨어 등 다양한 형태를 띄고 있으나 시스템 내에서는 binary, 즉 bit로 구성된 byte단위로 다루어진다. 이것은 ASCII, UNICODE 등 코드 형태로 변환되어 시스템 내의 응용프로그램이 인식하게 되고 이를 통해 사람들은 다시 숫자, 문자, 그림 등 정보의 형태로 전달 받는다. Information to send through a computer or communication system has various forms such as numbers, letters, pictures, videos, software, etc., but is handled in binary, that is, byte units composed of bits. This is converted into a code form such as ASCII, UNICODE, and is recognized by an application program in the system, and through this, people are sent back in the form of information such as numbers, letters, and pictures.
통상적으로 메시지라 함은 사람들이 컴퓨터 또는 통신시스템을 통해 상대방에게 전달하고자 하는 정보를 말하며, 이는 시스템에서는 앞서 언급한 바와 같이 byte 등 시스템 내 메시지단위(message unit)로 다루어지고, 시스템 내에서 모든 정보는 처리 가능한 하나의 시스템 내 메시지단위(message unit)의 열로 변환된다. In general, a message refers to information that people want to deliver to a counterpart through a computer or communication system, which is treated as a message unit in the system, such as bytes, as mentioned above in the system, and all information in the system. Is converted to a column of message units in one processable system.
즉, 전달하고자 하는 메시지는 메시지단위(message unit)에 의해 표현할 수 있고 메시지 단위에 의해 표현 가능한 경우를 나열한 것을 메시지 집합 M이라 한다.That is, a message set M is a list of cases in which a message to be delivered can be expressed by a message unit and can be expressed by a message unit.
예를 들어, 메시지 단위가 bit인 경우 M = {0,1}이 되고 메시지는 00110101와 같이 메시지단위의 열로 표현될 수 있고, 메시지 단위가 byte인 경우 M = {0,1, … 255} 이고(십진수 표현으로 나타내면) 메시지는 64 68 72 82와 같이 나타낼 수 있다.For example, if the message unit is bit, M = {0,1}, and the message can be expressed as a column of message unit, such as 00110101. When the message unit is byte, M = {0,1,… 255} (expressed in decimal representation) and the message can be expressed as 64 68 72 82.
이 때 이를 수학적으로 표현하면, 메시지 집합 M은 M = {m
1,…, m
i,…, m
n} 과 같이 나타내며, M의 원소는 m
i이고, 1≤i ≤n이며, 집합 M의 원소의 갯수는 |M|= n과 같이 나타낼 수 있다.If this is expressed mathematically, the message set M is M = {m 1 ,… , m i ,… , m n }, the element of M is m i , 1 ≤ i ≤ n, and the number of elements of the set M can be expressed as | M | = n.
메시지 집합 M의 각 원소를 순서대로 나열하고 그 순서에 따라 나열된 원소의 인덱스를 집합으로 나타내면 I
M = { 1, …, i, …, n } 이 되고 이를 메시지 집합 M에 대한 인덱스 집합이라 말하며, 인덱스 집합의 i번째 원소는 I
M(i) = m
i 과 같다. If each element of message set M is listed in order and the index of the elements listed in that order is set, I M = {1,… , i,… , n} and this is called the index set for the message set M, and the i-th element of the index set is equal to I M (i) = m i .
이 때 메시지의 인덱스 집합은 I
M : I → M 과 같이 표현하고 인덱스 집합 I에서 메시지 집합 M으로 가는 사상(morphism)이 존재한다고 말한다.At this time, the index set of the message is expressed as I M : I → M, and it is said that there is a morphism from the index set I to the message set M.
순열(permutation) P = (p
1, …, p
i, …, p
n) 는 n개의 자연수(Z)로 이루어진 집합 S = {1, 2, …, n}의 permutation(순열)이라 하며, 1≤p
i≤n 이다.Permutation P = (p 1 ,…, p i ,…, p n ) is a set of n natural numbers S = {1, 2,… , n} permutation (permutation), 1≤p i ≤n.
예를 들면, 순열
와 같이 표현할 수 있고, 이는 집합 S= {1, 2, 3, 4, 5}의 permutation으로 σ : S → S 과 같이 전단사 함수(bijection)에 의해 표현되며, 즉 함수이다.For example, permutation It can be expressed as, which is a permutation of the set S = {1, 2, 3, 4, 5}, expressed by a bijection such as σ: S → S, that is, a function.
다시 말하면, σ(1)=3,σ(2)=4,…, σ(5)=1 과 같으며, 일반적으로 집합 S = {x
1,x
2,…,x
n} 의 permutation은
와 같이 표현된다. In other words, σ (1) = 3, σ (2) = 4,… , σ (5) = 1, generally set S = {x 1 , x 2 ,… The permutation of, x n } It is expressed as
순열은 함수적으로 표현하면, 도메인 X에서 코도메인 Y로 가는 전단사 함수 F : X → Y 에서 X와 Y의 대응관계를 나타내며, 집합의 의미로 표현하면, 임의의 집합의 원소에 대한 배열순서를 나타낸다.If the permutation is expressed functionally, the shear function F: X → Y from domain X to codomain Y represents the correspondence between X and Y, and in the meaning of the set, the order of the arrangement of the elements of any set Indicates.
n개의 원소로 이루어진 임의의 집합의 순열(permutation)은 n개의 숫자 또는 문자의 순열(permutation)이라고도 말할 수 있으며 앞서 언급한 메시지 집합 M에 대해서도 마찬가지로 적용된다. The permutation of any set of n elements can also be said to be a permutation of n numbers or characters, and the same applies to the aforementioned message set M.
따라서 모든 메시지는 메시지 집합 M의 순열에 의해 표현가능하다.Therefore, all messages can be expressed by the permutation of message set M.
순열(permutation)은 임의의 집합의 각 원소들의 배열에 따라 다른 순열(permutaion)이 되고, 이 모든 경우의 순열들이 모여 순열그룹(Group)을 형성한다. 즉 순열그룹(Permutaion Group)은 임의의 집합의 모든 경우의 순열(premutation)을 원소로 이루어진 집합이다.The permutation becomes a different permutaion according to the arrangement of each element of an arbitrary set, and the permutations in all of these cases gather to form a permutation group. In other words, a permutaion group is a set consisting of elements in all cases of premutation in any set.
순열그룹(permutation group ) G = {σ|σ: S → S , σ는 S = {x
1,x
2,…,x
n}의 permutation }이며, 집합 M = {1,2,…n}의 모든 순열들의 순열그룹(permutation group)은 symmetric group Sym(M)이 된다.(모든 전단사 함수는 symmetric group임)Permutation group G = {σ | σ: S → S, σ is S = {x 1 , x 2 ,… , x n } permutation}, set M = {1,2,… The permutation group of all permutations of n} becomes symmetric group Sym (M) (all shear functions are symmetric groups)
즉, M = {1,2, …,n} 이면, n개의 문자에 대한 Sym(M)은 S
n 으로 나타낸다. That is, M = {1,2,… , n}, Sym (M) for n characters is represented by S n .
순열 σ,π∈ G(순열그룹) 일 때, 그룹연산(composition of permutation)의 결과 또한 순열이 되고 결과의 순열 역시 G의 원소가 된다. 즉, 순열그룹 G는 그룹연산에 대하여 닫혀 있다.When the permutation σ, π∈ G (permutation group), the result of the composition of permutation also becomes a permutation, and the permutation of the result also becomes an element of G. In other words, permutation group G is closed for group operation.
G를 구성하는 순열(permutation)의 수는 |G| = n! 개 이다.The number of permutations that make up G is | G | = n! It's a dog.
순열연산(Group Action)은 순열그룹(permutation group) G의 각 원소(P: permutation)들이 집합(S)의 원소들을 배열하는 방법을 말하며, 일종의 함수와 같이 작용한다. 다시 말하면, 집합 S의 원소에 순열 P의 순열연산(Group Action)를 적용하면 집합 S의 원소가 순열 P에 의해 재배열되는 것을 의미한다. 즉, 집합 S의 원소 배열 순서를 바꾸는 연산을 순열연산(group action)이라고 한다. Group Action refers to how each element (P: permutation) of the permutation group G arranges the elements of the set (S) and acts as a kind of function. In other words, when applying the permutation group (Group Action) of the permutation P to the elements of the set S, it means that the elements of the set S are rearranged by the permutation P. In other words, the operation to change the order of the element array of the set S is called a group action.
(즉, 집합 S에 대해 순열 P의 방법에 의해 S의 원소를 재배열한다는 것이고 즉 S의 인덱스 집합 I
S이 바뀐다)(I.e. rearrange the elements of S by the permutation P method for set S, i.e. the index set I S of S changes)
G : Permutation Group, M : non-empty set 일 때, 집합 M에 대한 순열그룹 G의 순열연산(group action)은 아래의 3가지 성질을 만족하는 함수 f : G × M → M 이다. When G: Permutation Group, M: non-empty set, the group action of permutation group G for set M is a function f: G × M → M that satisfies the following three properties.
* 집합 M에 속하는 모든 원소 x에 대하여 f(1, x) = x (group G의 항등원은 1)* f (1, x) = x for all the elements x belonging to the set M (the identity of group G is 1)
* f(x, y) = 1을 만족하는 y = x
-1, x, y ∈ G인 x의 역원이 존재* There is an inverse of x with y = x -1 , x, y ∈ G satisfying f (x, y) = 1.
* G에 속하는 모든 permutation g, h와 M에 있는 모든 원소 x에 대하여f(g, f(h, x)) = f(gh, x) (결합법칙 성립, left multiplication)* f (g, f (h, x)) = f (gh, x) for all permutation g, h and all elements in M and x (left multiplication)
도 2에서 순열 연산의 예시를 보여준다. 2 shows an example of a permutation operation.
G의 degree 는 G를 구성하는 집합 M의 원소의 갯수 |M|이고, G의 order는 G의 원소의 갯수(cardinality)는 |G| 이다. 즉, n개의 원소로 된 집합 M에 대한 degree of group G 는 n 이고, order of group G 는 n! 이다.The degree of G is the number of elements of the set M constituting G | M |, the order of G is the number of elements of G (cardinality) is | G | to be. That is, the degree of group G for the set M of n elements is n, and the order of group G is n! to be.
b) 암호학 및 발명시스템 b) Cryptography and invention systems
PRNG(Pseudo Random Number Generator) : 난수를 흉내내기 위해 알고리즘을 통해 생성하는 난수 값을 유사난수라 하고, 이때 유사난수를 생성하는 알고리즘을 유사난수 생성기(pseudorandom number generator, PRNG)라고 한다. 이는 다음과 같은 함수 F : X → Y over (X,Y)와 같이 표현할 수 있다. 임의의 입력 값 X에 대해서 임의의 유사난수값 Y가 발생한다.PRNG (Pseudo Random Number Generator): A random number value generated through an 'algorithm' to simulate a random number is called a pseudorandom number, and an algorithm for generating the pseudorandom number is called a 'pseudorandom number generator (PRNG)'. This can be expressed as the following function F: X → Y over (X, Y). An arbitrary pseudorandom value Y occurs for any input value X.
PRF(Pseudo Random Function) : PRNG를 기반으로 유도된 함수로 임의의 입력값을 받아 항상 유사난수 수열을 발생한다.(유사난수 함수) 이는 다음과 같은 함수 F : K × X → Y over (k,X,Y)와 같이 표현한다.PRF (Pseudo Random Function): This is a function derived based on PRNG, and receives a random input value and always generates a pseudorandom sequence. (Similar random number function) This is the following function F: K × X → Y over (k, X, Y).
PRP(Pseudo Random Permutaion) : PRF와 유사한 방식으로 유사난수 수열을 생성하나 항상 같은 도메인으로 작용하는 일대일 사상이 존재하고 효율적인 역함수 D(k,X)가 존재한다. PRNG로부터 생성된 난수로부터 PRP로 부터 생성된 수열을 구별할 수 없으면 secure PRP라고 한다. 또한, 충분히 큰 X에서 정의된 secure PRP는 secure PRF이다. (유사난수 순열)PRP (Pseudo Random Permutaion): Generates a pseudorandom sequence in a similar manner to PRF, but there is always a one-to-one mapping acting in the same domain and an efficient inverse function D (k, X). If the sequence generated from PRP cannot be distinguished from random numbers generated from PRNG, it is called secure PRP. In addition, a secure PRP defined in sufficiently large X is a secure PRF. (Similar random number permutation)
이는 다음과 같은 함수 E : K × X → X over (k,X) 와 같이 표현한다.It is expressed as the following function E: K × X → X over (k, X).
TDF(Trapdoor Function) : 트랩도어 함수(trapdoor function, 비밀통로 일방향함수)는 일방향함수의 한 종류이다. 보통 일방향함수처럼 함수의 역을 구하는 것은 어렵지만, 트랩도어라고 부르는 특수한 정보가 있으면 쉽게 역을 구할 수 있는 함수이다. 트랩도어 함수를 수학적으로 정의하면 다음과 같다. 어떤 비밀값 y가 있어서, 어떤 x에 대해서 y가 없을 때는 f(x)를 구하기 어렵지만 y가 주어진다면 f(x)에서 x 값을 쉽게 찾을 수 있다면 함수 f는 트랩도어 함수이다.TDF (Trapdoor Function): The trapdoor function is a type of one-way function. In general, it is difficult to find the inverse of a function like a one-way function, but it is a function that can easily find the inverse if there is special information called trapdoor. The trapdoor function is defined mathematically as follows. Since there is some secret value y, it is difficult to find f (x) when there is no y for a certain value of x, but if you can easily find the value of x in f (x) given y, the function f is a trapdoor function.
암호(Cipher) = (G, E, D), 암호공간(cipher space)= (k, M, C) : 암호(cipher)는 암호화 및 복호화를 수행하는 알고리즘이며 암호공간(K, M, C)상에서 작용하는 일종의 함수와 같다. 암호(cipher)는 G, E, D 등 세개의 알고리즘(함수)으로 구성되어 있다. 각각은 다음과 같은 약어를 나타낸다.Cipher = (G, E, D), cipher space = (k, M, C): Cipher is an algorithm that performs encryption and decryption and cipher space (K, M, C) It's like a kind of function that works on. The cipher consists of three algorithms (functions): G, E, and D. Each represents the following abbreviation.
G : 키생성 함수G: key generation function
E : 암호화(Encryption) 함수E: Encryption function
D : 복호화(Decryption) 함수D: Decryption function
K : 키공간(Key Space)K: Key Space
M : 메시지공간(Message Space)M: Message Space
C : 암호문공간(Ciphertext Space)C: Ciphertext Space
MKG(Magic Key Generator)는 암호키생성기로 사용자가 암호화/복호화를 위해 필요한 사용자 식별 및 등록, 키생성, 배포 등을 처리하기 위한 키관리 장치를 말한다. 암호화기나 복호화기와 같은 시스템 내에 설치할 수도 있고 다른 제 3의 시스템에 설치하여 연동할 수도 있다. MKG에 대한 접속은 허용된 참여자만이 할 수 있도록 사용자 인증을 통해 안전한 정보채널을 보장한다.MKG (Magic Key Generator) is a cryptographic key generator that refers to a key management device that handles user identification and registration, key generation, distribution, etc., required for encryption / decryption. It may be installed in a system such as an encryptor or a decoder, or may be installed and interlocked with another third system. Access to MKG ensures a secure information channel through user authentication so that only allowed participants can access it.
비밀함수그룹 SPG(Secret Permutation Group)는 메시지 집합 M상의 모든 순열그룹(permutation group) G의 subset을 말하며, 이 subset을 형성하는 각 순열(permutation)들을 비밀함수후보 SPC(Secret Permutation Candidates)라 부르며, 이 때 비밀함수후보중에서 특별히 지정된 한 개의 후보를 비밀함수 SP(Secret Permutation)라 한다. 도 3에서 SPG, SP에 대한 예시를 보여준다. The secret function group SPG (Secret Permutation Group) refers to a subset of all permutation groups G on the message set M, and each permutation forming this subset is called secret function candidate SPC (Secret Permutation Candidates). At this time, one candidate specifically designated among secret function candidates is called secret function SP (Secret Permutation). 3 shows an example of SPG and SP.
II.II.
시스템 구조System structure
도 4는 발명시스템의 일 실시예를 보여주는 개념도이다. 이 시스템은 암호문을 전송하는 통신채널과 이에 연결된 두개의 단말을 포함하고 각 단말은 암복호화에 관련된 암호화키 K
e, 복호화키 K
d를 갖고 있다. 통신채널은 통상적인 전송케이블과 전송장치를 포함하고 도 4에서는 일방향 통신의 예를 보여주나 같은 방법으로 반대방향으로도 작동 가능하여 양방향통신이 가능하다.4 is a conceptual diagram showing an embodiment of the invention system. This system includes a communication channel that transmits an encrypted text and two terminals connected to it, and each terminal has an encryption key K e and a decryption key K d related to encryption and decryption. The communication channel includes an ordinary transmission cable and a transmission device, and FIG. 4 shows an example of one-way communication, but it is also possible to operate in the opposite direction in the same way to enable two-way communication.
1. 암호/복호 시스템1. Password / decryption system
도 4의 송신 및 수신의 각 단말은 도 5와 같이 암호화기(ENC), 복호화기(DEC) 그리고 암호키생성기(MKG)로 구성되어 있다. Each terminal of the transmission and reception of FIG. 4 is composed of an encoder (ENC), a decoder (DEC), and an encryption key generator (MKG) as shown in FIG. 5.
암호화기(ENC)는 도 6과 같이 메시지 입력을 처리하는 입력큐와 본 발명의 일 실시예에 따른 알고리즘을 통해 일회용 공개키를 이용하여 순열연산(Group Action)을 통해 암호문을 생성하는 GA 연산기, 그리고 생성된 암호문의 출력을 처리하는 출력큐가 있다.The encryptor (ENC) is a GA operator that generates a cipher text through a group action using an input queue for processing message input and a disposable public key through an algorithm according to an embodiment of the present invention, as shown in FIG. And there is an output queue that processes the output of the generated ciphertext.
GA 연산기는 메시지를 입력으로 암호키생성기(MKG)로 부터 송수신 단말의 대칭키(Q
AB)와 수신 단말의 공개키(G
B)를 제공받아 순열연산(GA 연산)을 통해 암호문을 생성한다. GA 연산기에서 처리하는 순열연산은 Q
AB
-1G
BQ
AB(M) = C 이다.The GA operator receives a symmetric key (Q AB ) of the transmitting / receiving terminal and the public key (G B ) of the receiving terminal from the encryption key generator (MKG) as a message input, and generates a cipher text through permutation (GA operation). The permutation operation performed by the GA operator is Q AB -1 G B Q AB (M) = C.
한편, 다른 일 실시예에서 암호복잡도에는 큰 영향은 없으나 송신단말에 입력된 메시지가 중복된 문자열을 포함하는 경우를 제거하기 위해 확산함수(diffusion function) F(x)를 XOR 연산기를 통해 전처리하고 암호화기의 메시지큐는 전처리된 메시지를 입력받아 암호문을 생성할 수 있다.On the other hand, in another embodiment, there is no significant effect on cryptographic complexity, but in order to eliminate the case where the message input to the transmitting terminal contains a duplicate string, the diffusion function F (x) is preprocessed and encrypted through the XOR operator. The group's message queue can receive pre-processed messages and generate cryptograms.
복호화기(DEC)는 도 7과 같이 암호문 입력을 처리하는 입력큐와 본 발명의 일 실시예에 따른 알고리즘을 통해 일회용개인키를 이용하여 순열연산(Group Action)을 통해 원문메시지를 복원하는 GA 연산기, 그리고 복원된 원문메시지의 출력을 처리하는 출력큐가 있다.The decoder (DEC) is a GA operator that restores the original message through group action using an input queue that processes ciphertext input and an algorithm according to an embodiment of the present invention, using a disposable private key. And, there is an output queue that processes the output of the restored original text message.
GA 연산기는 암호문을 입력으로 암호키생성기(MKG)로 부터 송수신 단말의 대칭키(Q
AB)와 수신단말의 개인키(H
B)를 제공받아 순열연산(GA 연산)을 통해 원문메시지을 복원한다. The GA operator receives the symmetric key (Q AB ) of the transmitting / receiving terminal and the private key (H B ) of the receiving terminal from the encryption key generator (MKG) as an input of the cipher text to restore the original message through permutation (GA operation).
GA 연산기에서 처리하는 순열연산은 H
BQ
ABQ
AB (C) = M 이다.The permutation operation performed by the GA operator is H B Q AB Q AB (C) = M.
한편, 다른 일 실시예에서는 송신단말에 확산함수(diffusion function)을 적용한 경우 복호화기에서 복원된 메시지를 송신단말에 적용된 동일한 확산함수(diffusion function) F(x)를 XOR 연산기를 통해 후처리하여 원문메시지를 복원할 수 있다. On the other hand, in another embodiment, when a diffusion function is applied to the transmitting terminal, the message restored by the decoder is post-processed through the XOR operator with the same diffusion function F (x) applied to the transmitting terminal. You can restore the message.
암호키생성기(MKG)는 도 8에서 보는 바와 같이 난수생성기(PRNG), 순열생성기(permutation generator), 복수의 키생성모듈들(MSK_
, MSK_
, MPK, SK, PK) 그리고 순열연산기(GA Operator) 등으로 구성된다.As shown in FIG. 8, the cryptographic key generator (MKG) is a random number generator (PRNG), a permutation generator, and a plurality of key generation modules (MSK_ , MSK_ , MPK, SK, PK), and a GA operator.
난수생성기(PRNG)는 사전에 등록된 송수신 참여자만이 알 수 있는 참여자 고유의 개인식별자(ID), device ID, 이벤트, 시간 등 복수의 매개변수(parameter)를 사용한 키유도함수 KDF(key driven function)를 통해 일회용 유사난수를 생성한다. 생성한 난수는 각각 순열생성기와 키생성모듈로 제공된다.The random number generator (PRNG) is a key driven function KDF (key driven function) using multiple parameters such as the unique personal identifier (ID), device ID, event, and time of a participant that can be known only by the pre-registered send and receive participants. ) To generate a disposable pseudorandom number. The generated random numbers are provided by a permutation generator and a key generation module, respectively.
순열생성기(permutation generator)는 난수생성기와 고유의 키유도함수(KDF)를 통해 일회용 유사난수순열(PRP)를 생성한다. 생성한 난수수열은 각 키생성모듈로 제공된다.The permutation generator generates a disposable pseudorandom number sequence (PRP) through a random number generator and a unique key induction function (KDF). The generated random number sequence is provided to each key generation module.
키생성모듈들은 수신자의 비밀함수그룹(Secret Permutation Group)을 나타내는 벡터함수인 마스터키벡터(MSK_
)모듈, 수신할 비밀함수(Secret Permutation)를 결정하는 마스터키스칼라모듈(MSK_
), 송신자 및 수신자만이 공유하는 대칭키를 생성하는 대칭키모듈(MPK), 송수신 이벤트마다 쌍으로 생성하는 공개키모듈(PK) 및 개인키모듈(SK) 등이 있다. 또한, 키생성모듈중 마스터 키모듈과 대칭키모듈들은 복수(multiple)의 고유 개인식별 정보를 매개변수로 키유도함수(KDF)를 통해 난수발생기 또는 순열생성기를 통해 매번 다른 키 값들을 생성하고 내부의 키보관소에 키를 보관하고 개인키 및 공개키 생성을 위해 개인키모듈과 공개키모듈로 생성된 키값을 배포한다. 또한 키를 요청하는 해당 단말의 암호화기와 복호화기에 배포한다.The key generation modules are the master key vector (MSK_), which is a vector function representing the recipient's Secret Permutation Group. Module, master kiss color module (MSK_) that determines the secret function to receive ), A symmetric key module (MPK) that generates a symmetric key shared only by a sender and a receiver, a public key module (PK) and a private key module (SK), which are generated in pairs for each transmission / reception event. In addition, among the key generation modules, the master key module and the symmetric key modules generate different key values each time through a random number generator or permutation generator through a key induction function (KDF) using multiple unique personal identification information as parameters. The key is stored in the key storage of and the key values generated by the private key module and public key module are distributed to generate the private key and public key. It is also distributed to the encryptor and decryptor of the corresponding terminal requesting the key.
개인키모듈은 개인키를 생성한다. 개인키는 마스터키 스칼라모듈로 부터 생성된 난수값들을 마스터키벡터모듈이 지정한 위치에 먼저 배열하고 순열생성기에서 제공된 난수수열 들을 나머지 위치에 배열하여 생성한다. The private key module generates a private key. The private key is generated by arranging random values generated from the master key scalar module at a position specified by the master key vector module, and arranging the random number sequences provided by the permutation generator at the remaining positions.
암호키생성기내의 순열연산기(GA Operator)는 암호화기 또는 복호화기의 순열연산기가 각각 암호문과 원문메시지 생성에 필요한 연산을 수행하는 것과 달리 대칭키와 개인키를 통해 공개키를 생성하는 역할을 한다. 개인키모듈 SK로 부터 생성되는 키를 H라 하고, 대칭키모듈 MPK로 부터 생성되는 키를 Q라 하고 순열연산기에서 연산되어 생성되는 공개키를 G라 하면, 순열연산기에서 연산되는 순열연산은 G = Q
-1H
-1Q
-1 이 되고, 연산결과 산출되는 공개키 G는 공개키모듈 PK로 출력되어 보관되고 해당 암호화기 또는 복호화기로 배포된다.The GA operator in the cryptographic key generator plays a role in generating the public key through the symmetric key and the private key, unlike the cryptographic or decryptor permutation operator that performs the operations required to generate the ciphertext and the original message, respectively. If the key generated from the private key module SK is called H, and the key generated from the symmetric key module MPK is called Q, and the public key generated by the permutation operator is G, the permutation calculated by the permutation operator is G. = Q -1 H -1 Q -1 , and the public key G calculated as a result of calculation is output to the public key module PK, stored, and distributed to the corresponding encryption or decryptor.
이제 도 9를 통해 암호화기의 작동에 대한 일 실시예를 살펴보고자 한다.Now, an embodiment of the operation of the encryptor will be described with reference to FIG. 9.
메시지 집합 M이 0~9의 숫자로 구성된 경우, 즉 |M| = 10일 때, 사용자 A에서 사용자 B로 4581290367의 10개의 숫자메시지를 전송하고자 한다. 도 9는 사용자 A 단말의 암호화기를 통해 암호문 5301689742가 생성되는 것을 보여준다. If the message set M consists of a number from 0 to 9, that is, | M | = 10, we want to send 10 numeric messages of 4581290367 from user A to user B. 9 shows that the ciphertext 5301689742 is generated through the encryptor of the user A terminal.
2. 암호화/복호화 방법 및 절차 2. Encryption / decryption method and procedure
본 발명의 상기 실시예에 따라 도 10에서 보여주는 방법 및 절차에 따라 순열그룹 기반의 메시지 암호화 전송방법을 구현할 수 있다.According to the embodiment of the present invention, permutation group-based message encryption transmission method may be implemented according to the method and procedure shown in FIG. 10.
실시예에 따른 시스템을 이용하여 메시지 전송을 하기 위해서는 송수신 참여자는 사전에 시스템에 개인식별 정보 등을 등록하여 허용된 참여자로 승인받아야 한다.In order to transmit a message using the system according to the embodiment, a transmitting / receiving participant must register personal identification information or the like in the system in advance and be approved as an allowed participant.
따라서 실시예에 따른 전송방법의 제 1단계는 설정(setup)단계로서 암호키생성기(MKG)에 참여객체를 식별할 수 있도록 사용자 식별인자(phone number, user id, email address etc.), 단말장치 식별인자(device id, MAC address, ip address, faceid, fingerprint etc.), 비밀함수(Secret Permutation) 생성인자 등과 같은 개인식별 정보를 등록하고 암호키생성기(MKG)는 이 정보에 따라 등록하는 객체의 식별번호, 마스터키 등을 생성한다.Therefore, the first step of the transmission method according to the embodiment is a setup step, and a user identification factor (phone number, user id, email address etc.), a terminal device to identify a participating object in an encryption key generator (MKG) Personal identification information such as identification factors (device id, MAC address, ip address, faceid, fingerprint etc.), secret permutation generator, etc. are registered, and the cryptographic key generator (MKG) registers the object Create identification numbers, master keys, etc.
마스터키는 메시지 전체 순열그룹중에서 비밀함수후보(SPC)들을 특정할 수 있는 벡터함수이며 이러한 키벡터함수 T는 (tp,tv) 벡터쌍을 이루며 T ⊂ I
M × M 이다. 마스터키 T의 tp는 설정시에 생성 또는 등록되고, 마스터키 T의 함수값 tv는 암호화 실행시에 결정되어 비밀함수후보(SPC)중에서 특정 비밀함수(SP)를 지정하고 이와 관련하여 해당 참여객체의 개인키를 생성하게 한다.The master key is a vector function that can identify secret function candidates (SPCs) from the entire permutation group of messages, and this key vector function T is a pair of (tp, tv) vectors and T ⊂ I M × M. The tp of the master key T is created or registered at the time of setting, and the function value tv of the master key T is determined at the time of encryption execution to designate a specific secret function (SP) among the secret function candidates (SPC) and related participants. Let's generate a private key.
제 2단계는 암호키생성기에서 암호화를 위한 키생성단계로 암호화와 복호화에 필요한 대칭키와 개인키 및 공개키 쌍을 생성한다. 송수신 참여객체만의 사전등록 정보를 통해 송수신 양자만이 알 수 있는 대칭키를 생성한다. 또한 설정단계에서 생성한 마스터키(함수)에 일회용 함수값을 할당하여 비밀함수(SP)를 지정하고 이와 함께 설정단계에서 사전에 등록된 개인식별 정보를 바탕으로 개인키를 생성한다. 공개키는 생성된 대칭키와 개인키의 순열연산(GA)에 의해 생성된다.The second step is a key generation step for encryption in the encryption key generator, and generates symmetric and private key and public key pairs necessary for encryption and decryption. Through the pre-registration information of only the transmitting and receiving participants, a symmetric key that only the transmitting and receiving parties can know is generated. In addition, a secret function SP is designated by assigning a one-time function value to the master key (function) generated in the setting step, and a private key is generated based on the personal identification information previously registered in the setting step. The public key is generated by permutation (GA) of the generated symmetric key and private key.
제 3단계에서는 암호문 생성을 위해 송신자가 암호키생성기를 통해 암호화 키인 수신자의 공개키를 요청하여 얻는다. 대칭키는 각 송수신 단말은 2단계를 통해 이미 보유하고 있다. 이 때 해당 참여객체들의 키들은 제 2단계인 키생성단계에서 이미 생성되어 있으므로 쉽게 획득가능하다. 수신자의 공개키와 이미 갖고 있는 대칭키를 순열연산기를 통해 연산하여 암호문을 생성한다. 이 과정을 수학적으로 표현하면 다음과 같다.In the third step, the sender requests and obtains the public key of the receiver, which is the encryption key, through the encryption key generator to generate the encrypted text. The symmetric key is already possessed by each transmitting and receiving terminal in two steps. At this time, the keys of the participating objects are already generated in the second key generation step, and thus can be easily obtained. A cryptographic text is generated by calculating the public key of the receiver and the symmetric key already possessed through the permutation operator. The process is expressed mathematically as follows.
메시지 M = (m
1 … m
n), 키 K = (k
1 … k
n), 암호문(ciphertext) C = (c
1 … c
n)는 각각 메시지집합 M={m
1 … m
n} 상에서의 순열로 순열그룹 G의 원소이며, E : M ×K → C, M, K, C ∈ G 와 같으며, 암호화키 K
e는 (MPK, PK) 쌍이고 순열함수쌍 (Q, G)로 나타낸다. 즉 K
e=(Q, G) 이다. 암호화 함수 E는 K
e를 구성하는 순열함수 Q, G의 순열연산(Group Action)인 left multiplication에 의해 E=Q
-1GQ 와 같이 나타낼 수 있다. 따라서 E(M, K
e) = Q
-1GQ(M) = C 와 같다.The message M = (m 1 ... m n ), the key K = (k 1 ... k n ), and the ciphertext C = (c 1 ... c n ), respectively, are the message sets M = {m 1 ... Permutation on m n }, an element of permutation group G, E: M × K → C, M, K, C ∈ G, encryption key K e is (MPK, PK) pair, permutation function pair (Q , G). That is, K e = (Q, G). The encryption function E can be expressed as E = Q -1 GQ by the left multiplication, which is the group action of the permutation functions Q and G constituting K e . Therefore, E (M, K e ) = Q -1 GQ (M) = C.
D = d
1d
2 …d
k: 메시지 시퀀스 D는 d
i가 메시지 집합 M의 원소로 구성된 연속된 메시지 문자열이라 할 때, 결과 암호문열이 x = x
1x
2 … x
k 라고 하면, D = d 1 d 2 … d k : Message sequence D is when d i is a continuous message string composed of elements of message set M. The resulting cipher string is x = x 1 x 2 … Speaking of x k ,
이 때 E(d
i, K
e) = Q
-1GQM((d
i)) = x
i이다. R = Q
-1라 하면,At this time, E (d i , K e ) = Q -1 GQM ((d i )) = x i . If R = Q -1 ,
와 같으며 E는 left multiplication에 의해 계산된다. And E is calculated by left multiplication.
제 4단계에는 수신된 암호문을 복원하기 위해 수신자가 암호키생성기를 통해 암호화키인 수신자의 개인키를 얻는다. 대칭키는 각 송수신 단말은 2단계를 통해 이미 보유하고 있다. 이 때 해당 참여객체들의 키들은 제 2단계인 키생성단계에서 이미 생성되어 있으므로 쉽게 획득가능하다. 수신자의 개인키와 이미 갖고 있는 대칭키를 순열연산기를 통해 연산하여 원문메시지를 복원한다. 이 과정을 수학적으로 표현하면 다음과 같다.In the fourth step, in order to restore the received ciphertext, the receiver obtains the recipient's private key which is the encryption key through the encryption key generator. The symmetric key is already possessed by each transmitting and receiving terminal in two steps. At this time, the keys of the participating objects are already generated in the second key generation step, and thus can be easily obtained. The original message is restored by calculating the recipient's private key and the symmetric key already possessed through the permutation operator. The process is expressed mathematically as follows.
메시지 M = (m
1 … m
n), 키 K = (k
1 … k
n), 암호문(ciphertext) C = (c
1 …c
n)는 각각 메시지집합 M={m
1 … m
n} 상에서의 순열로 순열그룹 G의 원소이며, D : C ×K → M, M, K, C ∈ G 와 같으며, 복호화키 K
d는 (MPK, SK) 쌍이고 순열함수쌍 (Q, H)로 나타낸다. 즉 K
d=(Q, H) 이다.The message M = (m 1 ... m n ), the key K = (k 1 ... k n ), the ciphertext C = (c 1 ... c n ), respectively, the message set M = {m 1 ... Permutation on m n }, an element of permutation group G, D: C × K → M, M, K, C ∈ G, decryption key K d is (MPK, SK) pair and permutation function pair (Q , H). That is, K d = (Q, H).
복호화 함수 D는 K
d를 구성하는 순열 Q, H의 순열연산(Group Action)인 left multiplication에 의해 D=HQQ 와 같이 나타낼 수 있다. 따라서 D(C, K
d) = HQQ(C) = M 가 된다.Decryption function D may be a multiplication by a permutation left Q, permutation operations (Action Group) of H constituting the K d expressed by D = HQQ. Therefore, D (C, K d ) = HQQ (C) = M.
X = x
1x
2 …x
k 암호문 시퀀스 X는 x
i가 암호문 집합 C의 원소로 구성된 연속된 암호문 문자열이라 하고, D=d
1d
2…d
k : 메시지 시퀀스 D는 d
i가 메시지 집합 M의 원소로 구성된 연속된 메시지 문자열이라 할 때 D(x
i, K
d) = HQQ(C(x
i)) = d
i 이다. X = x 1 x 2 … x k ciphertext sequence X, where x i is a sequence of ciphertext strings consisting of elements of ciphertext set C, D = d 1 d 2… d k: is a message sequence D i d is the D (x i, K d) = HQQ (C (x i)) = d i to the message as a string consisting of a continuous element of the set of messages M.
와 같으며 D는 left multiplication에 의해 계산된다. And D is calculated by left multiplication.
3. 메시지 암호화/복호화 전송방법 실시예3. Message encryption / decryption transmission method embodiment
도 11내지 도 14에서는 본 발명의 일 실시예로 메시지 암호화 전송방법의 단계별 구현에 대한 구체적인 예시를 보여준다.11 to 14 show specific examples of the step-by-step implementation of the message encryption transmission method according to an embodiment of the present invention.
예시는 단말 A에서 단말 B로 0~9의 숫자를 원소로 하는 메시지 집합에서 숫자 10개로 구성된 숫자열 “4581290367”을 메시지로 입력받아 암호문 생성하여 전송하고 이를 수신하여 원문 메시지를 복원하는 과정을 수행 단계별로 구체적으로 도 11에서 도 14를 통해 보여준다.In the example, the process of restoring the original text message by receiving and receiving the numeric string “4581290367” consisting of 10 numbers from the message set using the numbers from 0 to 9 as an element from the terminal A to the terminal B is generated as a message and receiving it. Step by step, specifically shown in Figure 11 through 14.
도 11에서는 1단계 설정단계에서 송수신을 위해 암호키생성기에 송신단말 A와 수신단말 B의 ID 등록과 이를 통해 마스터개인키 벡터함수 {(2, v
1), (4, v
2), (6, v
3), (8, v
4)}가 생성되고, 마스터공개키 생성함수가 설정되는 것을 보여준다.In FIG. 11, the ID of the transmitting terminal A and the receiving terminal B is registered in the encryption key generator for transmission and reception in the setting step 1 and the master private key vector functions {(2, v 1 ), (4, v 2 ), (6) , v 3 ), (8, v 4 )} are generated, and the master public key generation function is set.
도 12에서는 2단계 키생성단계로 마스터키 벡터함수의 벡터값 할당과 이를 통해 어떻게 개인키가 생성되는지 보여준다. 또한 순열생성기를 통해 대칭키 생성함수에 함수값이 어떻게 할당되는 지와 이와 함께 개인키와 순열연산기를 통해 공개키가 생성되는 것을 보여준다. Fig. 12 shows the vector key allocation of the master key vector function as a two-step key generation step and how the private key is generated. It also shows how function values are assigned to symmetric key generation functions through permutation generators and public keys are generated through private and permutation operators.
도 13에서는 3단계 암호문 생성단계로 1, 2단계를 통해 생성된 암호화키 MPK, SK, PK를 통해 순열연산기(GA Operator)에서 순열연산을 통해 어떻게 연산이 이루어지고 암호문이 어떻게 생성되는 지 구체적인 예시를 통해 보여준다.In FIG. 13, a specific example of how the operation is performed and the ciphertext is generated through the permutation operation in the GA operator through the encryption keys MPK, SK, and PK generated through the first and second steps in the third step ciphertext generation step. Shows through.
도 14에서는 4단계 암호문 복호화 단계로 1, 2단계를 통해 생성된 암호화키 MPK, SK, PK를 통해 순열연산기(GA Operator)에서 순열연산을 통해 어떻게 연산이 이루어지고 수신된 암호문이 어떻게 원문메시지로 복호화되어 복원되는 지 구체적인 예시를 통해 보여준다.In FIG. 14, the encryption step generated in the first and second stages is the encryption step MPK, SK, and PK in the fourth step ciphertext decryption step, and how the operation is performed through the permutation operation in the GA operator and how the received ciphertext is converted to the original message. Decryption and restoration are shown through specific examples.
4. 서명/검증 시스템 4. Signature / verification system
전자서명 시스템의 각 송수신 단말은 기능적으로는 앞서 일 실시예에서 설명한 암호화기나 복호화기와 동일한 구조로 동일하게 작동하지만 다른 키와 다른 입력을 사용하여 작동하는 점이 다르다. 서명/검증 시스템의 송신 및 수신의 각 단말은 도 15와 같이 서명기(SIGN), 검증기(VERIFY) 그리고 암호키생성기(MKG)로 구성되어 있다. Each transmitting / receiving terminal of the electronic signature system is functionally the same in the same structure as the encryptor or decoder described in the previous embodiment, but differs in that it operates using different keys and different inputs. Each terminal of the transmission / reception of the signature / verification system includes a signer (SIGN), a verifier (VERIFY), and an encryption key generator (MKG) as shown in FIG. 15.
서명기(SIGN)는 도 16과 같이 메시지 입력을 처리하는 입력큐와 본 발명의 일 실시예에 따른 알고리즘을 통해 일회용개인키를 이용하여 순열연산(Group Action)을 통해 서명문(signature)을 생성하는 GA 연산기, 그리고 생성된 서명문(signature)의 출력을 처리하는 출력큐가 있다.The signer (SIGN) generates a signature through a permutation (Group Action) using a disposable private key through an input queue that processes message input as shown in FIG. 16 and an algorithm according to an embodiment of the present invention. There is a GA operator, and an output queue that processes the output of the generated signature.
GA 연산기는 메시지를 입력으로 암호키생성기(MKG)로 부터 송수신 단말의 대칭키(Q
AB)와 송신단말의 개인키(H
A)를 제공받아 순열연산(GA 연산)을 통해 서명문(signature)을 생성한다. GA 연산기에서 처리하는 순열연산은 Q
AB
-1H
AQ
AB(M) = M
s 이다.The GA operator receives the symmetric key (Q AB ) of the transmitting / receiving terminal and the private key (H A ) of the transmitting terminal from the cryptographic key generator (MKG) as a message input, and then signs the signature through permutation (GA operation). Produces The permutation operation performed by the GA operator is Q AB -1 H A Q AB (M) = M s .
한편, 다른 일 실시예에서 암호복잡도에는 큰 영향은 없으나 송신단말에 입력된 메시지가 중복된 문자열을 포함하는 경우를 제거하기 위해 확산함수(diffusion function) F(x)를 XOR 연산기를 통해 전처리하고 서명기의 메시지큐는 전처리된 메시지를 입력받아 서명문을 생성할 수 있다. On the other hand, in another embodiment, there is no significant effect on cryptographic complexity, but pre-processing and signing the diffusion function F (x) through the XOR operator to remove the case where the message input to the transmitting terminal contains a duplicate string. The group's message queue can receive a pre-processed message and generate a signature.
검증기(VERIFY)는 도 17과 같이 서명문(signature)을 입력받아 처리하는 입력큐와 본 발명의 일 실시예에 따른 알고리즘을 통해 일회용공개키를 이용하여 순열연산(Group Action)을 통해 서명문을 검증하여 수락된 원문메시지를 생성하는 GA 연산기, 그리고 검증/수락된 원문메시지의 출력을 처리하는 출력큐가 있다.As shown in FIG. 17, the verifier verifies a signature statement through a group action by using a disposable public key through an input queue for receiving and processing a signature and an algorithm according to an embodiment of the present invention. There is a GA operator that generates the original text message that has been verified and accepted, and an output queue that processes the output of the verified / accepted original message.
GA 연산기는 서명문를 입력으로 암호키생성기(MKG)로 부터 송수신 단말의 대칭키(Q
AB)와 송신단말의 공개키(G
A)를 제공받아 순열연산(GA 연산)을 통해 서명문을 검증하고 수락/거절여부를 확인하여 원문메시지를 검증한다. The GA operator receives the symmetric key (Q AB ) of the transmitting / receiving terminal and the public key (G A ) of the transmitting terminal from the cryptographic key generator (MKG) as the input of the signature, and verifies the signature through permutation (GA operation). Check the acceptance / rejection and verify the original message.
GA 연산기에서 처리하는 순열연산은 G
AQ
ABQ
AB(M
s) = M 이다.The permutation operation performed by the GA operator is G A Q AB Q AB (M s ) = M.
한편, 다른 일 실시예에서는 송신단말에 확산함수(diffusion function)을 적용한 경우 검증기에서 검증된 메시지를 송신단말에 적용된 동일한 확산함수(diffusion function) F(x)를 XOR 연산기를 통해 후처리하여 원문메시지를 복원할 수 있다. On the other hand, in another embodiment, when a diffusion function is applied to the transmitting terminal, the message verified by the verifier is post-processed through the XOR operator with the same diffusion function F (x) applied to the transmitting terminal. Can be restored.
도 15의 서명/검증시스템에 나타나는 암호키생성기(MKG)는 도 8에서 보는 바와 같이 난수생성기(PRNG), 순열생성기(permutation generator), 복수의 키생성모듈들(MSK_
, MSK_
, MPK, SK, PK) 그리고 순열연산기(GA Operator) 등으로 암호화기나 복호화기에서와 같은 구조와 기능을 제공하고 동일하게 작동한다.The cryptographic key generator (MKG) shown in the signature / verification system of FIG. 15 includes a random number generator (PRNG), a permutation generator, and a plurality of key generation modules (MSK_) as shown in FIG. , MSK_ , MPK, SK, PK) and permutation operators (GA Operators) that provide the same structure and function as in an encryptor or decoder, and work the same.
5. 서명/검증 방법 및 절차5. Signature / verification method and procedure
본 발명의 상기 실시예에 따라 도 18에서 보여주는 방법 및 절차에 따라 순열그룹 기반의 메시지 암복호화 알고리즘을 이용하여 서명/검증 방법을 수행할 수 있다.According to the embodiment of the present invention, a signature / verification method may be performed using a permutation group-based message encryption / decryption algorithm according to the method and procedure shown in FIG. 18.
도 18의 일 실시예에 따른 메시지에 대한 서명 및 검증 방법은 4단계의 절차에 의해 수행될 수 있으며, 제 1단계 송수신 참여객체에 대한 등록 및 설정 방법과 제 2단계 키생성 방법 및 절차는 상기 암복호화 방법의 일 실시예에서 설명한 방법과 절차와 동일하게 수행한다.The method of signing and verifying a message according to an embodiment of FIG. 18 may be performed by a procedure of 4 steps, and a method of registering and setting a 1st step sending / receiving participating object and a 2nd step key generation method and procedure are as described above. It performs the same method and procedure described in one embodiment of the encryption / decryption method.
제 3단계에서는 서명문 생성을 위해 송신자가 암호키생성기를 통해 서명키인 송신자의 개인키를 요청하여 얻는다. 대칭키는 각 송수신 단말은 2단계를 통해 이미 보유하고 있다. 이 때 해당 참여객체들의 키들은 제 2단계인 키생성단계에서 이미 생성되어 있으므로 쉽게 획득가능하다. 송신자의 개인키와 이미 갖고 있는 대칭키를 순열연산기를 통해 연산하여 서명문을 생성한다. 이 과정을 수학적으로 표현하면 다음과 같다.In the third step, the sender requests and obtains the private key of the sender, which is the signature key, through the encryption key generator to generate the signature. The symmetric key is already possessed by each transmitting and receiving terminal in two steps. At this time, the keys of the participating objects are already generated in the second key generation step, and thus can be easily obtained. The sender's private key and the already symmetric key are computed through the permutation operator to generate a signature. The process is expressed mathematically as follows.
메시지 M = (m
1 … m
n), 키 K = (k
1 … k
n), 서명문(signature) M
s = (s
1 … s
n) 는 각각 메시지집합 M={m
1 … m
n} 상에서의 순열로 순열그룹 G의 원소이며, S : M ×K → S, M,K,S ∈ G 와 같으며, 서명키 K
s는 (MPK, SK) 쌍이고 순열함수쌍 (Q, H)로 나타낸다. 즉 K
s=(Q, H) 이다. 서명 함수 S는 K
s를 구성하는 순열함수 Q, H의 순열연산(Group Action)인 left multiplication에 의해 S=Q
-1HQ 와 같이 나타낼 수 있다. 따라서 S(M, K
S) = Q
-1HQ(M) = M
s 와 같다.The message M = (m 1 ... m n ), the key K = (k 1 ... k n ), and the signature M s = (s 1 ... s n ) are each a message set M = {m 1 ... Permutation on m n }, an element of permutation group G, S: M × K → S, M, K, S ∈ G, signature key K s is (MPK, SK) pair and permutation function pair (Q , H). That is, K s = (Q, H). The signature function S can be expressed as S = Q -1 HQ by left multiplication, which is the permutation function (Group Action) of the permutation functions Q and H constituting K s . Therefore, S (M, K S ) = Q -1 HQ (M) = M s .
D = d
1d
2 …d
k: 메시지 시퀀스 D는 d
i가 메시지 집합 M의 원소로 구성된 연속된 메시지 문자열이라 할 때, 결과 서명문열이 x = x
1x
2 …x
k 라고 하면, D = d 1 d 2 … d k : message sequence D is when d i is a continuous message string composed of elements of message set M, the resulting signature string is x = x 1 x 2 … Speaking of x k ,
이 때 S=(d
i, K
s) = Q
-1HQM((d
i)) = x
i이다. R=Q
-1라 하면,At this time, S = (d i , K s ) = Q -1 HQM ((d i )) = x i . If R = Q -1 ,
와 같으며 S는 left multiplication에 의해 계산된다. And S is calculated by left multiplication.
제 4단계에는 수신된 서명문을 검증하기 위해 수신자가 암호키생성기를 통해 검증키인 송신자의 일회용공개키를 얻는다. 대칭키는 각 송수신 단말은 2단계를 통해 이미 보유하고 있다. 이 때 해당 참여객체들의 키들은 제 2단계인 키생성단계에서 이미 생성되어 있으므로 쉽게 획득가능하다. 송신자의 공개키와 이미 갖고 있는 대칭키를 순열연산기를 통해 연산하여 서명문을 검증하고 검증된 원문메시지를 수락 또는 거절한다. 이 과정을 수학적으로 표현하면 다음과 같다.In the fourth step, in order to verify the received signature, the recipient obtains the disposable public key of the sender, which is the verification key through the encryption key generator. The symmetric key is already possessed by each transmitting and receiving terminal in two steps. At this time, the keys of the participating objects are already generated in the second key generation step, and thus can be easily obtained. The public key of the sender and the symmetric key already possessed are calculated through the permutation operator to verify the signature and accept or reject the verified original message. The process is expressed mathematically as follows.
메시지 M = (m
1 … m
n), 키 K = (k
1 … k
n), 서명문(signature) M
s = (s1 … s
n)는 각각 메시지집합 M={m
1 … m
n} 상에서의 순열로 순열그룹 G의 원소이며, V : S ×K → S, M, K, S ∈ G 와 같으며, 검증키 K
v는 (MPK, PK) 쌍이고 순열함수쌍 (Q, G)로 나타낸다. 즉 K
v=(Q, V) 이다.The message M = (m 1 ... m n ), the key K = (k 1 ... k n ), and the signature M s = (s1 ... s n ) are each a message set M = {m 1 ... Permutation on m n }, an element of permutation group G, V: S × K → S, M, K, S ∈ G, verification key K v is (MPK, PK) pair and permutation function pair (Q , G). That is, K v = (Q, V).
검증 함수 V는 K
v를 구성하는 순열 Q, G의 순열연산(Group Action)인 left multiplication에 의해 V=GQQ 와 같이 나타낼 수 있다. 따라서 V(S, K
v) = GQQ(M
s) = M 가 된다.The verification function V can be expressed as V = GQQ by the left multiplication, which is the permutation Q (group action) of the permutations Q and G constituting K v . Therefore, V (S, K v ) = GQQ (M s ) = M.
x = x
1x
2 …x
k 서명문 시퀀스 X는 x
i가 서명문 집합 M
s의 원소로 구성된 연속된 서명문 문자열이라 하고 결과 메시지 문자열이 D=d
1d
2…d
k 라 할 때 V(x
i, K
v) = GQQ(M
s(x
i)) = d
i 이다. x = x 1 x 2 … x k The signature sequence X is that x i is a sequence of signature strings consisting of elements of the signature set M s , and the resulting message string is D = d 1 d 2 … Let d k be V (x i , K v ) = GQQ (M s (x i )) = d i .
와 같으며 E는 left multiplication에 의해 계산된다. And E is calculated by left multiplication.
6. 메시지 서명/검증 전송 방법 예시6. Message signing / verification transmission method example
도 19 내지 도 22에서는 본 발명의 일 실시예로 메시지 서명문 전송방법의 단계별 구현에 대한 구체적인 예시를 보여준다.19 to 22 show a specific example of a step-by-step implementation of a method for transmitting a message signature as an embodiment of the present invention.
예시는 단말 A에서 단말 B로 0~9의 숫자를 원소로 하는 메시지 집합에서 숫자 10개로 구성된 숫자열 “4581290367”을 메시지로 입력받아 서명문 생성하여 전송하고 이를 수신하여 원문 메시지를 검증하는 과정을 수행 단계별로 구체적으로 도 19에서 도 22을 통해 보여준다.An example is a process of verifying an original message by receiving a message from a set of messages with numbers from 0 to 9 as an element from terminal A to terminal B and generating a signature by sending a number string of “4581290367” as a message. It is shown through Fig. 19 to Fig. 22 specifically for each step.
도 19에서는 1단계 설정단계에서 송수신을 위해 암호키생성기에 송신단말 A와 수신단말 B의 ID 등록과 이를 통해 마스터키 벡터함수 {(1, v
1), (3, v
2), (5, v
3), (7, v
4)}가 생성되고, 대칭키 생성함수가 설정되는 것을 보여준다.In FIG. 19, the ID registration of the transmitting terminal A and the receiving terminal B to the encryption key generator for transmission and reception in the first stage setting step and the master key vector functions {(1, v 1 ), (3, v 2 ), (5, v 3 ), (7, v 4 )} are generated, and the symmetric key generation function is set.
도 20에서는 2단계 키생성단계로 마스터키 벡터함수의 벡터값 할당과 이를 통해 어떻게 일회용개인키가 생성되는지 보여준다. 또한 순열생성기를 통해 대칭키 생성함수에 함수값이 어떻게 할당되는 지와 이와 함께 개인키와 순열연산기를 통해 공개키가 생성되는 것을 보여준다. In FIG. 20, a vector value allocation of a master key vector function as a two-step key generation step, and shows how a single-use private key is generated through this. It also shows how function values are assigned to symmetric key generation functions through permutation generators and public keys are generated through private and permutation operators.
도 21에서는 3단계 서명문 생성단계로 1, 2단계를 통해 생성된 암호화키 MPK, SK, PK를 통해 순열연산기(GA Operator)에서 순열연산을 통해 어떻게 연산이 이루어지고 서명문이 어떻게 생성되는 지 구체적인 예시를 통해 보여준다.In FIG. 21, the three-step signature statement generation step is an encryption key generated through the first and second steps MPK, SK, and PK, and how the operation is performed through the permutation operation in the GA operator and the signature statement is generated. Show through specific examples.
도 22에서는 4단계 검증 메시지 수락/거절 단계로 1, 2단계를 통해 생성된 암호화키 MPK, SK, PK를 통해 순열연산기(GA Operator)에서 순열연산을 통해 어떻게 연산이 이루어지고 수신된 서명문이 어떻게 원문메시지로 검증되고 수락/거절되는 지 구체적인 예시를 통해 보여준다.In FIG. 22, the operation is performed and the received signature statement is received through the permutation operation in the GA operator through the encryption keys MPK, SK, and PK generated through the 1st and 2nd steps as the acceptance / rejection step of the 4-step verification message. It shows how to be verified and accepted / rejected by the original message through specific examples.
7. 메시지의 서명/검증을 포함한 암호화/복호화 시스템7. Encryption / decryption system including message signing / verification
전자서명 및 검증을 제공하는 암호시스템에서의 각 송수신 단말은 도 5과 같이 암호화기(ENC), 복호화기(DEC) 그리고 암호키생성기(MKG) 등 동일한 구조를 가지나, 암호화기(ENC)와 복호화기(DEC)는 각각 도 23과 도 24와 같이 서명기와 검증기를 포함하도록 변경될 수 있다. Each transmission / reception terminal in the encryption system that provides electronic signature and verification has the same structure as the encryptor (ENC), the decoder (DEC), and the encryption key generator (MKG), as shown in FIG. 5, but the encryption (ENC) and decryption The DEC may be changed to include a signer and a verifier as shown in FIGS. 23 and 24, respectively.
여기에서 암호화기(ENC)는 도 23에서 보는 바와 같이 도 6의 암호화기에 도 25의 서명기를 결합한 구조로 메시지 입력을 처리하는 입력큐와 암호문 생성용 GA연산기와 서명문 생성용 GA 연산기 등 2개의 다른 GA연산기가 포함되고 암호문 생성용 GA연산기는 입력큐로부터 메시지를 전달받고 서명문 생성용 GA연산기로 부터 서명문을 전달받아 도 25의 예시와 같이 (메시지+서명문) 에 대하여 순열연산을 수행하여 암호문을 생성한다.Here, as shown in FIG. 23, the encryptor ENC has two structures, such as an input queue for processing message input and a GA operator for generating a cipher text and a GA operator for generating a signature, with a structure in which the signer of FIG. 25 is combined with the encryptor of FIG. Another GA operator is included, and the GA operator for generating a cipher text receives a message from an input queue and receives a signature from the GA operator for generating a signature text, and performs permutation on (Message + Signature) as in the example of FIG. To create a ciphertext.
한편 복호화기(DEC)는 도 24에서 보는 바와 같이 도 6의 복호화기에 도 27의 검증기를 결합한 구조로 암호문 입력을 처리하는 입력큐와 메시지 복원용 (복호화용) GA연산기와 서명문 검증용 GA 연산기 등 2개의 다른 GA연산기가 포함되고 메시지 복원용(복호화용) GA연산기는 입력큐로부터 암호문을 전달받아 복호화하여 (메시지+서명문)을 복원하고 여기에서 서명문은 검증용 GA연산기로 전달하고 검증용 GA연산기는 도 27의 예시와 같이 검증된 메시지를 생성한다. 각각 다른 두개의 GA연산기로 부터 출력된 메시지는 AND 연산을 통해 메시지 수락 또는 거절 여부를 결정한다.On the other hand, as shown in FIG. 24, the decoder DEC combines the decrypter of FIG. 6 with the verifier of FIG. 27 to input queues for processing cipher text input and GA operators for message recovery (for decryption) and GA operators for signature verification. Two other GA operators are included, and for message restoration (for decryption), the GA operator receives and decrypts the encrypted text from the input queue to restore (message + signature), where the signature is delivered to the verified GA operator for verification. For the GA operator, a verified message is generated as illustrated in FIG. 27. The message output from two different GA operators determines whether to accept or reject the message through the AND operation.
8. 서명된 메시지의 암호화 전송 및 복호화/검증 방법8. Encryption transmission and decryption / verification method of signed message
본 발명의 일 실시예에 따라 순열그룹 기반의 공개키를 이용하여 서명된 메시지에 대한 암호화 전송방법을 도 26과 같이 구현할 수 있다.According to an embodiment of the present invention, an encryption transmission method for a message signed using a permutation group-based public key may be implemented as shown in FIG. 26.
도 26의 일 실시예에 따른 서명된 메시지에 암호화 전송방법은 6단계의 절차에 의해 수행될 수 있으며, 제 1단계 송수신 참여객체에 대한 등록 및 설정 방법과 제 2단계 키생성 방법 및 절차는 상기 도 10의 암복호화 방법의 일 실시예에서 설명한 방법과 절차와 동일하게 수행한다.The method for encrypting and transmitting an encrypted message to a signed message according to the embodiment of FIG. 26 may be performed by a six-step procedure, and the first and second registration and setup methods and the second and second key generation methods and procedures are described above. The method and procedure described in one embodiment of the encryption / decryption method of FIG. 10 are performed.
제 3단계의 서명문 생성 방법 및 절차는 도 18의 메시지 서명/검증 방법에서와 같다.The method and procedure for generating the signature in the third step are the same as in the message signing / verifying method in FIG. 18.
제 4단계는 도 25의 예시와 같이 전송하고자 하는 메시지와 제 3단계에서 생성된 서명문을 결합하여 수신자의 공개키로 (메시지+서명문)을 암호화한다.In the fourth step, as shown in the example of FIG. 25, the message to be transmitted is combined with the signature generated in the third step to encrypt (message + signature) with the recipient's public key.
즉, E(M’, K
e) = E((M+M
s), K
e) = Q
AB
-1G
BQ
AB(M+M
s) = C’ (K
e는 수신자 B의 공개키(G
B)) 제 5단계는 수신된 암호문 M'를 도 27의 예시와 같이 복호화하여 M+M
s를 복원한다.That is, E (M ', K e ) = E ((M + M s ), K e ) = Q AB -1 G B Q AB (M + M s ) = C' (K e is the public key of recipient B (G B )) The fifth step restores M + M s by decrypting the received cipher text M 'as illustrated in FIG. 27.
즉, D(C’, K
d) = H
BQ
ABQ
AB(C') = M’ (K
d는 수신자 B의 개인키(H
B)), M’=M+M
s That is, D (C ', K d ) = H B Q AB Q AB (C') = M '(K d is the recipient B's private key (H B )), M' = M + M s
제 6단계는 서명문 M
s를 V(M
s, Kv) = Q
AB
-1G
AQ
AB(M
s) = M” (K
v는 송신자 A의 공개키(G
A)) 과 같이 검증하여 검증된 메시지 M”을 얻고 5단계에서 복원한 원문메시지 M과 검증된 메시지 M”이 일치하는 지 여부를 확인하여 메시지를 수락 또는 거절할 지 결정한다. 이 서명된 메시지 전송방법을 통해 메시지의 위조 또는 변조 여부를 판단하고 위변조되지 않은 메시지만 수신하여 무결성을 보장할 수 있다. 또한 서명은 서명한 참여자의 유일하게 한번 생성되는 개인키를 사용하므로 서명한 참여자를 제외한 누구도 생성할 수 없다. 따라서 일 실시예에 따라 서명한 메시지 전송방법을 통해 전송한 메시지에 대하여는 송신자는 메시지 송신을 부인(repudiation)할 수 없다.The sixth step verifies the signature M s as V (M s , Kv) = Q AB -1 G A Q AB (M s ) = M ”(K v is the public key of the sender A (G A )) Obtain the verified message M ”and check whether the original message M restored in step 5 matches the verified message M” to decide whether to accept or reject the message. Through this signed message transmission method, it is possible to determine whether a message is forged or falsified, and receive only unfalsified messages to ensure integrity. In addition, the signature uses the private key that is generated only once by the signed participant, so no one can create it except the signed participant. Therefore, a sender cannot deny transmission of a message for a message transmitted through a signed message transmission method according to an embodiment.
9. 기타 구현 및 적용 예시 9. Other implementation and application examples
암호화에 사용하는 암호화 키는 Digit, Character, Images 등 메시지 스페이스를 구성하는 요소를 활용한다. 예를 들어, 문자를 암호화하기 위해서 확장 아스키코드(extended ASCII Code)를 암호화 키 스페이스로 확장해 256 byte 암호화 시스템을 구현하는 것이 가능하다. The encryption key used for encryption utilizes elements that make up the message space, such as digits, characters, and images. For example, it is possible to implement a 256 byte encryption system by extending the extended ASCII code with an encryption key space to encrypt characters.
본 발명 시스템은 2단 구조(2 tier) 또는 3단 구조(3 tier)로 구현될 수 있다.The system of the present invention can be implemented in a two-tier structure (2 tier) or a three-tier structure (3 tier).
2단 구조(2 Tier)에서는 암호화 메시지를 전송하는 전송자(Sender) 와 암호화 메시지를 수신하여 복호화하는 수신자(Receiver) 간에 암호화 통신 중간 매개체를 거치지 않고 통신하는 구조에 적용할 수도 있다.In the two-tier structure (2 Tier), it can be applied to a structure that communicates without going through an intermediate medium of encrypted communication between a sender transmitting an encrypted message and a receiver receiving and decrypting the encrypted message.
암호화 메시지를 전송하고 수령하는 전송자(Sender)와 수신자(Receiver) 간의 역할이 일방적이며 고정적이고 변동되지 않을 경우인 단방향(One-way) 통신 방식과 암호화 메시지를 상호 전송/수령하는 경우 양방향(two way) 통신이 모두 구현 가능하며 이경우, 전송자(Sender)와 수신자(Reciever) 모두 암호화 수행객체와 복호화 수행객체 모두가 탑재될 수 있다.The one-way communication method in which the role between the sender and the receiver that transmits and receives the encrypted message is one-sided, fixed and unchanged, and the two-way (two way) when mutually transmitting / receiving the encrypted message ) All communication can be implemented. In this case, both the sender and the receiver can perform both encryption and decryption objects.
이러한 시스템의 구현 예시는 1대1통신, 또는 피어투피어 통신(Peer to Peer Communication), 일대다수 통신 방식(One to Many Communication) 등에도 적용될 수 있다. An example of implementation of such a system may be applied to one-to-one communication, peer-to-peer communication, and one-to-many communication.
3단 구조(3Tier)에서는 암호화 메시지를 전송하는 전송자(Sender)와 암호화 메시지 메시지 또는 평문을 수신하는 수신자(Reciever) 간에 암/복호화 기능 수행 또는 다른 통신 프로토콜로의 변환 등과 같은 타시스템과의 중계 또는연동 기능을 수행하는 게이트웨이(Gateway) 를 통해 통신하는 구조에 적용할 수도 있다.In the three-tier structure (3Tier), relaying with other systems, such as performing encryption / decryption functions or converting to other communication protocols, or the like, between a sender transmitting an encrypted message and a receiver receiving an encrypted message or plain text, or It can also be applied to a structure that communicates through a gateway that performs interworking functions.
이때 게이트웨이(Gateway)는 송신자(Sender) 가 지정한 수신자(Receiver)에게 메시지를 전송할 때 자체 복호화를 실행하여 평문 자체를 전송하거나, 이를 수신자(Receiver) 가 원하는 다른 암호화 방식 또는 다른 통신 프로토콜 형식으로의 변환 작업을 통해 변경된 형식의 메시지를 전송하거나, 송신자(Sender)가 보낸 암호화된 메시지 자체를 수신자(Receiver)에게 전송할 수도 있다. At this time, when the gateway sends a message to a receiver designated by the sender, it decrypts itself and transmits the plaintext itself, or converts it into another encryption method or other communication protocol format that the receiver wants. It is possible to send a message in a changed format through a task, or to send an encrypted message sent by the sender to the receiver.
이러한 시스템은 센서-게이트웨이-서버(Sensor-Gateway-Server), 센서-게이트웨이-센서(Sensor-Gateway-Sensor) 등과 같은 IoT 네트워크 방식이나, 전통적인 3단 구조(3-Tier) 방식이나 N단 구조(N-Tier) 방식이라 칭하는 다중 객체 참여 통신 시스템에 적용될 수 있다.These systems include IoT network methods such as Sensor-Gateway-Server, Sensor-Gateway-Sensor, and traditional 3-tier or N-tier structures ( It can be applied to a multi-object participation communication system called N-Tier) method.
한편, 본 명세서에서 사용하는 용어 중 송신 단말이나 수신 단말은 적어도 하나의 네트워크를 통해 통신 가능하도록 연결된 단말기를 가리키며, 일 예로, 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook) 등과 같은 이동 단말기나, 디지털 TV, 데스크탑 컴퓨터 등과 같은 고정 단말기일 수 있으나, 특별히 한정하는 것은 아니다.Meanwhile, among the terms used in the present specification, a transmitting terminal or a receiving terminal refers to a terminal connected to enable communication through at least one network, for example, a mobile phone, a smart phone, a laptop computer, and digital broadcasting. Mobile terminals such as terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), slate PCs, tablet PCs, ultrabooks, and fixed terminals such as digital TVs and desktop computers It may be, but is not particularly limited.
본 발명의 일 실시예에 따르면, 안전하고 다양한 환경에 적용 가능한 순열그룹기반 일회용공개키를 이용하는 비대칭방식의 암호통신시스템을 구축할 수 있다.According to an embodiment of the present invention, it is possible to construct an asymmetric cryptographic communication system using a permutation group based disposable public key that is safe and applicable to various environments.
메시지를 암호화하는 키로서 일회용으로 생성되는 공개순열(Public Permutation)을 이용하는 일회용공개키와 이를 통해 생성된 암호문을 평문으로 복호화하기 위해서는 오직 수신단말이 일회용으로 생성한 개인순열(Private Permutation)을 이용하는 개인키를 통해서만 가능한 비대칭 키를 사용하는 암호 통신 시스템이 구현 가능케 된다.As a key for encrypting a message, a disposable public key that uses a public permutation generated for one time and a private key that uses a private permutation generated by the receiving terminal only for one-time use to decrypt the cipher text generated through it. It is possible to implement a cryptographic communication system using asymmetric keys only possible through.
이 때 일회용공개키와 일회용개인키는 모두 암호문을 복호화할 수 있는 수신 단말의 마스터개인키를 통해서만 생성가능하며, 안전한 방법을 통해 일회용공개키는 송신 단말에게 공유되는 시스템의 구현이 가능하다. 송신 단말이 보유한 일회용공개키 관련정보나 이를 통해 생성된 암호문을 가지고 원문을 복원 또는 추정하기 어려운 암호학의 Trap Door function을 가지고 구현된다.At this time, both the disposable public key and the disposable private key can be generated only through the master private key of the receiving terminal capable of decrypting the ciphertext, and through a secure method, the disposable public key can implement a system shared with the transmitting terminal. It is implemented with the Trap Door function of cryptography that is difficult to restore or estimate the original text with the disposable public key related information held by the transmitting terminal or the encrypted text generated through it.
공개키와 개인키는 보안성 향상 등을 목적으로 매번 랜덤으로 암호화 통신 과정 중 또는 통신 이후에도 자동적 또는 수동적으로 변경 가능하며, 이러한 생성 변경 작업은 오직 복호화 권한을 가진 마스터개인키를 보유한 사용자/시스템/기기에 의해 수행된다. 이러한 기능을 통해 암호 통신 시스템 내 사용된 공개키 및 개인키의 노출 및 암호문의 수집 및 역추적 공학(Reverse Engineering) 등을 통한 추정이 어려운 특성의 구현이 가능하다.The public key and private key can be changed automatically or manually during the encrypted communication process at random or after communication for the purpose of improving security, etc., and the creation / change operation is performed only by the user / system / who has the master private key with decryption authority. It is performed by the device. Through these functions, it is possible to implement characteristics that are difficult to estimate through exposure of public and private keys used in cryptographic communication systems, collection of cryptographic texts, and reverse engineering.
키교환 없는 대칭키 암호통신Symmetric key cryptographic communication without key exchange
또한, 암호화 통신 시스템에 필요한 암호관련 키인 순열키(Permutation Key)를 직접 전송하지 않는 방식으로 구현이 가능하다. 예를 들면 암호화과정과 복호화 과정에서 필요한 공개키/개인키는 수신 단말에 의해 생성된 이후, 생성 및 변경 발생시 해당 생성 조건(시간, 공간 등) 및 변경 조건을 사전 약정한 송신 단말과 수신 단말이 각각 자체 순열연산기를 포함하도록 하고 이를 통해 송신 단말 스스로 동일한 가상의 공개키를 생성할 수 있도록 구현함으로서 암호화 통신과정에서 필수적인 암호화 관련 키 정보를 직접 송/수신하는 단계를 수행하지 않고 마치 키교환 없는 대칭키 암호통신을 하는 것과 같은 시스템을 구축할 수 있다.In addition, it can be implemented in a manner that does not directly transmit the permutation key, which is an encryption-related key required for the encryption communication system. For example, the public key / private key required in the encryption and decryption process is generated by the receiving terminal, and when generated and changed, the generating terminal (time, space, etc.) and the changing condition have been previously agreed upon by the transmitting terminal and the receiving terminal. Each has its own permutation operator and implements it so that the transmitting terminal can generate the same virtual public key by itself, without performing the step of directly transmitting / receiving the encryption-related key information essential in the encryption communication process. A system such as key cryptography can be constructed.
암호화에 사용된 공개키를 통해 전송되는 값은 실제 값의 추정이 어려운 수신자만이 가지고 있는 마스터개인키 내 정보 중 일부 정보만을 이용하여 생성하는 개인키를 통해 유도되어지기 때문에 이에 대한 정보를 가지고 평문을 복호화하거나 추정하기는 어려운 암호화 통신 시스템의 구현이 가능하다.Since the value transmitted through the public key used for encryption is derived through the private key generated by using only some of the information in the master private key owned by the receiver who has difficulty in estimating the actual value, the plaintext with information about it is derived. It is possible to implement an encrypted communication system that is difficult to decrypt or estimate.
키노출에도 안전유지Maintain safety even with key exposure
공개키와 개인키는 보안 정책 또는 시스템 요건에 따라 매번 랜덤하게 변경되기 때문에 관련 정보가 노출된 이후에도 이전 정보를 소유한 악의적 사용자가 탈취한 이후 생성된 암호문을 임의로 또는 무단으로 복호할 수 없는 시스템의 구현이 가능하다.Since the public key and the private key are randomly changed every time according to the security policy or system requirements, even after the relevant information has been exposed, the password generated by the malicious user who possessed the previous information can be arbitrarily or unauthorizedly decrypted. Implementation is possible.
상기에서 살펴본 바와 같이 본원발명은 순열기반으로 비대칭 방식을 이용하고 암호화 처리를 byte 단위 또는 원하는 크기의 메시지처리단위로 할 수 있으므로 메시지 유형에 따라 다양한 방식으로 구현이 가능하다. As described above, the present invention uses an asymmetric method on a permutation basis, and can be implemented in various ways depending on the message type because encryption processing can be performed in byte units or message processing units of a desired size.
또한, 본원발명에 따르면 어플리케이션 메시지 처리 단위에서 바로 연산이 이루어져, 메시지를 블록 단위로 암호화 한 후 이를 어플리케이션에서 사용할 수 있는 형태로 재구성하여야 하는 종래 기술에 비해 처리 속도를 비약적으로 빠르게 할 수 있다. 이를 통해 본원발명은 저성능의 CPU 기기에도 구현이 가능해진다. In addition, according to the present invention, the calculation is performed directly in the application message processing unit, and the message can be encrypted in block units, and thus the processing speed can be significantly increased compared to the conventional technology that must be reconstructed into a form that can be used in the application. Through this, the present invention can be implemented in a low-performance CPU device.
또한, 본원발명은 단일 암호시스템 내 대칭키/비대칭키 방식 구현이 모두 가능하고, 응용 어플리케이션내 다양한 메시지 형태를 모두 처리 가능하며, 2-Tier 및 3-Teir 통신 구조하에서 유연한 기능 구현이 가능하고, 패스워드/PIN을 기반으로 하는 Human to Machine 방식의 기존 시스템 또는 새로운 Machine to Machine 방식을 채택한 시스템에 모두 적용할 수 있다.In addition, the present invention can implement both symmetric and asymmetric key methods in a single cryptosystem, can handle all various message types in an application, and can implement flexible functions under 2-Tier and 3-Teir communication structures. It can be applied to both existing systems based on password / PIN, human to machine, or systems that adopt new machine to machine.
즉, 본원발명의 시스템은 경량화/저용량 기기를 기반으로 다양한 통신 구조하에 동작하는 새로운 iot 환경하에서도 단일 시스템으로 적용하는 것이 가능하고, 또한 기존 암호화 기술 기반 시스템과 연동하는 것이 가능하다. That is, the system of the present invention can be applied as a single system even under a new iot environment operating under various communication structures based on lightweight / low-capacity devices, and it is also possible to interwork with an existing encryption technology-based system.
컴퓨터 판독 가능한 기록매체Computer-readable recording media
이상 설명된 본 발명의 일 실시예에 따른 순열그룹기반 일회용공개키를 이용한 메시지 전송 방법은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이나 컴퓨터 소프트웨어 분야의 당 업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크, 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method for transmitting a message using a permutation group-based disposable public key according to an embodiment of the present invention described above may be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. . The computer-readable recording medium may include program instructions, data files, data structures, or the like alone or in combination. The program instructions recorded on the computer-readable recording medium may be specially designed and configured for the present invention or may be known and available to those skilled in the computer software field. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs, DVDs, and magneto-optical media such as floptical disks. optical media), and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes produced by a compiler, but also high-level language codes executable by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the present invention, and vice versa.
III.III.
발명의 효과 등Effects of invention
매번 바뀌는 키로 인해 키공간 및 암호공간이 매번 다른 공간을 제공하여 다차원 공간으로 확장되므로 기존 방식이 brute-force 공격에 대해 시도마다 공간확률이 줄어들어 취약한데 반해 본 발명시스템의 공간확률은 항상 동일한 확률을 제공하므로 키를 유도하는 랜덤함수가 even한 확률분포를 제공한다면 brute-force 공격이 확률적으로 어렵다.Because the key space and the crypto space are expanded to a multi-dimensional space by providing different spaces each time due to the key changing each time, the space probability of the present invention system is always the same probability, whereas the space probability decreases for each brute-force attack. Provided, even if the random function that derives the key provides even probability distribution, brute-force attack is probabilistically difficult.
또한 복잡한 수학연산을 통해 암호화하지 않으며, 기존 방식과 같이 고정된 함수값을 사용하지 않아 앞서 언급한 바와 같이 순열그룹에 포함된 변동함수를 사용하여 키공간과 암호공간이 다차원 공간으로 확장되므로 암호화 결과에 대하여 양자컴퓨터 등 컴퓨팅 파워가 향상된 컴퓨터를 통해 암호해독을 수행하여도 해독이 어려워 양자저항성(quantum resistant)을 갖는다.In addition, since it does not encrypt through complicated mathematical operations and does not use a fixed function value as in the conventional method, the encryption result is obtained because the key space and the crypto space are expanded into a multi-dimensional space using the variable functions included in the permutation group as mentioned above. With respect to quantum computers, it is difficult to decipher even if cryptography is performed through a computer with improved computing power, so it has quantum resistance.
또한 기존의 비대칭키 방식의 경우 중간자공격(Man-in-the-Middle)에 취약하여 이러한 문제를 해결하기 위해 제3의 신뢰기관(Certificate Authority)을 통해 암호통신에 참여하는 모든 참여자에게 신원보증서(Certificate)를 발급하고 이 보증서의 진위여부에 따라 암호통신이 가능하도록 인프라를 구축하는 것이 필요하다. 따라서 중간자공격에 안전한 비대칭키 방식의 암호통신을 위해 막대한 비용의 인프라구축이 필요하고 이러한 인프라로 인해 암호화 수행과정이 복잡하고 처리시간이 오래 걸리는 문제점이 있다. 본 발명의 시스템은 매번 다른 키를 생성하여 암복호화를 수행하므로 중간자공격이 불가능하고 따라서 이러한 문제를 해결하느라 도입된 신뢰기관(CA)이나 신원보증서가 필요없이 안전하게 암호통신하는 것이 가능하다.In addition, the existing asymmetric key method is vulnerable to a man-in-the-middle, and in order to solve this problem, a certificate of identity is provided to all participants participating in cryptographic communication through a third-party certificate authority. Certificate) and it is necessary to establish an infrastructure to enable cryptographic communication according to the authenticity of this warranty. Therefore, it is necessary to construct an inexpensive infrastructure for cryptographic communication using an asymmetric key method that is safe for man-in-the-middle attacks, and there is a problem in that the encryption process is complicated and the processing time is long due to this infrastructure. Since the system of the present invention performs encryption / decryption by generating a different key each time, an intermediate attack is impossible, and thus it is possible to safely perform cryptographic communication without the need for a trusted authority (CA) or an identity certificate introduced to solve this problem.
이상으로 본 발명의 바람직한 실시예를 도면을 참고하여 상세하게 설명하였다. 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다.The preferred embodiments of the present invention have been described above in detail with reference to the drawings. The description of the present invention is for illustration only, and those skilled in the art to which the present invention pertains will understand that it is possible to easily modify to other specific forms without changing the technical spirit or essential features of the present invention.
따라서, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미, 범위 및 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Therefore, the scope of the present invention is indicated by the claims, which will be described later, rather than by the detailed description, and all the changed or modified forms derived from the meaning, scope, and equivalent concepts of the claims are included in the scope of the present invention. Should be interpreted.