KR100304368B1 - Generation method of de bruijn sequences - Google Patents

Generation method of de bruijn sequences Download PDF

Info

Publication number
KR100304368B1
KR100304368B1 KR1019990018669A KR19990018669A KR100304368B1 KR 100304368 B1 KR100304368 B1 KR 100304368B1 KR 1019990018669 A KR1019990018669 A KR 1019990018669A KR 19990018669 A KR19990018669 A KR 19990018669A KR 100304368 B1 KR100304368 B1 KR 100304368B1
Authority
KR
South Korea
Prior art keywords
function
bruijn
sequence
obtaining
input
Prior art date
Application number
KR1019990018669A
Other languages
Korean (ko)
Other versions
KR20000074619A (en
Inventor
박봉주
장태주
백재현
박종헌
Original Assignee
오길록
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 오길록, 한국전자통신연구원 filed Critical 오길록
Priority to KR1019990018669A priority Critical patent/KR100304368B1/en
Publication of KR20000074619A publication Critical patent/KR20000074619A/en
Application granted granted Critical
Publication of KR100304368B1 publication Critical patent/KR100304368B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 계산량을 대폭적으로 줄인 비선형 난수발생기를 구현할 수있도록 하기 위하여, D-homomorphism 성질을 이용하여 저단(2,3,4 또는 5단)의 de Bruijn 수열로 고단(약 40∼50단 이상)의 de Bruijn 수열을 직접 구하고, 이때 델타 알고리즘을 적용하는 것이다. 이러한 본 발명의 목적은 n차원의 벡터을 입력으로 하고 함수 S,,를 순차적으로 적용하여 출력값을 구하는 제1과정과; n차원벡터을 입력으로 한의 출력값에 대한 k차원 드 브르우즌 함수를 적용하여 출력값을 구하는 제2과정과; n차원 벡터을 왼쪽으로 1비트 시프트한 후 앞에서부터 n-1비트를 취하는 함수를 델타 알고리즘의 입력으로하여 출력값을 구하는 제3과정과; 상기 제1-3과정을 통해 구해진 각각의 값을 익스클루시브 오아연산하여 n차의 드 브르우즌 수열 함수를 구하는 제4과정에 의해 달성된다.The present invention uses a D-homomorphism property in order to implement a nonlinear random number generator with a drastically reduced amount of computation. The high stage (more than about 40 to 50 stages) is used in the de Bruijn sequence of low stages (2, 3, 4 or 5 stages). De Bruijn's sequence is obtained directly and the delta algorithm is applied. The object of the present invention is n-dimensional vector As input, and the function S, , First step of obtaining output values by applying sequentially; n-dimensional vector With input -D de bruise function for output of A second process of obtaining an output value by applying; n-dimensional vector A function that takes n-1 bits from the front after shifting 1 bit to the left A third step of obtaining an output value by inputting the input to the delta algorithm; It is achieved by a fourth process of obtaining an n-order de bruzen's sequence function by performing an Exclusive O-calculation of each value obtained through the above 1-3 processes.

Description

드 브르우즌 수열 발생 방법{GENERATION METHOD OF DE BRUIJN SEQUENCES}DE BRUIJN SEQUENCES}

본 발명은 암호화 시스템 등에 적용되는 난수기의 난수발생 기술에 관한 것으로, 특히 비 선형적인 형태로 난수를 발생하면서 함수의 계산량을 월등히 저감시킬 수 있도록한 드 브르우즌(de Bruijn) 수열 발생 방법에 관한 것이다.The present invention relates to a random number generation technology of a random number applied to an encryption system, and more particularly, to a method for generating a de Bruijn sequence that can greatly reduce the calculation amount of a function while generating a random number in a non-linear form. will be.

통상적으로, 스트림 암호 시스템은 도 1에서와 같이 송신측에서는 익스클루시브오아게이트(2A)와 같은 연산기를 이용하여, 평문과 난수발생기(1A)의 난수를 배타적 오아 연산하여 암호문을 생성한 후 그 암호문을 유선 또는 무선의 채널을 통해 상대측으로 송출하게 된다.In general, a stream cipher system generates an ciphertext by using an operator such as an exclusive oracle 2A on the transmitting side, exclusively calculating random numbers of the plain text and the random number generator 1A, and then generating the ciphertext. Is transmitted to the other party through a wired or wireless channel.

한편, 수신측에서는 상기 전송채널을 통해 수신되는 암호문을 익스클루시브오아게이트(2B)에서 상기 난수발생기(1A)와 동일한 형태로 난수를 발생하는 난수발생기(1B)의 난수를 배타적 오아 연산하여 원래의 평문을 복원해 낸다.On the other hand, the receiving side performs an exclusive OR operation on the random number of the random number generator 1B generating the random number in the same form as the random number generator 1A in the exclusive oragate 2B using the cipher text received through the transmission channel. Restore plain text.

