KR20110087094A - 데이터 암호화 방법 - Google Patents

데이터 암호화 방법 Download PDF

Info

Publication number
KR20110087094A
KR20110087094A KR1020100006563A KR20100006563A KR20110087094A KR 20110087094 A KR20110087094 A KR 20110087094A KR 1020100006563 A KR1020100006563 A KR 1020100006563A KR 20100006563 A KR20100006563 A KR 20100006563A KR 20110087094 A KR20110087094 A KR 20110087094A
Authority
KR
South Korea
Prior art keywords
data
round
encryption
subblock
rounds
Prior art date
Application number
KR1020100006563A
Other languages
English (en)
Other versions
KR101112157B1 (ko
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 KR1020100006563A priority Critical patent/KR101112157B1/ko
Publication of KR20110087094A publication Critical patent/KR20110087094A/ko
Application granted granted Critical
Publication of KR101112157B1 publication Critical patent/KR101112157B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 데이터 암호화의 진행시 기본 단위인 서브블록의 크기를 사용자가 임의로 지정하거나 이미 설정해 놓은 값에 의해 진행함에 있어서, 암호화 대상이 되는 데이터를 바이트(Byte) 단위 이하의 크기인 비트(bit) 단위 예를 들어, 2 내지 7비트로 재분할하여 서브블록을 구성하도록 하는 서브블록의 크기, 이 서브블록을 어느 시점에서부터 셔플링할지를 정하는 셔플링을 위한 랜덤 수열 생성의 초기값, 이 초기값을 기준으로 얼마나 셔플링할지의 횟수 및 이러한 과정의 반복 횟수를 사용자가 선택할 수 있게 함으로써 원본 비교를 어렵게 하여 보다 향상된 안정성을 가지도록 한 데이터 암호화 방법에 관한 것이다.

Description

데이터 암호화 방법{Data Encrytion Method}
본 발명은 데이터 암호화 방법에 관한 것으로 특히, 데이터 암호화의 진행시 기본 단위인 서브블록의 크기를 사용자가 임의로 지정하거나 이미 설정해 놓은 값에 의해 진행함에 있어서, 암호화 대상이 되는 데이터를 바이트(Byte) 단위 이하의 크기인 비트(bit) 단위로 분할함에 있어, 2 내지 7비트로 재분할하여 서브블록을 구성하도록 하는 서브블록의 크기, 이 서브블록을 어느 시점에서부터 셔플링할지를 정하는 셔플링을 위한 랜덤 수열 생성의 초기값, 이 초기값을 기준으로 얼마나 셔플링할지의 횟수 및 이러한 과정의 반복 횟수를 사용자가 선택할 수 있게 함으로써 원본 비교를 어렵게 하여 보다 향상된 안정성을 가지도록 한 데이터 암호화 방법에 관한 것이다.
디지털 통신에서 데이터에 대한 불특정한 3자의 취급을 배제하고, 데이터 내용을 보존하기 위한 암호화(Encryption) 및 복호화(Decryption) 방법은 매우 중요한 기술이다. 이를 반영하듯, 디지털 통신에서는 다양한 형태의 암호화/복호화 방법이 이용되고 있으며, 대표적인 것으로 블록 암호화 방식의 DES(Data Encryption Standard), FEAL(Fast Data Encipherment Algorithm) 및 AES(Advanced Encryption Standard)와 의사난수 부가형 암호화(Pseudo Random Number Add Type Cryptofraphy)와 같은 표준 및 방법을 예로 들 수 있다.
데이터의 암호화는 원데이터를 지정된 함수를 이용한 알고리즘에 의해 재분배하거나, 미리 정해진 순열을 원데이터에 부가하는 형태로 수행된다. 이와 같이 암호화되어 전송되는 데이터는 여러가지 환경에 노출되며, 이 중 의도적인 해커에 의해 이용될 소지가 있다. 이러한 해커들은 전송되는 데이터를 습득하고, 이들을 비교하여 원데이터를 유추하는 형태를 비롯해서 다양한 방법으로 암호화 방법을 알아내고, 알아낸 방법에 의해 원데이터들을 습득하게 된다.
일례로, 블록암호화 방식의 경우 일정한 크기의 바이트(Byte) 내지 비트 단위로 데이터를 블록화하여 처리하는 경우가 빈번하다. 그런데, 이렇게 암호화된 블록에 대해 억지기법(Brute Force Technique)과 같은 해킹방법을 적용하면, 매 해킹 시도의 경우마다 원데이터의 원본블록을 유추하여 비교를 당함으로써 결과적으로 원데이터가 해커에게 노출되는 문제점이 있다. 특히, 이러한 보안상의 취약점은 일정한 암호화에 있어서 일정한 알고리즘을 적용하며, 일정한 크기의 블록 단위로 암호화를 진행함으로써 발생하는 경향이 크다.
또한, 이러한 문제를 해결하기 위해 타원 곡선 함수를 이용하는 방법이나, 양자 암호 기술을 이용하여 보안성을 높이는 방법도 고려될 수 있으나, 이러한 경우 암호화 및 복호화를 수행하는 장치의 부하가 커지는 문제점이 있다.
본 발명은 데이터 암호화의 진행시 기본 단위인 서브블록의 크기를 사용자가 임의로 지정하거나 이미 설정해 놓은 값에 의해 진행함에 있어서, 암호화 대상이 되는 데이터를 바이트(Byte) 단위 이하의 크기인 비트(bit) 단위로 예를 들면, 2 내지 7비트로 재분할하여 서브블록을 구성하도록 하는 서브블록의 크기, 이 서브블록을 어느 시점에서부터 셔플링할지를 정하는 셔플링을 위한 랜덤 수열 생성의 초기값, 이 초기값을 기준으로 얼마나 셔플링할지의 횟수 및 이러한 과정의 반복 횟수를 사용자가 선택할 수 있게 함으로써 원본 비교를 어렵게 하여 보다 향상된 안정성을 가지도록 한 데이터 암호화 방법을 제공하는 것이다.
상기 목적을 달성하기 위하여 본 발명에 따른 데이터 암호화 방법은 원문데이터의 데이터 배열을 변경하여 암호데이터를 생성하는 데이터 암호화방법에 있어서, 상기 원문데이터를 일정한 데이터 단위로 구분하고, 행렬 형태로 재배열하여 배열 데이터를 생성하는 데이터 배열 단계; 상기 배열데이터의 상기 데이터 배열을 변경하기 위한 데이터 단위인 서브블록의 크기를 설정하는 서브블록 크기, 상기 서브블록 단위의 배열 변경을 위한 기준 서브블록을 지정하는 랜덤시드값 및 상기 서브블록 크기와 상기 랜덤시드값에 의한 배열 변경 횟수를 지정하기 위한 셔플링 횟수 정보를 가지며, 사용자에 의해 상기 서브블록 크기, 상기 랜덤시드값 및 상기 셔플링 횟수가 결정되는 라운드 설정값을 포함하여 구성되는 키데이터 작성단계; 상기 키데이터의 상기 라운드 설정값에 의해 상기 배열데이터의 데이터 배열을 변경하는 라운드를 진행하여 암호화 데이터를 생성하는 데이터 암호화 단계; 및 상기 암호화 데이터를 상기 원문데이터와 동일한 데이터 형태로 복원하는 데이터 복원 단계;를 포함하여 구성된다.
상기 키데이터는 상기 사용자에 의해 설정되고, 상기 암호화 데이터 생성을 위한 라운드의 수를 지정하는 라운드 수 정보를 포함하며, 상기 라운드 설정값은 상기 라운드 수에 의해 지정된 각각의 상기 라운드에 대해 개별적으로 작성된다.
상기 암호화 단계는, 상기 라운드 수 정보에 지정된 수의 라운드를 진행하여 상기 배열데이터를 암호화하여 상기 암호화 데이터를 생성하며, 현재의 상기 라운드는 이전에 진행된 상기 라운드의 상기 암호화 데이터를 또다시 암호화한다.
상기 키데이터 작성단계는, 상기 라운드 수 정보 입력 단계; 상기 라운드 수 정보에 지정된 수의 상기 라운드 각각에 대한 상기 서브블록 크기를 설정하는 서브블록 크기 설정 단계; 상기 라운드 각각에 대한 상기 랜덤시드값을 설정하는 랜덤시드값 설정 단계; 및 상기 라운드 각각에 대한 상기 셔플링 횟수를 설정하는 셔플링 횟수 설정 단계;를 포함하여 구성된다.
상기 데이터 암호화 단계는, 상기 키데이터의 상기 라운드 수 정보를 확인하는 라운드 수 확인 단계; 상기 라운드 수 정보에 지정된 수의 상기 라운드 중 어느 하나인 현재의 상기 라운드에 대한 상기 서브블록 크기 및 상기 랜덤시드값에 의해 상기 배열데이터를 암호화하여 상기 암호화 데이터를 생성하는 단계; 상기 암호화 데이터 생성 단계를 상기 셔플링 횟수에 지정한 수만큼 반복하여 진행하는 반복 진행 단계; 및 상기 암호화 데이터 생성 및 상기 반복 진행 단계를 상기 라운드 수 정보에 지정된 수만큼 반복하는 라운드 반복 단계;를 포함하여 구성된다.
본 발명에 따른 데이터 암호화 방법은 데이터 암호화의 진행시 기본 단위인 서브블록의 크기를 사용자가 임의로 지정하거나 이미 설정해 놓은 값에 의해 진행함에 있어서, 암호화 대상이 되는 데이터를 바이트(Byte) 단위 이하의 크기인 비트(bit) 단위로 분할함에 있어, 2 내지 7비트로 재분할하여 서브블록을 구성하도록 하는 서브블록의 크기, 이 서브블록을 어느 시점에서부터 셔플링할지를 정하는 셔플링을 위한 랜덤 수열 생성의 초기값, 이 초기값을 기준으로 얼마나 셔플링할지의 횟수 및 이러한 과정의 반복 횟수를 사용자가 선택할 수 있게 함으로써 원본 비교를 어렵게 하여 보다 향상된 안정성을 가지도록 하는 것이 가능해진다.
도 1은 데이터 암호화 및 복호화에 따른 일련의 과정을 도시한 개념도.
도 2는 본 발명의 데이터 암호화 방법에 따른 키데이터의 구성을 도시한 예시도.
도 3은 도 2의 키데이터 구조를 다른 형태로 도시한 예시도.
도 4는 서브블록 및 데이터의 배열을 설명하기 위한 도면.
도 5는 도 2 및 도 3의 키데이터에 사용자 설정을 입력하기 위한 인터페이스의 예를 도시한 예시도.
도 6은 본 발명에 따른 데이터 암호화 방법을 도시한 흐름도.
도 7은 도 6의 키데이터 작성 단계를 좀 더 상세히 도시한 순서도.
도 8은 도 6의 데이터 암호화 단계를 좀 더 상세히 도시한 순서도.
이하, 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 당해 분야의 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 설명하기로 한다. 첨부된 도면들에서 구성에 표기된 참조번호는 다른 도면에서도 동일한 구성을 표기할 때에 대체로 동일한 도면번호를 사용하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어 관련된 공지의 기능 또는 공지의 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고 도면에 제시된 어떤 특징들은 설명의 용이함을 위해 확대 또는 축소 또는 단순화된 것이고, 도면 및 그 구성요소들이 반드시 적절한 비율로 도시되어 있지는 않다. 그러나 당업자라면 이러한 상세 사항들을 쉽게 이해할 것이다.
도 1은 데이터 암호화 및 복호화에 따른 일련의 과정을 도시한 개념도이다.
도 1을 참조하면, 개인정보, 뱅킹정보, 업무자료와 같은 주요 자료를 수신자에게 전송하기 위해서는 불특정한 제3자에 의한 정보유출을 방지하기 위해 암호화 과정을 거치게 된다. 즉, 주요 자료에 대한 원문데이터(110a)는 발신자 측에서 암호화(130) 과정을 거쳐 암호화 데이터로 변형되고, 암호화 데이터가 원문데이터를 수신하는 자에게 전달된다. 이후, 수신자는 암호화 데이터를 복호화(150)하여 원문데이터로 복원한 후 자신의 목적에 맞게 이용한다. 이러한 암호화(130), 복호화(150) 과정에는 키데이터(120 : 120a, 120b)가 중요한 역할을 하게 된다. 키데이터(120)는 원문데이터를 암호화 또는 복호화 하기 위한 함수, 알고리즘 및 각종 정보가 저장된다. 즉, 이 키데이터(120)에 의해 데이터가 암호/복호되며, 이 때문에 발신자와 수신자가 동일한 내용의 키데이터(120)를 소유하고 있어야 원문데이터를 송/수신할 수 있으며, 자신의 목적에 따라 데이터를 이용할 수 있게 된다.
본 발명에 따른 데이터 암호화 방법은 이러한 데이터의 이용 과정에서 의도하지 않은 제3자에 의한 원문데이터의 노출을 방지하여 보안성을 향상시킨 데이터 암호화/복호화 방법을 제시한다.
종래의 데이터 암호화 방법은 개발자에 의해 정의된 함수와 방식에 의해 데이터 암호화가 진행되었다. 이로 인해, 동일한 암호화 프로그램 또는 방법을 사용하는 사용자는 모두 동일한 방식의 암호화 과정을 거친 암호화 데이터를 얻을 수 있었다. 때문에, 같은 방식에 의해 암호화된 데이터의 노출 빈도가 높아지고, 해킹의 우려가 커지는 문제가 있었다. 때문에 본 발명에서는 데이터 암호화의 과정을 사용자가 지정한 방법에 의해 수행하며, 이러한 과정을 사용자가 설정한 횟수만큼 반복하도록 하였다. 이를 통해, 본 발명의 데이터 암호화 방법은 암호화된 데이터 특이성을 증가시키고, 결과적으로 보안성을 강화함으로써 데이터 유추, 암호화 함수 노출에 따른 데이터 노출 가능성을 현저히 저감시키게 된다.
이러한 본 발명에 따른 데이터 암호화 방법을 구체적으로 설명하기에 앞서 도 2 및 도 3을 통해 키데이터의 구성 및 설정에 대해 먼저 설명하고, 이후 데이터 암호화 방법에 관해 설명하기로 한다. 한편, 본 발명에 따른 데이터 암호화 방법에서는 데이터의 암호화와 복호화가 동일한 키데이터를 이용하여 서로 역순의 과정을 통해 이루어진다. 때문에 본 발명의 상세한 설명에서는 암호화 과정에 관하여만 설명을 진행하고 복호화 과정에 대해서는 별도의 상세한 설명을 생략하기로 한다.
도 2는 본 발명의 데이터 암호화 방법에 따른 키데이터의 구성을 도시한 예시도이고, 도 3은 도 2의 키데이터 구조를 다른 형태로 도시한 예시도이다. 또한, 도 4는 서브블록 및 데이터의 배열을 설명하기 위한 도면이며, 도 5는 도 2 및 도 3의 키데이터에 사용자 설정을 입력하기 위한 인터페이스의 예를 도시한 예시도이다.
도 2 내지 도 5를 참조하면, 본 발명의 데이터 암호화 방법에 있어서 키데이터(120)는 라운드 수(230), 라운드 설정값(240) 및 암호화 함수(210)을 포함하여 구성된다.
라운드 수(230)는 사용자에 의해 몇 회의 라운드가 진행될 것인지에 대한 횟수 정보가 기록된다. 라운드 수(230)에 횟수 정보가 입력되면, 라운드 설정값(240)에는 라운드 수(230)에 입력된 수만큼의 라운드 각각에 대한 설정값 입력을 위한 항목이 생성된다. 본 발명에서는 사용자가 지정한 각기 다른 정보에 의해 데이터 암호화를 반복하여 진행하고, 이를 통해 암호화된 데이터의 보안성을 향상시키게 된다. 즉, 사용자가 지정한 설정에 의해 1회의 암호화 과정을 진행하는 과정을 라운드라고 할 수 있다. 구체적으로 라운드 수(230)에 기록된 횟수만큼 라운드가 반복되어, 각 라운드에서 지정한 방법에 의해 데이터를 반복적으로 암호화하게 된다.
라운드 설정값(240)은 라운드 수(230)에 의해 정의된 각 라운드들(241 내지 243)에 의해 암호화를 진행하는데 필요한 설정 정보가 사용자에 의해 입력된다. 이 라운드 설정값(240)에는 각 라운드의 진행에 따른 데이터 암호화에 있어서, 암호화된 데이터의 특이성을 향상시키기 위한 사용자 설정값이 저장되며, 이러한 설정값은 각각의 라운드에 대해 개별적으로 설정된다. 즉, 도 2 및 도 3에 도시된 바와 같이 라운드 수(230)에 사용자가 N개의 라운드를 진행하도록 설정하면, 라운드 설정값(240)에는 N개의 라운드 각각에 대한 설정값 입력을 위한 영역이 생성된다. 아울러, 생성된 각각의 라운드(241 내지 243)에는 암호화에 필요한 사용자 설정 항목인 해당 라운드의 서브블록 크기(244), 랜덤시드값(245) 및 셔플링 횟수(246) 설정을 위한 항목이 포함되어 구성된다. 구체적으로 본 발명에서는 원문데이터(110a)의 배열을 난수적으로 변경하여 암호화하게 된다. 특히, 이러한 난수적 배열 변경은 사용자가 지정한 라운드 수(230)만큼 반복되며, 각 라운드에서의 난수적 배열 변경은 사용자가 지정한 방식에 의해 진행되게 된다. 이를 위해 라운드 설정값(240)에는 각 라운드(241 내지 243)의 데이터 배열 변경을 위한 설정 항목이 입력되며, 이러한 설정 항목들이 서브블록 크기(244), 랜덤시드값(245) 및 셔플링 횟수(246)이다.
본 발명에서는 데이터의 암호화를 위해 데이터의 배열을 바꾸는 방법을 이용한다. 이를 위해 도 4에서와 같이 일정한 형태 예를 들어 연속적인 데이터 배열을 가지는 원문데이터(300)가 제공되면, 이를 일정한 단위 길이(u)별로 정렬하여 매트릭스(또는 바둑판 또는 그물) 형태의 배열데이터(310)를 생성하게 되며, 배열데이터(310)는 라운드 설정값(240)에 설정된 값들에 의해 배열데이터(310)의 데이터 위치를 변경함으로써 데이터 암호화를 진행하게 된다. 여기서, 단위 길이(u)는 데이터 암호화가 용이한 길이로 미리 설정될 수 있으며, 원문데이터(300)의 보편적인 크기, 데이터 암호화를 진행하는 장치의 연산능력에 따라 설정된 값일 수 있으나, 사용자에 의해 설정되도록 하는 것도 가능하다. 즉, 배열데이터(310)를 이용하여 데이터의 암호화를 진행하는데 있어서, 배열데이터(310)의 데이터 위치를 변경하기 위한 설정값들이 서브블록 크기(244), 랜덤시드값(245) 및 셔플링 횟수(246)이다. 이 서브블록 크기(244), 랜덤시드값(245) 및 셔플링 횟수(246)는 사용자에 의해 임의 지정되는 것으로 각 라운드마다 다르게 지정될 수도 있고, 일부 라운드가 같은 값을 가지도록 지정될 수도 있다.
구체적으로 서브블록 크기(244)는 배열데이터(310)의 데이터 위치를 변경할 때 위치가 변경되는 데이터의 묶음으로 정의될 수 있다. 즉, 사용자가 도 4에 도시된바와 같이 2X2의 서브블록(320)을 지정한 경우 데이터 셔플링 즉, 위치 변경이 이루어지면 2X2 크기의 서브블록(320) 단위로 데이터가 이동되어 배열데이터(310) 상에 위치가 변경된다. 이러한 서브블록(320)의 크기는 사용자에 의해 비트X비트(bit)로 정의될 수 있으나, 워드(1/2 바이트) 또는 바이트(byte) 크기로 지정이 될 수 있으며, 이러한 단위를 혼합하여 서브블록(320)의 크기가 결정될 수 있다. 일례로 도 4에서는 배열데이터(310)의 한 칸이 1비트인 경우가 도시되어 있으며, 서브블록(320)은 2비트X2비트 크기 외에도 1비트X3비트의 서브블록(321)과 같이 다양하게 정의될 수 있다. 즉, 데이터의 배열 변경에 있어서 일정한 크기를 가지지 않는 서브블록(320, 321)을 이용하도록 함으로써 예측 가능한 배열의 조합 수를 크게 증가시켜 원문데이터(300)의 유추가 매우 어려워지게 된다. 여기서, 이러한 서브블록의 크기 설정은 바이트(byte) 단위보다 작은 비트(bit) 단위의 크기로 설정하면 종래의 바이트(byte) 단위로 가지고 있던 정보를 각기 다른 바이트 정보와 혼합되어, 본래의 정보를 유추하기 더욱 어려워진다. 때문에 서브블록의 크기는 바이트 단위 즉, 8비트보다 큰 단위로 설정되도록 할 수도 있으며, 사용자가 임의적으로 설정하는 것이 가능하다. 실제 데이터의 암호화에 있어서 서브블록 크기(244)가 사용자에 의해 지정되면, 배열데이터(310)는 지정된 크기의 서브블록(244) 집합인 서브블록 배열로 인식되어 암호화가 진행된다. 이러한 서브블록(244)의 크기는 각 라운드별로 사용자에 의해 설정되며, 설정된 값은 각 라운드(241 내지 243)별로 서브블록의 크기가 다르게 설정되도록 하거나, 일부 라운드의 서브블록 크기가 같도록 설정되거나, 모든 라운드(241 내지 243)가 같은 서브블록 크기를 가지도록 설정될 수 있다.
랜덤시드값(245)은 서브블록 크기가 지정된 배열데이터(310) 즉, 서브블록 배열에서 어느 서브블록(320)으로부터 셔플링 즉, 데이터의 위치 변경을 수행할 것인지에 대한 값이 사용자에 의해 지정된다. 즉, 랜덤시드값(245)은 암호화 함수(210)가 서브블록(320) 단위로 배열데이터(310)를 셔플링할 때 셔플링이 시작되는 서브블록(320)을 지정하는 값이 된다. 이 랜덤시드값(245)이 사용자에 의해 임의적으로 설정됨으로써 셔플링이 시작되는 시작점을 사용자의 의도에 따라 각 라운드별로 같거나 다르게 하여 데이터의 암호화에 있어서 의외성, 특이성을 더욱 증가시킬 수 있게 된다. 여기서, 의외성과 특이성은 암호화된 데이터의 예측이 곤란한 정도를 의미한다. 데이터 등 원본을 알 수 없는 데이터의 유추에 있어서 일정한 크기의 데이터를 이용한 암호화, 동일한 암호화 함수를 이용한 암호화와 같이 규칙적인 과정에 의해 암호화된 데이터는 유추가 용이하다. 하지만, 본 발명에서 사용자에 의해 지정되는 값들에 의해 불규칙적인 암호화를 진행하며, 이를 사용자가 지정한 횟수만큼 반복하도록 하여 과정의 불규칙적인 진행에 의한 특성을 증가시키게 된다. 이와 같은 방법에 의해서 본 발명은 암호화된 데이터의 규칙적인 부분을 최소화하고 임의적인 부분을 증가시킴으로써 암호화된 데이터에 비규칙적 특성인 의외성과 특이성을 부여할 수 있게 된다.
셔플링 횟수(246)는 랜덤시드값(245)에 의해 지정되는 서브블록(320)을 기준으로 배열데이터(310)를 몇 번 셔플링할 것인지에 대한 값이 사용자에 의해 지정된다. 즉, 셔플링 횟수(246)를 사용자가 각 라운드별로 임의적으로 지정함으로써 라운드별 데이터의 셔플링 횟수(246)를 같거나 다르게 할 수 있으며, 이를 통해 랜덤시드값(245) 지정, 서브블록 크기(244) 설정에 부가하여 암호화된 데이터의 의외성과 특이성을 더욱 더 증가시키기 되고, 이를 통해 데이터의 보안성을 더욱 높이게 된다.
한편, 도 5에는 이러한 라운드 수(230) 및 라운드 설정값(240)을 사용자가 입력할 수 있도록 하는 인터페이스 프로그램에 의해 제공되는 입력화면(400)의 예가 도시되어 있다. 도 5를 통해 알 수 있는 바와 같이 제공되는 입력화면(400)의 각 항목에 라운드 수(230, Total Rounds), 셔플링 횟수(246, Shuffling Times), 랜덤시드값(245, Random Seed) 및 서브블록 크기(244, 도 5에서는 생략되어 도시되지 않음)을 각 라운드 번호(Round No.) 별로 지정할 수 있게 된다.
암호화 함수(210)는 설정 항목에 기록된 사용자의 설정에 따라 원문데이터를 암호화하는 함수가 저장된다. 여기서, 본 발명의 상세한 설명에서 언급되는 '암호화 함수'는 독립 변수와 종속 변수 사이의 관계를 명시하는 표현이나 규칙 즉, 하나의 수식뿐만 아니라, 데이터 암호화를 수행하는 함수의 집합, 암호화에 필요한 절차나 규칙을 포함하는 의미로 사용된다. 또한, 본 발명에 따른 키데이터는 사용자에게 독립적인 데이터로 제공될 수도 있지만, 설정 항목의 입력을 위한 인터페이스 프로그램에 포함되어 제공되는 것이 가능하다. 특히, 본 발명의 상세한 설명에서는 설명의 편의를 위해 키데이터가 암호화 함수(210)를 포함하여 구성되는 것으로 기재되어 있으나, 키데이터와 암호화 함수(210)는 별도의 데이터 또는 프로그램 형태로 제공될 수 있으며, 인터페이스 프로그램과 함께 하나의 세트 프로그램으로 제공될 수 있으나, 이로써 본 발명을 한정하는 것은 아니다.
도 6은 본 발명에 따른 데이터 암호화 방법을 도시한 흐름도이다.
도 6을 참조하면, 본 발명에 따른 데이터 암호화 방법은 키데이터 작성 단계(S100), 배열데이터 생성 단계(S200), 데이터 암호화 단계(S300) 및 데이터 배열 복원 단계(S400)를 포함하여 구성된다.
키데이터 작성 단계(S100)는 라운드 수(230), 라운드 수(230)에 의해 정해진 각각의 라운드에 대한 서브블록 크기(244), 랜덤시드값(245) 및 셔플링 횟수(246)를 설정하여 키데이터를 작성하는 단계이다. 키데이터 작성 단계(S100)에서 사용자는 전술한 도 5와 같은 인터페이스 프로그램을 통해 키데이터(120)의 세부 설정을 수행하여 키데이터(120)를 작성하게 된다. 이 키데이터 작성 단계(S100)에서 사용자는 우선 몇 개의 라운드(241 내지 243)를 통해 데이터를 암호화할 것인가를 결정하여 라운드 수(230)를 지정하게 된다. 라운드 수(230)가 지정되면, 라운드 수(230)에 의해 지정된 라운드들 각각에 대해 서브블록 크기(244) 설정, 랜덤시드값(245) 설정 및 셔플링 횟수(246) 설정이 이루어지게 된다.
배열데이터 생성 단계(S200)는 암호화를 위해 원문데이터(300)의 배열을 변경하여 매트릭스 형태의 배열데이터(310)를 생성하는 단계이다. 배열데이터 생성 단계(S200)에서는 컴퓨터와 같은 암호화 장치가 원문데이터(300)를 일정한 단위 길이(u)로 구분하여 이를 매트릭스 형태로 재배치하여 배열데이터(310)를 생성하는 단계이다.
데이터 암호화 단계(S300)는 생성된 배열데이터(310)를 키데이터(120)의 설정을 적용하여 암호화하는 단계이다. 데이터 암호화 단계(S300)에서 암호화를 실행하는 장치는 키데이터(120)에 포함된 라운드 수(230), 라운드별 서브블록 크기(244), 랜덤시드값(245) 및 셔플링 횟수(246)를 확인하고, 확인된 정보에 따라 배열데이터(310)를 암호화하게 된다. 이를 통해 데이터 암호화 단계(S300)에서는 배열데이터(310)과 복수의 셔플링 과정을 거쳐 암호화되어 암호화 데이터가 생성된다.
데이터 배열 복원 단계(S400)는 암호화가 이루어진 암호화 데이터(330)를 원문데이터(300)와 동일한 형태 및 형식의 데이터로 변환하는 단계이다. 이 데이터 배열 복원 단계(S400)에서는 암호화가 이루어진 매트릭스 형태의 데이터 즉, 암호화 데이터(330)를 원문데이터의 형태로 재변환하는 과정이 진행된다. 이를 위해 데이터 배열 복원 단계(S400)에서는 매트릭스 형태의 암호화 데이터를 배열데이터 생성시의 단위길이(u)로 취득하여, 연속적인 데이터 형태로 재변환하게 된다. 아울러, 연속적인 데이터로 환원된 암호화 데이터는 사용자가 지정한 방식에 의해 수신자에게 전달된다.
도 7은 도 6의 키데이터 작성 단계를 좀 더 상세히 도시한 순서도이다.
도 7을 참조하면, 키데이터 작성 단계(S100)는 라운드 수 입력 단계(S110), 서브블록 크기 설정 단계(S120), 랜덤시드값 입력 단계(S130), 셔플링 횟수 입력 단계(S140) 및 라운드 설정값 입력 여부 판단 단계(S150)를 포함하여 구성된다.
라운드 수 입력 단계(S110)는 사용자가 데이터를 암호화하는 데 있어서 몇 번의 라운드를 진행하도록 할지에 대한 라운드 횟수를 입력하는 단계이다. 이 라운드 수 입력 단계(S210)에서 사용자는 1이상의 자연수(예를 들어 'N' 입력)를 입력하게 되고, 입력된 수에 따라 라운드 설정값 입력을 위한 항목이 생성되게 된다.
서브블록 크기 설정 단계(S120)는 라운드 수 입력 단계(S110)에서 결정된 라운드 각각에 대한 서브블록 크기가 설정되는 단계이다. 구체적으로, N 개의 라운드가 진행되도록 설정되면, 1부터 N까지의 각 라운드에 대한 각각의 서브블록 크기가 설정된다. 예를 들어, 현재의 설정값 입력 단계가 I번째(1≤I≤N인 자연수) 라운드에 대한 설정값인 경우 I번째 라운드에서 데이터 암호화에 적용되는 서브블록 크기를 설정하게 된다.
랜덤시드값 입력 단계(S130)는 라운드 수 입력 단계(S110)에서 결정된 라운드 각각에 대한 랜덤시드값이 입력되는 단계이다. 이 랜덤시드값 입력 단계(S130)도 서브블록 크기 설정 단계(S120)와 마찬가지로, N 개의 라운드가 진행되도록 설정된 경우 1부터 N까지의 각 라운드에 대한 각각의 랜덤시드값이 입력되도록 반복적으로 수행된다.
셔플링 횟수 입력 단계(S140)는 라운드 수 입력 단계(S110)에서 결정된 라운드 각각에 대한 셔플링 횟수가 입력되는 단계이다. 이 셔플링 횟수 입력 단계(S140)도 서브블록 크기 설정 단계(S120) 및 랜덤시드값 입력 단계(S130)와 마찬가지로 N 개의 라운드가 진행되도록 설정된 경우 1부터 N까지의 각 라운드에 대한 각각의 랜덤시드값이 입력되도록 반복적으로 수행된다.
라운드 설정값 입력 여부 판단 단계(S150)는 전술한 서브블록 크기 설정 단계(S120) 내지 셔플링 횟수 입력 단계(S140)가 라운드 수 입력 단계(S110)에서 설정된 라운드 수만큼 반복되었는지 판단하는 단계이다. 라운드 설정값 입력 여부 판단 단계(S150)에서는 사용자가 설정한 라운드 수에 해당하는 각 라운드에 암호화를 위한 각각의 설정값이 입력되었는지 판단하며, 판단 결과에 따라 배열데이터 생성 단계(S200)로 이행하거나, 나머지 라운드에 대한 설정값을 입력하도록 서브블록 크기 설정 단계(S120)로 복귀하게 된다. 이를 위해, 라운드 설정값 입력 여부 판단 단계(S150)는 라운드 설정값의 입력이 이루어진 라운드 수를 카운트하는 단계와, 카운트 값(I)과 입력된 라운드 수(N)를 비교하는 단계를 포함하여 구성될 수 있으나, 이로써 본 발명을 한정하는 것은 아니다.
도 8은 도 6의 데이터 암호화 단계를 좀 더 상세히 도시한 순서도이다.
도 8을 참조하면, 데이터 암호화 단계는 라운드 수 확인 단계(S310), 서브블록 크기 확인 단계(S320), 랜덤시드값 확인 단계(S330), 셔플링 횟수 확인 단계(S340), 암호화 단계(S350), 암호화 반복 확인 단계(S360) 및 라운드 반복 확인 단계(S370)를 포함하여 구성된다.
라운드 수 확인 단계(S310)는 암호화 실행 장치에 의해 키데이터에 설정된 라운드 수(N) 정보가 확인되고, 각 라운드를 진행하기 위한 준비가 이루어지는 단계이다. 암호화 실행 장치는 라운드 수 확인 단계(S310)에서 확인된 라운드 수만큼 서브블록 크기 확인 단계(S320) 내지 암호화 반복 확인 단계(S360)를 반복하여 진행하게 된다.
서브블록 크기 확인 단계(S320)는 암호화 실행 장치에 의해 키데이터에 설정된 해당 라운드의 서브블록 크기를 확인하는 단계이다. 서브블록 크기 확인 단계(S320)는 암호화 실행 장치가 사용자에 의해 설정된 키데이터를 확인하고, 데이터 암호화를 위해 현재 라운드에서 서브블록 크기를 확인하여 데이터 암호화를 시작하는 단계이다. 이를 위해 서브블록 크기 확인 단계(S320)는 현재 라운드에 대해 설정된 서브블록 크기를 확인한 암호화 실행 장치가 배열데이터(310)를 서브블록 크기 단위로 구분 또는 분할하는 단계를 포함하여 구성될 수 있다.
랜덤시드값 확인 단계(S330)는 암호화 실행 장치에 의해 키데이터에 설정된 현재 라운드의 랜덤시드값이 확인되는 단계이다. 랜덤시드값은 전술한 바와 같이, 서브블록 크기 및 셔플링 횟수(Y)와 마찬가지로 사용자에 의해 설정되는 값으로, 암호화함수에 의해 셔플링의 기준이 되는 서브블록을 지정하는 값이다. 랜덤시드값 확인 단계(S330)에서 암호화 실행 장치는 현재 라운드에 대해 설정된 랜덤시드값을 확인하고, 서브블록 크기 확인 단계(S320)에서 구분된 서브블록 중 랜덤시드값에 의해 지정된 서브블록을 확인하게 된다. 특히, 랜덤시드값 확인 단계(S330)는 데이터 암호화를 위한 암호화 함수가 호출되고, 호출된 암호화 함수에 랜덤시드값이 제공되어 암호화를 위한 과정이 준비된다.
셔플링 횟수 확인 단계(S340)는 암호화 실행 장치가 키데이터 설정된 현재 라운드의 셔플링 횟수를 확인하는 단계이다. 셔플링 횟수 확인 단계(S340)에서 암호화 실행 장치는 이전 단계에서 확인 서브블록 크기 및 랜덤시드값에 의해 몇 번의 셔플링을 수행할지 확인하게 된다.
암호화 단계(S350)는 암호화 실행 장치가 키데이터, 구체적으로 현재 라운드에 대한 서브블록 크기, 랜덤시드값에 의해 암호화를 진행하는 단계이다. 암호화 단계(S350)에서 암호화 실행 장치는 현재 라운드에 대해 설정된 서브블록 크기 단위로 랜덤시드값에 의해 지정되는 서브블록을 기준으로 하여 셔플링을 진행하게 된다. 이를 통해 암호화 단계(S350)에서는 배열데이터(310)를 랜덤시드값에 의해 지정된 서브블록을 기준으로 서브블록 크기 단위로 셔플링이 이루어지고, 배열데이터(310)와 동일한 형태이지만, 데이터의 위치가 셔플링된 예비 암호데이터가 생성된다.
암호화 반복 확인 단계(S360)는 암호화 실행 장치가 키데이터에서 현재 라운드에 대해 지정된 셔플링 횟수(Y)만큼 암호화 단계(S350)가 반복되었는지 판단하는 단계이다. 반복 확인 단계(S360)에서 암호화 실행 장치는 암호화 단계(S350)의 수행횟수를 카운트하고, 카운트 결과가 셔플링 횟수(Y)에서 지정된 값과 같은 값인지를 판단한다. 그리고, 암호화장치는 판단 결과에 따라 카운트 결과가 셔플링 횟수(Y)를 충족하도록 암호화 단계(S350)를 다시 진행하거나, 라운드 반복 확인 단계(S370)를 진행하게 된다.
라운드 반복 확인 단계(S370)는 암호화장치가 서브블록 크기 확인(S320) 내지 암호화 반복 확인 단계(S360)가 키데이터에 설정된 라운드 수(N)만큼 반복되었는지 판단하는 단계이다. 라운드 반복 확인 단계(S370)에서 암호화장치는 판단 결과 암호화가 사용자가 지정한 라운드 수(N)만큼 반복되면, 데이터 배열 복원 단계(S400)를 진행하고, 라운드 수(N)만큼 반복되지 않은 경우 서브블록 크기확인 내지 라운드 반복 확인 단계(S370)를 진행하게 된다. 특히, 라운드 반복 확인 단계(S370)에서 잔여 라운드가 존재하는 것으로 판단되면, 암호화장치는 다음 차례의 라운드에 대한 서브블록 크기 확인 단계(S320) 내지 암호화 반복 확인 단계(S360)를 진행하여 이전 라운드와는 다른 설정에 의해 데이터를 암호화하게 된다. 또한, 새로 시작되는 라운드에 의한 암호화는 이전 라운드에서 생성된 예비 암호화 데이터를 이용하여 진행되며, 이를 통해 원문데이터를 반복적으로 다른 설정에 의해 암호화하게 된다.
한편, 본 발명에 따른 데이터 암호화 방법에 의해 암호화된 데이터 방법은 다양한 장치에서 이용이 가능하다. 일반적으로 컴퓨터를 통해 이용할 수 있으며, 이외에도 입력이 가능한 전자장치, 예를 들어, IPTV, 항공기, 무인항공기, 인공위성, 전자사전, 휴대용 멀티미디어 플레이어, 휴대용 MP3 재생장치, 휴대폰, 네비게이션과 같은 장치들을 통해서 이용이 가능하다. 특히, 암호화된 데이터를 수신하여 복호화하는 장치의 키데이터를 전송받아 연산을 수행할 수 있는 장치이면 입력 장치가 구성되지 않는 경우에도 이용이 가능하다.
또한, 이러한 키데이터는 USB(Universal Serial Bus) 메모리, SD(Secure Digital) 카드와 같은 휴대용 메모리 장치를 통해 암호화된 데이터 수신자에게 전달되고, 수신자의 컴퓨터 장치에 이용될 수 있다. 아울러 본 발명에 따른 데이터 암호화 방법은 데이터 통신이 가능한 장치들 간의 통신에 적용이 될 수 있으며, 통신망에 의한 연결, 직접 연결 또는 메모리 장치에 의한 데이터 이동의 경우에도 적용이 가능하다.
110, 300 : 원문데이터 120 : 키데이터
130 : 암호화 150 : 복호화
210 : 암호화함수 230 : 라운드 수 정보
240 : 라운드 설정값 244 : 서브블록 크기
245 : 랜덤시드값 246 : 셔플링 횟수
310 : 배열데이터 320, 321 : 서브블록
330 : 암호화 데이터

Claims (5)

  1. 원문데이터의 데이터 배열을 변경하여 암호데이터를 생성하는 데이터 암호화방법에 있어서,
    상기 원문데이터를 일정한 데이터 단위로 구분하고, 행렬 형태로 재배열하여 배열 데이터를 생성하는 데이터 배열 단계;
    상기 배열데이터의 상기 데이터 배열을 변경하기 위한 데이터 단위인 서브블록의 크기를 설정하는 서브블록 크기, 상기 서브블록 단위의 배열 변경을 위한 기준 서브블록을 지정하는 랜덤시드값 및 상기 서브블록 크기와 상기 랜덤시드값에 의한 배열 변경 횟수를 지정하기 위한 셔플링 횟수 정보를 가지며, 사용자에 의해 상기 서브블록 크기, 상기 랜덤시드값 및 상기 셔플링 횟수가 결정되는 라운드 설정값을 포함하여 구성되는 키데이터 작성단계;
    상기 키데이터의 상기 라운드 설정값에 의해 상기 배열데이터의 데이터 배열을 변경하는 라운드를 진행하여 암호화 데이터를 생성하는 데이터 암호화 단계; 및
    상기 암호화 데이터를 상기 원문데이터와 동일한 데이터 형태로 복원하는 데이터 복원 단계;를 포함하여 구성되는 것을 특징으로 하는 데이터 암호화 방법.
  2. 제 1 항에 있어서,
    상기 키데이터는
    상기 사용자에 의해 설정되고, 상기 암호화 데이터 생성을 위한 라운드의 수를 지정하는 라운드 수 정보를 포함하며,
    상기 라운드 설정값은
    상기 라운드 수에 의해 지정된 각각의 상기 라운드에 대해 개별적으로 작성되는 것을 특징으로 하는 데이터 암호화 방법.
  3. 제 2 항에 있어서,
    상기 암호화 단계는,
    상기 라운드 수 정보에 지정된 수의 라운드를 진행하여 상기 배열데이터를 암호화하여 상기 암호화 데이터를 생성하며,
    현재의 상기 라운드는 이전에 진행된 상기 라운드의 상기 암호화 데이터를 재암호화 하는 것을 특징으로 하는 데이터 암호화 방법.
  4. 제 3 항에 있어서,
    상기 키데이터 작성단계는,
    상기 라운드 수 정보 입력 단계;
    상기 라운드 수 정보에 지정된 수의 상기 라운드 각각에 대한 상기 서브블록 크기를 설정하는 서브블록 크기 설정 단계;
    상기 라운드 각각에 대한 상기 랜덤시드값을 설정하는 랜덤시드값 설정 단계; 및
    상기 라운드 각각에 대한 상기 셔플링 횟수를 설정하는 셔플링 횟수 설정 단계;를 포함하여 구성되는 것을 특징으로 하는 데이터 암호화 방법.
  5. 제 3 항에 있어서,
    상기 데이터 암호화 단계는,
    상기 키데이터의 상기 라운드 수 정보를 확인하는 라운드 수 확인 단계;
    상기 라운드 수 정보에 지정된 수의 상기 라운드 중 어느 하나인 현재의 상기 라운드에 대한 상기 서브블록 크기 및 상기 랜덤시드값에 의해 상기 배열데이터를 암호화하여 상기 암호화 데이터를 생성하는 단계;
    상기 암호화 데이터 생성 단계를 상기 셔플링 횟수에 지정한 수만큼 반복하여 진행하는 반복 진행 단계; 및
    상기 암호화 데이터 생성 및 상기 반복 진행 단계를 상기 라운드 수 정보에 지정된 수만큼 반복하는 라운드 반복 단계;를 포함하여 구성되는 것을 특징으로 하는 데이터 암호화 방법.
KR1020100006563A 2010-01-25 2010-01-25 데이터 암호화 방법 KR101112157B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100006563A KR101112157B1 (ko) 2010-01-25 2010-01-25 데이터 암호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100006563A KR101112157B1 (ko) 2010-01-25 2010-01-25 데이터 암호화 방법

Publications (2)

Publication Number Publication Date
KR20110087094A true KR20110087094A (ko) 2011-08-02
KR101112157B1 KR101112157B1 (ko) 2012-02-22

Family

ID=44925983

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100006563A KR101112157B1 (ko) 2010-01-25 2010-01-25 데이터 암호화 방법

Country Status (1)

Country Link
KR (1) KR101112157B1 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9762384B2 (en) 2012-06-29 2017-09-12 Penta Security Systems Inc. Generation and verification of alternate data having specific format
KR20190036339A (ko) * 2017-09-27 2019-04-04 주식회사 에이치앤비트 동영상 암호화 방법
KR20190036328A (ko) * 2017-09-27 2019-04-04 주식회사 에이치앤비트 프레임 선별적 동영상 암호화 방법
WO2019112185A1 (ko) * 2017-12-08 2019-06-13 주식회사 명광 동영상 보안 전송 시스템
CN110147679A (zh) * 2019-05-29 2019-08-20 山东浪潮人工智能研究院有限公司 一种粒度可调的数据置乱方法
KR102163718B1 (ko) * 2020-03-17 2020-10-08 주식회사 에스티리서치 설문조사 부정 응답자 판별 ai 프로그램
KR102455357B1 (ko) * 2022-03-14 2022-10-18 (주)라바웨이브 뉴럴 네트워크 기반의 피싱 데이터 필터링 시스템
WO2023191216A1 (ko) * 2022-03-28 2023-10-05 주식회사 아이서티 데이터 암호화 및 복호화 시스템, 방법
KR102617446B1 (ko) * 2023-01-30 2023-12-27 박성곤 인코더, 인코딩 방법 및 컴퓨터 판독가능 기록매체

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102399199B1 (ko) 2022-02-17 2022-05-18 주식회사 명광 실시간 영상 보안 전송 시스템 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345101B1 (en) 1998-10-07 2002-02-05 Jayant Shukla Cryptographic method and apparatus for data communication and storage
KR20030001888A (ko) * 2001-06-28 2003-01-08 박승배 키를 사용하지 않고 블록 정보만을 이용하는 암호알고리즘 설계 방법
KR100403820B1 (ko) * 2001-07-03 2003-10-30 삼성에스디에스 주식회사 암호화 처리장치 그 방법
JP2007189659A (ja) 2005-12-15 2007-07-26 Toshiba Corp 暗号化装置、暗号化方法及び暗号化プログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9762384B2 (en) 2012-06-29 2017-09-12 Penta Security Systems Inc. Generation and verification of alternate data having specific format
KR20190036339A (ko) * 2017-09-27 2019-04-04 주식회사 에이치앤비트 동영상 암호화 방법
KR20190036328A (ko) * 2017-09-27 2019-04-04 주식회사 에이치앤비트 프레임 선별적 동영상 암호화 방법
WO2019112185A1 (ko) * 2017-12-08 2019-06-13 주식회사 명광 동영상 보안 전송 시스템
CN110147679A (zh) * 2019-05-29 2019-08-20 山东浪潮人工智能研究院有限公司 一种粒度可调的数据置乱方法
KR102163718B1 (ko) * 2020-03-17 2020-10-08 주식회사 에스티리서치 설문조사 부정 응답자 판별 ai 프로그램
KR102455357B1 (ko) * 2022-03-14 2022-10-18 (주)라바웨이브 뉴럴 네트워크 기반의 피싱 데이터 필터링 시스템
WO2023191216A1 (ko) * 2022-03-28 2023-10-05 주식회사 아이서티 데이터 암호화 및 복호화 시스템, 방법
KR102617446B1 (ko) * 2023-01-30 2023-12-27 박성곤 인코더, 인코딩 방법 및 컴퓨터 판독가능 기록매체

Also Published As

Publication number Publication date
KR101112157B1 (ko) 2012-02-22

Similar Documents

Publication Publication Date Title
KR101112157B1 (ko) 데이터 암호화 방법
US11991275B2 (en) System and method for quantum-safe authentication, encryption and decryption of information
US9443091B2 (en) Method and system for protecting execution of cryptographic hash functions
US9350544B2 (en) Apparatus for encrypting data
US11296869B2 (en) Apparatus and method for unbreakable data encryption
KR102397579B1 (ko) 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치
CN111010266B (zh) 消息的加解密、读写方法、装置、计算机设备和存储介质
EP1975779A2 (en) Pseudorandom number generator and encryption device using the same
CN109639423B (zh) 一种解密算法的构成装置
WO2019225735A1 (ja) データ処理装置、方法及びコンピュータプログラム
KR102096359B1 (ko) 거듭 행렬 기반의 비밀키 암호화가 가능한 데이터 전송 장치 및 그 동작 방법
JP5992651B2 (ja) 暗号化方法、プログラム、および、システム
JP2017527225A (ja) 暗号システムの再現可能なランダムシーケンス
US20170085371A1 (en) System and method for an enhanced xor cipher through extensions
Salam et al. ShiftMod cipher: A symmetrical cryptosystem scheme
KR20170127105A (ko) 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치
KR101440680B1 (ko) 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
CN116248316A (zh) 文件加密方法、文件解密方法、装置及存储介质
KR102522708B1 (ko) 동형 암호문에 대한 통계 연산 수행하는 장치 및 방법
CN111008837A (zh) 区块链账户私钥恢复方法、装置、计算机设备及存储介质
Charru et al. Improved Cryptography Algorithm to Enhanced Data Security
KR102637234B1 (ko) 격자 기반 공개키 암호 시스템 및 이에 포함된 전자장치
JP2003345243A (ja) 畳み込み暗号化方法、畳み込み暗号化装置および畳み込み暗号化プログラム
CN117834111A (zh) 一种数据加密、解密方法及线上贷款系统
CN114362934A (zh) 密钥生成方法、装置、电子设备及存储介质

Legal Events

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

Payment date: 20150115

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160718

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170502

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171204

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190729

Year of fee payment: 8