일반적으로, 클라이언트와 서버간의 인증이란 서버가 상대방에게 데이터를 전송하고자 할 때, 상대방이 정말로 목적한 실제의 상대방인지를 확인하는 절차를 말하는 것으로, 클라이언트가 서버를 인증하는 절차를 도 2를 참조하여 설명하면 다음과 같다.In general, the authentication between the client and the server refers to a procedure for confirming whether or not the other party is really the intended real party when the server wants to transmit data to the other party, and the client authenticates the server with reference to FIG. The explanation is as follows.

먼저, 클라이언트는 일련의 난수(Ra)를 발생시켜 서버측으로 전송한다. 서버측에서는 수신한 난수(Ra)와 양측에서 미리 알고 있는 키이(Key)로 연산을 수행하여 그 결과치(Xb)를 클라이언트측으로 전송한다. 클라이언트도 역시 상기 난수(Ra)와키이(Key)로 상기 서버와 동일한 연산을 수행하여 결과치(Xa)를 얻어낸다.First, the client generates a series of random numbers Ra and sends it to the server side. The server performs an operation on the received random number Ra and a key known in advance on both sides, and transmits the result value Xb to the client side. The client also performs the same operation as the server with the random number Ra and the key to obtain a result value Xa.

이후, 상기 각각의 결과치(Xa),(Xb)를 서로 비교하여 동일하면 서버가 인증된 것으로 판단한다. 물론, 서버가 클라이언트를 인증하는 과정도 상기의 인증과정과 같이 이루어진다.Thereafter, the respective result values Xa and Xb are compared with each other and determined to be authenticated if the server is the same. Of course, the process of the server authentication of the client is also performed as in the above authentication process.

이때, 난수가 사용되는 이유는 통신선로를 불법 도청하고 있는 제3자가 서버로서 인식되는 것을 방지하기 위함이다. 즉, 항상 같은 데이터로만 인증을 실시하면 중간에 도청하고 있는 제3자가 그 데이터를 전송하여 서버로 행세할 수 있기 때문에 이를 방지하기 위함이다.In this case, the reason why the random number is used is to prevent a third party who is illegally tapping the communication line from being recognized as a server. In other words, if authentication is always performed with the same data only, the third party who is intercepted in the middle can transmit the data and pretend to the server.

통상적으로, 상기와 같은 난수발생기로서 LFSR(Linear Feedback Shift Register)를 많이 사용하는데 이는 선형적인 특성을 갖고 있으므로 외부의 공격에 취약한 결함이 있었다. 비선형적인 난수발생기를 사용하는 경우 외부의 공격에 쉽게 노출되지 않는 강점이 있으나 많은 비용을 부담해야 하는 문제점이 있다. 왜냐하면, 통상적으로 비선형적인 난수발생기로서 de Bruijn 함수를 사용하는데, 이 함수는 계산량이 많아서 고성능의 중앙처리장치를 사용해야 하기 때문이다.Typically, a lot of linear feedback shift registers (LFSR) are used as the random number generator as described above, which has a linear characteristic, and thus has a defect that is vulnerable to external attack. In the case of using a nonlinear random number generator, there is a strength that is not easily exposed to external attacks, but there is a problem in that a large cost is required. This is because the de Bruijn function is typically used as a nonlinear random number generator because it requires a large amount of computation and a high performance central processing unit.

즉, Lempel은 n(>0인 정수)단의 de Bruijn 함수에서 n+1단의 Bruijn 함수를 구하는 방법을 제안하였는데, 그 방법으로 n단에서 m(>n인 정수)단의 de Bruijn 함수를 구하고자 할 때에는 n부터 m단 사이의 모든 함수를 구하여야 한다. 따라서, 그 계산량이 기하급수적으로 증가되어 실용화하는데 한계가 있었다.In other words, Lempel proposed a method of obtaining n + 1 Bruijn function from n (Integer> 0) de Bruijn function. To find out, we need to find all functions between n and m. Therefore, the calculation amount is increased exponentially, and there is a limit to the practical use.

따라서, 본 발명의 목적은 D-homomorphism 성질을 이용하여 저단의 de Bruijn 수열로 고단의 de Bruijn 수열을 직접 구하는 고단의 드 브르우즌 수열 발생 방법을 제공함에 있다.Accordingly, an object of the present invention is to provide a method for generating a high-level de bruzen sequence that directly obtains a high-level de Bruijn sequence using a D-homomorphism property.

도 1은 일반적인 스트림 암호 시스템의 개략도.1 is a schematic diagram of a typical stream cipher system;

도 2는 클라이언트가 서버를 인증하는 절차 설명도.2 is a diagram illustrating a procedure of a client authenticating a server.

도 3은에서의 연산 전개도.3 is in Arithmetic exploded view of.

도 4는 본 발명에 의한 연산횟수와 종래 방법에 의한 연산횟수 비교표.Figure 4 is a table comparing the number of operations according to the present invention and the conventional method.

***도면의 주요 부분에 대한 부호의 설명****** Description of the symbols for the main parts of the drawings ***

1A,1B : 난수 발생기 2A,2B : 익스클루시브오아게이트1A, 1B: Random Number Generator 2A, 2B: Exclusive Oagate

본 발명의 목적을 달성하기 위한 드 브르우즌 수열 발생 방법은 n차원의 벡터을 입력으로 하고 함수 S,,를 순차적으로 적용하여 소정 비트의 출력값을 구하는 제1과정()과; n차원벡터을 입력으로 한의 출력값에 대한 k차원 드 브르우즌(de Bruijn) 함수를 적용하여 소정 비트의 출력값을 구하는 제2과정()과; n차원 벡터을 왼쪽으로 1비트 시프트한 후 앞에서부터 n-1비트를 취하는 함수를 델타 알고리즘의 입력으로하여 소정 비트의 출력값을 구하는 제3과정()과; 상기 제1-3과정을 통해 구해진 각각의 값을 익스클루시브 오아연산하여 n차의 드 브르우즌 수열 함수()를 구하는 제4과정으로 이루어지는 것으로, 이의 작용을 첨부한 도 3 및 도 4를 참조하여 상세히 설명하면 다음과 같다.De bruzen sequence generation method for achieving the object of the present invention is n-dimensional vector As input, and the function S, , Process of obtaining output values of predetermined bits by sequentially applying )and; n-dimensional vector With input K-de-de Bruijn function for the output of A second process of obtaining an output value of a predetermined bit by applying )and; n-dimensional vector A function that takes n-1 bits from the front after shifting 1 bit to the left A third process of obtaining an output value of a predetermined bit by using )and; Exclusive o-calculation of each value obtained through the above steps 1-3 processes the n-de-Bruzen sequence function ( The fourth step is to obtain a), it will be described in detail with reference to FIGS. 3 and 4 attached to the operation thereof as follows.

n차 이진 de Bruijn 그래프 Gn은 모든 이진 n순서쌍, 곧, 2n순서쌍을 꼭지점으로 하고 모서리가 2n+1개인 방향 그래프이다. 꼭지점마다 두 모서리는에서,로 이어진다. de Bruijn 순환은 Gn의 각 꼭지점을 반드시 그리고 한 번씩만 거치는 닫힌 길이다. 서로 다른 de Bruijn 순환의 개수는으로 알려져 있다[1].An nth order binary de Bruijn graph Gn is a direction graph of all binary n ordered pairs, 2 n ordered pairs, with 2 n + 1 corners. Two corners per vertex in , Leads to. The de Bruijn cycle is a closed path that must go through each vertex of G n and only once. The number of different de Bruijn cycles is It is known as [1].

de Bruijn 순환은 주기가 2n이고일 때가 모두 서로 다른 이진 수열{Si}로 나타낼 수 있다. 이러한 수열들을 n차 de Bruijn 수열이라 부르고, 비선형 귀환 이동 저장기로써 만들 수 있다[2-8].The de Bruijn cycle has a period of 2 n when Are all represented by different binary sequences {S i }. These sequences are called n-th order de Bruijn sequences and can be created as nonlinear feedback transfer reservoirs [2-8].

이러한 de Bruijn 수열은 난수 특성이 좋고 선형 복잡도가 높기 때문에 스트림 암호의 설계 및 클라이언트 서버간의 인증에 쓰이고 있어서, 현재까지 그 수열의 특성과 발생시키는 방법에 대해여 많은 연구를 거듭해오고 있다.Since the de Bruijn sequence has good randomness characteristics and high linear complexity, it has been used for the design of stream ciphers and authentication between client servers. Thus, many studies have been conducted on the characteristics of the sequence and how to generate it.

Lempel은 D-homomorphism을 바탕으로 한 de Bruijn 수열을 만드는 방법을 제시하였다[9]. 그러나, 그 방법은 전체 수열을 되풀이하여 만들어내므로 n이 크면 계산량과 메모리의 증가 때문에 실제로 쓰기는 어렵다.Lempel proposed a method for generating de Bruijn sequences based on D-homomorphism [9]. However, since the method generates the entire sequence repeatedly, if n is large, it is difficult to actually write because of the increase in computation and memory.

여기서, Lempel의 D-homomorphism을 이용한 통상의 de Bruijn 수열생성 방법을 설명하면 다음과 같다.Here, the conventional de Bruijn hydrothermal generation method using Lempel's D-homomorphism is as follows.

일 때 n차원 벡터 공간을 생각해 보자, Bn에서의 이동관계 ⇒를 다음의 (식1)과 같이 정의하며, N-dimensional vector space when Consider, at B n and 이동 is defined as the following equation (1),

'x가 y로 움직인다'. 'y는 x의 바로 뒤 원소이다' 또는 'x는 y의 바로 앞 원소이다' 라고 읽는다. Bn의 모든 원소에 각각 바로 뒤 원소 둘과 바로 앞 원소 둘이 있다.에서 xi의 이진 보수를로 쓸 때은 x의 쌍대,은 x의 켤레라고 각각 부른다. 그러면이고,와 동치이며, 또한와도 동치임을 알 수 있다. Gn에서 k-순환은,일 때이고,인 서로 다은 k 꼭지점들의 닫힌 수열을 말한다. 따라서, 원소가 n개인 xi의 첫째 비트를 ci로 쓸 때, 이것을 비트 수열로 나타낼 수 있다.'x moves to y'. Read 'y is the element immediately after x' or 'x is the element just before y'. Every element of B n has two elements immediately after it, and two elements immediately before it. In binary complement of x i When writing Twin of x, Are each called a pair of x's. then ego, Is Equivalent to, and also It can be seen that it is equivalent to. K-cycles in G n , when ego, K different vertices Says closed sequence. Thus, when writing the first bit of x i with n elements into c i , this is a sequence of bits It can be represented by.

함수으로 정의하면, D가 2대 1 전사함수임은 쉽게 알 수 있다. 함수 D는 이동 관계를 보존하므로위로의 그래프 Homomorphism이다[2]. 또한,에서 k-순환 Γ의 1의 개수가 짝수이면 Γ는 함수 D에 대하여 k-순환의 상이 되고 그 역도 성립하는 것으로 알려져 있다[2].function To It is easy to see that D is a two-to-one transcription function. Function D preserves the shift relationship, of The graph above is Homomorphism [2]. Also, If the number of k-circuits Γ 1 is even, Γ is k-circuited for function D. Wow It is known to be an image of vice versa and vice versa [2].

에서-순환의 1의 수는임이 잘 알려져 있으므로-순환은 함수 D에 대하여의 서로 다른 한 쌍의 순환 C와의 원상이다. 한편, x가에 있고에 있을 때, x와의 바로 뒤 원소를 서로 바꾸면를 하나의 순환으로 만들 수 있기 때문에[5], x가 C에 있고에 있는 켤레쌍 x와를 찾을 수 있다면 두 순환 C와를 하나의 순환으로 만들 수 있다. in The number of 1 in the cycle is Im well known Circulation is a function D With a pair of different cycles C It is original. On the other hand, x In the end When we are at x and Swap elements immediately after and Since x can be made into one cycle [5], x is in C end Pair and x in If you can find two cycles C and Can be made into a single cycle.

이제이고,인 꼭지점를 생각해 보자. 이때, e가 C에 있으면는 반드시에 있고 그 역도 성립한다. 또한이므로는 켤레쌍이다. 그러므로 다음의 정리를 유도해 낼 수 있다. 앞으로는 n차 de Bruijn 수열을 만드는 함수를 n차 de Bruijn 수열 함수라고 칭한다.now ego, Vertex Think about it. If e is in C Must And vice versa. Also Because of Wow Is a pair. Therefore, the following theorem can be derived. In the future, a function that produces an n-th order de Bruijn sequence is called an n-th order de Bruijn sequence function.

정리1 [2] :ψ를 (n-1)차 de Bruijn 수열 함수라 하고, h를 다음의 (식2)와 같이 정의하자. Theorem 1 [2]: Let ψ be the (n-1) order de Bruijn sequence function and define h as

여기서,이고,이다. 그러면, h는 n차 de Bruijn 수열 함수이다. 여기서 n차 de Bruijn 수열 함수인 h를 구하기 위해서는 n차 이하의 모든 수열 함수를 구하여야 하므로 많은 메모리와 시간이 소요된다. 다음에서는 n차보다 훨씬 낮은 차수의 함수에서 n차 함수를 얻는 알고리즘 및 전개 과정을 설명한다.here, ego, to be. H is then an n-th order de Bruijn sequence function. Here, in order to find the n-th order de Bruijn sequence function h, it is necessary to find all the sequence functions below n-th order, which requires a lot of memory and time. The following describes the algorithm and evolution process of obtaining n-th order functions from functions that are much lower than n-th order.

이하, 본 발명에 의한 de Bruijn 수열 발생 방법에 대해 상세히 설명한다.Hereinafter, the de Bruijn hydrothermal generation method according to the present invention will be described in detail.

n이 크지 않을 때는 상기 정리1을 사용하여 차수가 낮은 de Bruijn 수열 함수에서 차수가 더 높은 de Bruijn 수열 함수를 얻을 수 있다. 그러나, n이 크면 정리1을 되풀이하여 차수가 낮은 de Bruijn 수열 함수에서 n차 de Bruijn 수열 함수를 도출하는 것이 매우 어렵게 된다. 이제, de Bruijn 수열 함수를 되풀이하여 계산하지 않고도 차수가 낮은 de Bruijn 수열 함수에서 차수가 높은 de Bruijn 수열을 만들어내는 알고리즘을 설명한다.When n is not large, the theorem 1 can be used to obtain a higher order de Bruijn sequence function from a lower order de Bruijn sequence function. However, if n is large, it is very difficult to derive n th order de Bruijn sequence function from the lower order de Bruijn sequence function by repeating theorem 1. We now describe an algorithm that produces a higher order de Bruijn sequence from a lower order de Bruijn sequence function without having to calculate the de Bruijn sequence function over and over again.

먼저, 함수 D를 효과적으로 계산하는 방법을 설명한다.First, the method for effectively calculating the function D will be described.

정리2 : 음이 아닌 정수 n이 있을 때이라 하면,Theorem 2: when there is a nonnegative integer n Speaking of

이다.to be.

증명 : 수학적 귀납법으로 증명하자.일 때 상기 (식3)은 뚜렷이 성립한다. 이제에서 상기 (식3)이 성립한다고 두면라고 놓았을 때,Proof: Let's prove by mathematical induction. When (Equation 3) is clearly established. now If Eq. (3) holds When you put

이다.(증명 끝)(End of proof)

상기 정리2를 사용하여 D를 효과적으로 계산할 수 있다. 보기로을 생각해 보자.이므로,Theorem 2 can be used to calculate D effectively. As an example Think about it. Because of,

이다.를 계산하는데 필요한 배타 논리합 연산수는보다 작음을 쉽게 보일 수 있다.to be. The exclusive OR operation required to compute Less can be easily seen.

를 왼쪽 이동함수 Left shift function

로, 그리고를 비트 선택함수And then Bit selection function

로 높으면, 다음의 성질들을 쉽게 얻을 수 있다.As high as, the following properties can be easily obtained.

성질1 :의 원소일 때,Properties 1: Wow end When is an element of,

이 성립한다.This holds true.

이제,일 때, 라 하면, 도 3에서의 방법과,로부터을 얻을 수 있다.now, when, Speaking of the method in FIG. , from Can be obtained.

도 성립하므로, 위의 사실들을 일반화하여 다음의 정리를 얻는다.Since the above is also generalized, the following theorem is obtained.

정리3 :일 때,Theorem 3: when,

이라 하면, Speaking of

이다.to be.

증명: 수학적 귀납법으로 증명하자.이면, 상기 (식12)가 확시히 성립한다. 이제에서 상기 (식12)가 성립한다고 두면, 곧,Proof: Let's prove by mathematical induction. In this case, Equation 12 is clearly established. now If we assume that Eq. (12) holds,

이면,If,

이므로,에서도 상기 (식12)가 성립한다.(증명 끝)Because of, Equation (12) holds in Eq. (End of proof).

이제,를 끊음 함수now, Break function

로 놓으면, 상기 성질1로부터 다음을 다음을 얻는다.When set to, from the property 1, the following is obtained.

성질2:일 때, Properties 2 : when,

이제,의 몇몇 특수한 원소들을 다음과 같이 표기하자.now, Here are some special elements of.

그러면, 다음의 식이 성립함을 쉽게 알 수 있다.Then, it is easy to see that the following equation holds.

일 때 when To

----------------------(식24) ---------------------- (Eq. 24)

로 놓자. 그러면, 함수를 다음과 같이 표현할 수 있다.Let's put it. Then, the function Can be expressed as

----------------------(식25) ---------------------- (Eq. 25)

여기서,이고,이다.here, ego, to be.

성질3:일 때, Properties 3 : when,

ⅰ)D(x) =0x=0또는x=f는 동치이다.() D ( x ) = 0 and x = 0 or x = f are equivalent.

ⅱ)D(x) =fx=5또는x=a는 동치이다.Ii) D ( x ) = f and x = 5 or x = a are equivalent.

ⅲ)만약, a가 있다면, 모든 Viii) a person If there is, all

에 대하여이다.about to be.

ⅳ)만약, Di(x)=5가 있다면, 모든,Iii) if D i ( x ) = 5 If there is, all , on

대하여이다.about to be.

ⅴ)만약, Di(x)=0,x≠0,x≠f이면, Dj(x)=5또는 Dj(x)=aI) if D i ( x ) = 0 , x ≠ 0 , x ≠ f, then D j ( x ) = 5 or D j ( x ) = a

가 존재한다. Is present.

정의1: 양수이 있을 때,에서로의 함수을 다음의 (식26)과 같이 정의한다. Definition 1 : Positive When there is, in Function Is defined as in the following (Equation 26).

상기 (식26)에서,함수는 수열x가 {1,0,1,0,...}(알고리즘에서는 (식17)과 같이 벡터5로 표현됨)와 같은지 판단하는 함수로서, 같으면=1, 다르면=0이다. 상기 델타식인 (식26)은 '수열 X에 대해 D연산을 (n-1)번 수행하면서 한 번이라도 {1,0,1,0,...}의 형태가 발생하면 그 값이 1이다' 라는 것을 의미한다.In the above formula (26), The function is a function that determines whether the sequence x is equal to {1,0,1,0, ...} (in the algorithm represented by vector 5 as (Eq. 17)). = 1, if different = 0 The delta (Equation 26) is' 1, 0, 1, 0, ...} if the form of {1,0,1,0, ...} occurs at least once while performing the D operation (n-1) for the sequence X 'Means.

성질3으로부터,가 1이면 상기 (식26)의 오른쪽 식에서 오직 한 항만이 1임을 쉽게 알 수 있다. 왜냐하면, U(x)=1이면x=5이고 그 역도 성립하며, 둘 이상의 항이 함께 1이 될 수 없기 때문이다.를 계산하는 방법이 아래의 델타 알로리즘으로 나타나 있다. 제3단계와 제4단계는 각각 상기의 성질3의 ⅱ)와 ⅴ)를 바탕으로 한다. 제5단계내지 제10단계는 상기 성질3을 사용하여 Dr(x)=5또는a를 찾아낸다.From property 3, When 1 is 1, it is easy to see that only one term is 1 in the right equation of Equation 26. Because if U (x) = 1 then x = 5 and vice versa, two or more terms cannot be 1 together. The method of calculating is shown in the delta algorithm below. The third and fourth stages are based on ii) and iii) of property 3, respectively. Steps 5 to 10 find D r ( x ) = 5 or a using property 3 above.

델타알고리즘;Delta algorithms;

입력 : n,i,x Input: n, i, x

Step.0 input n,i,x Step.0 input n, i, x

Step.1 ifx=5 then (x):=1.Exit.Step.1 if x = 5 then ( x ): = 1. Exit .

if x=a or x=f, or x=0,then (x):=0.Exit. if x = a or x = f, or x = 0, then ( x ): = 0. Exit .

Step.2 d: = n-i+1Step.2 d: = n-i + 1

Step.3 if Dd(x)≠0, then(x):=0.Exit.Step.3 if D d (x) ≠ 0, then ( x ): = 0. Exit .

Step.4 k=1, m: = d-1Step.4 k = 1, m: = d-1

Step.5while do Step.5 while do

Step.6 Step.6

Step.7ifDt(x)=5, then (x):=1.Exit.Step 7 if D t (x) = 5, then ( x ): = 1. Exit .

Step.8ifDt(x)=a, then (x):=0.Exit.Step 8 if D t (x) = a, then ( x ): = 0. Exit .

Step.9ifDt(x)=f, thent : = t-1,gotoStep 7.Step.9 if D t (x) = f, then t: = t-1, goto Step 7.

Step.10ifDt(x)=0, thenm : = t-1,elsek : =tStep.10 if D t (x) = 0, then m: = t-1, else k: = t

Step.11end Step.11 end

이제, 상기 (식2)를 다시 고찰해 보자.Now, let's consider (Equation 2) again.

은 다음과 같이 고쳐 쓸 수 있다.Can be rewritten as

여기서,x=이다. 이제, 일 때,x (k) =,x (i)= D(x (i+1))라고 하면, 다음과 같이 (식28)을 거듭 사용하여에서을 계산할 수 있다.Where x = to be. now, When x (k) = , x (i) = D ( x (i + 1) ), use Equation 28 in Can be calculated.

상기 정리3, 성질2, 그리고의 정의에서 다음의 (식29)를 얻을 수 있다.Theorem 3, property 2, and In the definition of Eq.

---(식29) --- (Eq. 29)

상기의 (식29)는 다음 '도움정리1'의 증명인 셈이다.Equation 29 is the proof of the following 'theorem 1'.

도움정리1: 함수를 2차 de Bruijn 수열 함수라 하면, 일 때, Helpful Theorem 1: functionIs the quadratic de Bruijn sequence function, when,

는 n차 de Bruijn 수열 함수이다.Is an n-th order de Bruijn sequence function.

또한, 상기 도움정리1을 일반화하면 다음의 정리4를 얻을 수 있다.In addition, generalizing the above help theorem 1, the following theorem 4 can be obtained.

정리4: 함수를 k차 de Bruijn 수열 함수라 하면,일 때, Theorem 4 : Functions Is the k-order de Bruijn sequence function, when,

결국, 상기 (식31)에서 ''은 본 발명에 의한 n차 de Bruijn 수열 함수(n>k)를 의미하고,'는 n차원 벡터을 입력으로 하여 함수 S,,를 순차적으로 적용해서 소정 비트(예: 1bit)의 출력값을 구하는 항목이며, ''는 n차원벡터을 입력으로 한의 출력값에 대한 k차원 deBruijn 함수를 적용하여 소정 비트(예: 1bit)의 출력값을 구하는 항목이고, ''는 n차원 벡터을 왼쪽으로 1비트 시프트한 후 앞에서부터 n-1비트를 취하는 함수를 델타 알고리즘의 입력으로하여 소정 비트(예: 1bit)의 출력값을 구하는 항목이다.In the end, in (31) 'Means n-th order de Bruijn sequence function (n> k) according to the present invention, 'Is an n-dimensional vector With the function S, , Apply sequentially to obtain an output value of a predetermined bit (eg 1 bit). 'Is an n-dimensional vector With input K-dimensional deBruijn function for the output of Is an item that calculates the output value of a predetermined bit (for example, 1 bit) by applying 'Is an n-dimensional vector A function that takes n-1 bits from the front after shifting 1 bit to the left It is an item that obtains an output value of a predetermined bit (for example, 1 bit) by inputting the delta algorithm.

상기 정리4를 사용하면, 함수을 구체적으로 계산하지 않고도 차수가 낮은 de Bruijn 수열에서 n차의 de Bruijn 수열의 다음 비트를 얻을 수 있게 된다.Using theorem 4 above, the function It is possible to obtain the next bit of the nth order de Bruijn sequence from the lower order de Bruijn sequence without calculating.

일예로써,As an example,

일 때, when,

에 대한 기존의 연산방법과 본 발명의 연산방법을 비교 설명하면 다음과 같다.When comparing the conventional calculation method and the calculation method of the present invention for as follows.

기존방법;Existing method;

본 발명에 의한 방법;The method according to the invention;

따라서, 도 4에서와 같이 본 발명의 델타 알고리즘은 연산을 매우 적게 수행하므로 전체 계산속도가 매우 빠르게 된다.Therefore, as shown in FIG. 4, the delta algorithm of the present invention performs very little computation, resulting in very high overall computation speed.

상기 상세한설명에서 인용된 참고문헌은 다음과 같다.References cited in the above description are as follows.

[1] N.G de Bruijn, 'A Combinatorial Problem', Nederl. Akad.Wetensch. Proc., vol.49,pp. 758-764,1946[1] N.G de Bruijn, 'A Combinatorial Problem', Nederl. Akad.Wetensch. Proc., Vol. 49, pp. 758-764,1946

[2] A. Lempel 'On a Homomorphism of the De Bruijn Graph and Its Applications to the Design of Feedback Shift Registers', IEEE Trans, vol. 19, pp. 1204-1209, Dec. 1970.[2] A. Lempel 'On a Homomorphism of the De Bruijn Graph and Its Applications to the Design of Feedback Shift Registers', IEEE Trans, vol. 19, pp. 1204-1209, Dec. 1970.

[3] A. Lempel,'Cryptology in Transition', Computing Surveys, vol.11, pp. 285-303, Dec. 1979[3] A. Lempel, 'Cryptology in Transition', Computing Surveys, vol. 11, pp. 285-303, Dec. 1979

[4] S.W. Golomb, Shift Register Sequences, Aegean Park Press, Laguna Hills, CA, 1982.[4] S.W. Golomb, Shift Register Sequences, Aegean Park Press, Laguna Hills, CA, 1982.

[5] H. Fredrickson, 'A Survey of Full Cycle Algorithms', SIAM Review, vol. 24, pp. 195-221, April 1982.[5] H. Fredrickson, 'A Survey of Full Cycle Algorithms', SIAM Review, vol. 24, pp. 195-221, April 1982.

[6] A.H. Chan, R.A. Games, and E.L. key, 'On the Complexities of de Bruijn Sequences', J. Comb. Theory, Ser. A, vol. 33, pp. 233-246, Nov.1982.[6] A.H. Chan, R. A. Games, and E.L. key, 'On the Complexities of de Bruijn Sequences', J. Comb. Theory, Ser. A, vol. 33, pp. 233-246, Nov. 1982.

[7] T. Helleseth and T. Klove, 'The Number of Cross-Join Pairs in Maximum Length Linear Sequences', IEEE Trans. Inform. Theory, vol. pp. 1731-1733, Nov. 1991.[7] T. Helleseth and T. Klove, 'The Number of Cross-Join Pairs in Maximum Length Linear Sequences', IEEE Trans. Inform. Theory, vol. pp. 1731-1733, Nov. 1991.

[8] T. Chang, I. Song, H.M. Kim, and S.H. Cho, 'Cross-Joins in de Bruijn Sequences and Maximum Length Linear Sequences', IEICE Trans. Fundamentals, vol. E76A, pp. 1494-1501, Sep. 1993.[8] T. Chang, I. Song, H.M. Kim, and S.H. Cho, 'Cross-Joins in de Bruijn Sequences and Maximum Length Linear Sequences', IEICE Trans. Fundamentals, vol. E76A, pp. 1494-1501, Sep. 1993.

[9] F.S. Annexstein, 'Generating De Bruijn Sequences: An Efficient Implementation', IEEE Trans. Computers, vol. 46,pp. 198-200, Feb. 1997.[9] F.S. Annexstein, 'Generating De Bruijn Sequences: An Efficient Implementation', IEEE Trans. Computers, vol. 46, pp. 198-200, Feb. 1997.

[10] S. Baase, Computer Algorithms: Introduction to Design and Analysis, Addison-Wesley, Reading, MA, A9978.[10] S. Baase, Computer Algorithms: Introduction to Design and Analysis, Addison-Wesley, Reading, MA, A9978.

이상에서 상세히 설명한 바와 같이 본 발명은, D-homomorphism 성질을 이용하여 저단(2,3,4 또는 5단)의 de Bruijn 수열로 고단(약 40∼50단 이상)의 de Bruijn 수열을 직접 구하고, 이때 델타 알고리즘을 적용함으로써 전체 계산량이 월등히 줄어들어 저가의 비 선형적 난수발생기를 구현할 수 있는 효과가 있다.As described in detail above, the present invention directly obtains the de Bruijn sequence of the high stage (about 40-50 stages or more) by the de Bruijn sequence of the low stage (2, 3, 4 or 5 stages) using the D-homomorphism property, In this case, by applying the delta algorithm, the total amount of computation is greatly reduced, thereby making it possible to implement a low-cost nonlinear random number generator.

Claims (2)

n차원의 벡터을 입력으로 하고 함수 S,,를 순차적으로 적용하여 출력값을 구하는 제1과정과; n차원벡터을 입력으로 한의 출력값에 대한 k차원 드 브르우즌 함수를 적용하여 출력값을 구하는 제2과정과; n차원 벡터을 왼쪽으로 1비트 시프트한 후 앞에서부터 n-1비트를 취하는 함수를 델타 알고리즘의 입력으로하여 출력값을 구하는 제3과정과; 상기 제1-3과정을 통해 구해진 각각의 값을 익스클루시브 오아연산하여 n차의 드 브르우즌 수열 함수를 구하는 제4과정으로 이루어지는 것을 특징으로 하는 드 브르우즌 수열 발생 방법.n-dimensional vector As input, and the function S, , First step of obtaining output values by applying sequentially; n-dimensional vector With input -D de bruise function for output of A second process of obtaining an output value by applying; n-dimensional vector A function that takes n-1 bits from the front after shifting 1 bit to the left A third step of obtaining an output value by inputting the input to the delta algorithm; And a fourth step of obtaining an nth order de-bruise sequence function by performing an Exclusive O-calculation of each value obtained through the above steps 1-3. 제1항에 있어서, 제3과정의 델타 알고리즘은 입력 n,i,x에 대하여 x = 5이면(x):=1로, x = a 또는 x = f, 또는 x=0이면(x):= 0으로 설정하는 제1단계와; d: = n-i+1로 설정하고, Dd(x)≠0면(x):=0으로 설정하는 제2단계와; k=1, m: = d-1로 설정하는 제3단계와;조건하에서를 연산하는 제4단계와; Dt(x)= 5이면(x):=1로 설정하고, Dt(x)= a이면(x):=0로 설정하는 제5단계와; Dt(x)= f이면 t : = t-1로 하고 제5단계로 복귀하는 제6단계와; Dt(x)= 0이면 m : = t-1로, 그 이외의 조건에서는 k : =t로 설정하는 제7단계로 수행되는 것을 특징으로 하는 드 브르우즌 수열 발생 방법.The delta algorithm of claim 1, wherein the delta algorithm of the third process is performed if x = 5 with respect to an input n, i, x. (x): = 1, where x = a or x = f, or x = 0 (x): = first step of setting to 0; d: = n-i + 1, and if D d (x) ≠ 0 (x): setting a second value to 0; a third step of setting k = 1, m: = d-1; Under conditions Calculating a fourth step; If D t (x) = 5 (x): set to 1, if D t (x) = a (x) a fifth step of setting 0; A sixth step in which if t t (x) = f, t = t-1 and return to the fifth step; A method of generating a de bruise sequence, which is performed in a seventh step of setting m: = t−1 when D t (x) = 0 and k: = t under other conditions.
KR1019990018669A 1999-05-24 1999-05-24 Generation method of de bruijn sequences KR100304368B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990018669A KR100304368B1 (en) 1999-05-24 1999-05-24 Generation method of de bruijn sequences

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990018669A KR100304368B1 (en) 1999-05-24 1999-05-24 Generation method of de bruijn sequences

Publications (2)

Publication Number Publication Date
KR20000074619A KR20000074619A (en) 2000-12-15
KR100304368B1 true KR100304368B1 (en) 2001-09-26

Family

ID=19587368

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990018669A KR100304368B1 (en) 1999-05-24 1999-05-24 Generation method of de bruijn sequences

Country Status (1)

Country Link
KR (1) KR100304368B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699814B (en) * 2013-12-10 2017-02-01 深圳先进技术研究院 Method for identifying and removing tips of bidirectional multistep De Bruijn graph
RU2612622C1 (en) * 2015-11-25 2017-03-09 Открытое акционерное общество "Авангард" Code scale
RU2653323C1 (en) * 2017-07-11 2018-05-07 Открытое акционерное общество "Авангард" Code scale

Also Published As

Publication number Publication date
KR20000074619A (en) 2000-12-15

Similar Documents

Publication Publication Date Title
Masuda et al. Chaotic block ciphers: from theory to practical algorithms
US5142579A (en) Public key cryptographic system and method
US20030081769A1 (en) Non-algebraic method of encryption and decryption
US20210256165A1 (en) Protecting parallel multiplication operations from external monitoring attacks
US6189095B1 (en) Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
US20120128153A1 (en) Symmetric-key encryption method and cryptographic system employing the method
Catrina Round-efficient protocols for secure multiparty fixed-point arithmetic
US5828752A (en) Pseudo-random number generator and communication system employing the same
Golić Correlation properties of a general binary combiner with memory
US6463150B1 (en) Encryption device for information in binary code
JP3180836B2 (en) Cryptographic communication device
US6111952A (en) Asymmetrical cryptographic communication method and portable object therefore
CN113098675A (en) Binary data encryption system and method based on polynomial complete homomorphism
KR100304368B1 (en) Generation method of de bruijn sequences
WO2007129197A1 (en) Cryptographic apparatus and process
Peleshchak et al. Two-stage AES encryption method based on stochastic error of a neural network
KR100564599B1 (en) Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code
RU2188513C2 (en) Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks
KR100350207B1 (en) Method for cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks
Watanabe et al. A MAC forgery attack on SOBER-128
CN112751671B (en) Novel key exchange method based on tree parity machine
Pignata et al. General function evaluation in a STPC setting via piecewise linear approximation
RU2140716C1 (en) Method for cryptographic conversion of digital data blocks
Ali Linearisation attacks on fcsr-based stream ciphers
Eremeev et al. Protective data transformations in ACSs on the basis of a new primitive

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090701

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee