KR100423191B1 - Improving secure server performance with pre-processed data ready for secure protocol transfer - Google Patents

Improving secure server performance with pre-processed data ready for secure protocol transfer Download PDF

Info

Publication number
KR100423191B1
KR100423191B1 KR10-2001-0026321A KR20010026321A KR100423191B1 KR 100423191 B1 KR100423191 B1 KR 100423191B1 KR 20010026321 A KR20010026321 A KR 20010026321A KR 100423191 B1 KR100423191 B1 KR 100423191B1
Authority
KR
South Korea
Prior art keywords
file
delete delete
symmetric encryption
record
improving
Prior art date
Application number
KR10-2001-0026321A
Other languages
Korean (ko)
Other versions
KR20010110991A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20010110991A publication Critical patent/KR20010110991A/en
Application granted granted Critical
Publication of KR100423191B1 publication Critical patent/KR100423191B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 보안 소켓 계층(SSL) 또는 트랜잭션 층 보안(TLS)과 같은 보안 프로토콜을 이용하여 전송될 벌크(bulk) 데이터의 대칭 암호화를 수행하는 방식의 효율을 향상시키기 위한 방법, 시스템 및 컴퓨터 프로그램 제품에 관한 것이다. 제공되는 파일은 그 파일 내에 프로토콜 규정에 따라서 해시 값이 요구되는 위치에 빈 공간을 삽입한다. 상기 파일이 클라이언트에 의해 요청될 때, 실제 해시 값이 계산되어 예약된 빈 공간을 대체한다. 본 기법은 큰 데이터 블록을 암호화 엔진에 전송할 수 있도록 하며, 보안 프로토콜 규정에 의해 부과되는 메시지 세그먼트들에 대한 보다 작은 크기 제한에 관계없이 그 결과의 처리 효율을 이용한다.The present invention provides a method, system and computer program product for improving the efficiency of a method of performing symmetric encryption of bulk data to be transmitted using a security protocol such as Secure Socket Layer (SSL) or Transaction Layer Security (TLS). It is about. The provided file inserts an empty space in the file where a hash value is required according to the protocol specification. When the file is requested by the client, the actual hash value is calculated to replace the reserved free space. The technique allows for the transmission of large blocks of data to the encryption engine and exploits the resulting processing efficiency regardless of the smaller size constraints on message segments imposed by security protocol specifications.

Description

보안 프로토콜을 이용하여 전송될 벌크 데이터의 대칭 암호화 효율을 향상시키기 위한 방법, 시스템 및 기록 매체{IMPROVING SECURE SERVER PERFORMANCE WITH PRE-PROCESSED DATA READY FOR SECURE PROTOCOL TRANSFER}FIELD OF THE INVENTION IMPROVING SECURE SERVER PERFORMANCE WITH PRE-PROCESSED DATA READY FOR SECURE PROTOCOL TRANSFER}

본 발명은 컴퓨터 시스템에 관한 것으로, 특히, 보안 프로토콜(보안 소켓 계층 또는 "SSL", 또는 트랜잭션 층 보안 또는 "TLS"와 같은 보안 프로토콜)을 이용하여 전송될 데이터를 전처리(pre-processing)함으로써, 네트워킹 환경의 성능을 개선하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품에 관한 것이다.The present invention relates to a computer system, in particular, by pre-processing data to be transmitted using a security protocol (secure socket layer or "SSL", or a security protocol such as transaction layer security or "TLS"), A method, system, and computer program product for improving the performance of a networking environment.

보안 소켓 계층 또는 "SSL"은 넷스케이프사와 RSA 데이터 시큐리티사에 의해 개발된 네트워킹 프로토콜로서, 안전하지 않은(non-secure) 환경에서 네트워크 통신을 안전하게 할 수 있도록 하기 위한 것이다. 보다 구체적으로는, SSL은 인터넷 환경에서 사용되도록 설계되어, TCP/IP(Transmission Control Protocol/Internet Protocol) 층 위의 프로토콜층으로서 동작한다. 그러면, 애플리케이션 코드가 네트워킹 프로토콜 스택 내의 SSL 상에 위치한다. 애플리케이션(브라우저와 같은)이 네트워크 내의 피어(peer)로 전송될 데이터를 생성하면, 상기 데이터는 다양한 보안 절차가 행해지는 SSL 층으로 전송되며, 그 다음에 SSL에 의해 변환된 데이터가 TCP 층으로 전송된다. 접속의 수신측 상에서, TCP 층은 인입되는 데이터를 수신한 후에 그 데이터를 SSL 층으로 전송하며, 상기 SSL 층에서 상기 데이터를 원래의 형태로 복원하고 복원된 데이터를 수신 애플리케이션에 전송하는 절차가 수행된다. SSL의 가장 최신 버전은 1996년 11월 18일자로 갱신된 "The SSL Protocol, Version 3.0"에 상세히 개시되어 있으며, http://home.netscape.com/eng/ssl3/draft302.txt(이하에서는 "SSL 상세"라 함)의 월드 와이드 웹("Web")에서 얻을 수 있다.Secure Sockets Layer, or "SSL," is a networking protocol developed by Netscape and RSA Data Security. It is intended to secure network communications in a non-secure environment. More specifically, SSL is designed to be used in the Internet environment, and operates as a protocol layer on top of the Transmission Control Protocol / Internet Protocol (TCP / IP) layer. The application code is then placed on SSL in the networking protocol stack. When an application (such as a browser) generates data to be sent to a peer in the network, the data is sent to the SSL layer where various security procedures are performed, and then the data converted by SSL is sent to the TCP layer. do. On the receiving side of the connection, the TCP layer transmits the incoming data to the SSL layer after receiving the incoming data, in which the procedure of restoring the data to its original form and transmitting the restored data to the receiving application is performed. do. The latest version of SSL is described in detail in "The SSL Protocol, Version 3.0", updated November 18, 1996, and is available at http://home.netscape.com/eng/ssl3/draft302.txt (hereafter " Available from the World Wide Web ("Web").

상기 인터넷 하의 프로토콜(예를 들면, TCP/IP)은 보안 데이터 전송을 제공하도록 설계되지 않았다. 인터넷은 원래 대학 및 학술 단체를 염두에 두고 설계되었으며, 네트워크의 사용자들은 적대적이 아닌 협력하는 방식으로 네트워크를 이용하리라고 추정되었다. 인터넷이 대중망으로 확장되기 시작했지만, 대부분의 사용자들은 큰 단체 내에 위치하였기 때문에 이들 단체 외부에서의 사용은 제한되었다. 이들 단체들은, 인터넷 그 자체에 내장되는 시큐리티를 필요로 하지 않는 방화벽과 같은 다양한 보안 절차들로 사용자의 데이터를 보호하는 컴퓨팅 시설을 갖고 있다. 그러나, 지난 수년동안 인터넷 사용이 급증하여 왔다. 현재에는 수백만의 사람들이 일상적으로 인터넷과 웹을 사용한다. (이하에서, "인터넷" 및 "웹"이란 용어는, 특별한 언급이 없는 한 동일한 의미로 사용된다.) 사용자들은 전자 우편 메시지 교환으로부터 상거래에 대한 정보를 검색하는 것까지 다양한 작업을 수행한다. 사용자들은 보안 절차들이 일반적으로 이용될 수 없는 가정으로부터, 그들의 셀룰러 폰으로부터, 또는 수많은 기타 환경으로부터 인터넷을 액세스할 수도 있다. "전자 상거래" 또는 간단히 "e-commerce"라 지칭되는 비즈니스가 존속할 수 있는 공간으로서의 인터넷의 성장을 지원하기 위해, 쉽게 액세스할 수 있고 저렴한 보안 절차가 개발되어야 한다. SSL은 하나의 일반적인 솔루션으로서, 하이퍼텍스트 전송 프로토콜("HTTP")을 이용하여 데이터를 송신 및 수신하는 애플리케이션과 함께 일반적으로 사용된다. HTTP는 웹이라고 하는 인터넷의 일부를 액세스하는데 가장 일반적으로 이용되는 프로토콜이다. HTTP는 안전한 통신을 제공하기 위해 SSL과 함께 사용되며, 그 조합은 "HTTPS"로 지칭된다. 비상업적 인터넷 트래픽은 또한 SSL이 제공하는 보안으로부터 이득을 얻을 수 있다. SSL은 SMTP(Simple Mail Transfer Protocol) 및 NNTP(Network News Transfer Protocol)과 같은 HTTP 이외의 데이터 전송 프로토콜과 함께 사용하는 것이 제안되어 왔다.The protocols under the Internet (eg TCP / IP) are not designed to provide secure data transmission. The Internet was originally designed with universities and academic organizations in mind, and it was estimated that users of the network would use the network in a collaborative, non-hostile manner. Although the Internet began to expand into the public network, most users were located within large organizations, so their use outside of these groups was limited. These organizations have computing facilities that protect users' data with a variety of security procedures such as firewalls that do not require the security built into the Internet itself. However, the use of the Internet has surged over the years. Today millions of people use the Internet and the Web on a daily basis. (Hereinafter, the terms "internet" and "web" are used in the same sense unless otherwise noted.) Users perform a variety of tasks, from exchanging e-mail messages to retrieving information about commerce. Users may access the Internet from homes where security procedures are not generally available, from their cellular phones, or from numerous other environments. In order to support the growth of the Internet as a space where a business referred to as "e-commerce" or simply "e-commerce" can survive, easily accessible and inexpensive security procedures must be developed. SSL is one common solution and is commonly used with applications that send and receive data using the hypertext transfer protocol (“HTTP”). HTTP is the most commonly used protocol for accessing parts of the Internet called the web. HTTP is used with SSL to provide secure communication, a combination of which is referred to as "HTTPS". Non-commercial Internet traffic can also benefit from the security provided by SSL. SSL has been proposed for use with non-HTTP data transfer protocols such as Simple Mail Transfer Protocol (SMTP) and Network News Transfer Protocol (NNTP).

SSL은 몇가지 상이하지만 상보형인 시큐리티를 제공하도록 설계된다. 첫째는 메시지 프라이버시이다. 프라이버시는 송신자 및 수신자 이외의 사람에 의해 판독될 수 없도록 메시지 내용을 보호하는 것을 지칭한다. 프라이버시는 메시지를 암호화하고 해독하기 위해 암호문(cryptography)을 이용하여 제공된다. SSL은 또한 공용키 암호문으로 알려져 있는 대칭 암호문을 이용한다. 메시지 수신자는, 메시지 생성자의 공용키와 관련되는 적절한 개인 키 및 해독 알고리즘을 갖고 있으면 암호화된 메시지를 해독할 수 있다. 둘째, SSL은 전송되는 메시지에 대한 데이터 무결성을 제공한다. 데이터 무결성은, 메시지가 생성된 후 그 메시지의 내용이 변경되었는지의(따라서, 그 메시지가 신뢰할 수 없게 함) 여부를 메시지 수신측이 검출할 수 있는 능력을 지칭한다. 메시지 생성자는 "메시지 다이제스트" 또는 "메시지 인증 코드"라고 하는 것을 생성하는 알고리즘을 통해 상기 메시지를 전송한다. 한편, 상기 알고리즘 출력은, 이러한 타입의 알고리즘이 "해싱 알고리즘"으로 알려져 있기 때문에, 때론 메시지의 "해시"로서 지칭된다. 상기 다이제스트 또는 해시는 메시지와 함께 송신된다. 메시지가 수신되면, 수신기는 또한 다른 다이제스트를 생성하는 알고리즘을 통해 메시지를 처리한다. 만약 수신기에 의해 계산된 다이제스트가 메시지와 함께 송신된 다이제스트와 일치하지 않으면, 메시지가 생성된 후 메시지 내용이 몇몇 방법으로 변경되었다고 추측할 수 있다. SSL이 제공하는 제 3 보안 특징은 인증(authentication)으로 알려져 있다. 인터넷을 통한 통신은 일련의 전자 신호들로서 발생되므로, 통신측은 서로 볼 수 없으며, 그들이 통신하는 대상을 시각적으로 판정할 수 없다. 인증이란, 통신측이 사람이든 애플리케이션 프로그램이든 관계없이, 통신측이 그들 자신이 누구인지를 나타내는 것을 보증하도록 돕는 기법이다. 예를 들면, 사용자(사람)가 신용카드를 이용하여 인터넷을 통해 상품을 구입하는 경우, 사용자가 그의 신용카드 정보를 위해 접속하고 있는 다른 말단(the other end)에 대기하고 있는 애플리케이션이 실제로 그가 거래를 하고자 생각하고 있는 판매인인지 아니면 그의 신용카드 정보를 훔치려고 대기하고 있는 사기꾼인지를 아는 것이 중요하다.SSL is designed to provide some different but complementary security. The first is message privacy. Privacy refers to protecting the content of a message so that it cannot be read by anyone other than the sender and recipient. Privacy is provided using cryptography to encrypt and decrypt messages. SSL also uses symmetric ciphertext, also known as public key cryptography. The message receiver can decrypt the encrypted message if it has the appropriate private key and decryption algorithm associated with the message producer's public key. Secondly, SSL provides data integrity for the messages that are sent. Data integrity refers to the ability of a message receiver to detect whether the contents of a message have changed since the message was created (and thus make the message unreliable). The message producer sends the message through an algorithm that generates what is called a "message digest" or "message authentication code." On the other hand, the algorithm output is sometimes referred to as the "hash" of the message because this type of algorithm is known as a "hashing algorithm". The digest or hash is sent with a message. When a message is received, the receiver also processes the message through an algorithm that produces another digest. If the digest calculated by the receiver does not match the digest sent with the message, one can infer that the message content has changed in some way after the message was created. The third security feature that SSL provides is known as authentication. Since communication over the Internet occurs as a series of electronic signals, the communication side cannot see each other and cannot visually determine what they are communicating with. Authentication is a technique that helps the communication side to indicate who they are, regardless of whether the communication side is a person or an application program. For example, if a user (man) purchases a product over the Internet using a credit card, the application that the user is waiting for at the other end that the user is accessing for his credit card information is actually trading. It's important to know if you're a seller who is willing to sell or a scammer who's waiting to steal his credit card information.

이들 보안 특징들은 아주 강력하며, 인터넷 사용자들에게 고도의 방호를 제공한다. 그러나, SSL 프로토콜의 동작은 상당한 량의 처리 오버헤드를 발생한다. 보안 HTTP 서버와 같은 보안 인터넷 서버들은 보안 메시지 내용에 대한 아주 많은 수의 요청에 대해 적절히 응답할 수 있어야 한다. SSL 프로토콜의 오버헤드로 인해 이들 서버들은 클라이언트 요청 처리시에 병목현상을 일으키게 된다. SSL 프로토콜 오버헤드는 다음의 세가지 요인에 기인한다. (1) 여분의 네트워크 트래픽(예를 들면, 다수의 다양한 보안 관련 파라미터들이 일련의 메시지 교환을 협상하는 핸드쉐이킹(handshaking) 프로토콜에서), (2) 보안 세션이 시작될 때 클라이언트와 서버 사이에서 전송되는 암호키 및 해독키에 대한 비교적 고가의 비대칭 키 암호문 동작의 이용, (3) 클라이언트와 서버 사이에 전송되는 벌크 데이터의 대칭 암호화.These security features are very powerful and provide a high level of protection for Internet users. However, the operation of the SSL protocol incurs a significant amount of processing overhead. Secure Internet servers, such as secure HTTP servers, must be able to respond appropriately to a very large number of requests for secure message content. The overhead of the SSL protocol makes these servers bottlenecks in handling client requests. SSL protocol overhead is due to three factors: (1) extra network traffic (e.g., in a handshaking protocol in which a number of various security related parameters negotiate a series of message exchanges), and (2) when a secure session is initiated between a client and a server. Use of relatively expensive asymmetric key ciphertext behavior for cryptographic and decryption keys, and (3) symmetric encryption of bulk data transmitted between client and server.

상기 첫 번째 요인은 소켓에 관해서 SSL 프로토콜을 효율적으로 구현함으로써 처리되었다. 두 번째 요인은 암호화 하드웨어 어댑터 카드 및 액셀러레이터의 다양한 판매업자들에 의해 해결된다. 벌크 데이터의 암호화 동안, 세 번째 요인은 다른 요인들만큼 많은 오버헤드를 발생하지 않지만, 여전히 상당한 량의 처리 시간을 소모한다. 많은 암호화 하드웨어 액셀러레이터들은 공지되어 있는 DES, 3DES, RC4 암호와 같은 대칭 암호화("대칭 암호(symmetric ciphers)"라고도 함)를 위한 회로를 포함한다. 그러나, SSL 프로토콜의 성질이 이들 액셀러레이터로부터의 이점을 얻을 수 없도록 한다. 이것은, SSL 프로토콜이 임의의 개별적인 메시지 전송의 페이로드로 전송되는 데이터에 대해 최대 크기를 16 킬로바이트로 제한하기 때문이다. 따라서, 이 크기를 초과하는 메시지 또는 필드는 다수의 메시지 전송을 이용하여 분할(segment)하여 교환되어야 한다. (일부 더 높은 레벨의 애플리케이션들은 상기 크기 제한을 더 낮게 하며, 애플리케이션의 최적의 세그먼트 크기는 4K로 결정된 것으로 알려져 있다.) 이것과 관련된 문제는 대부분의 암호화 하드웨어 카드 및 액셀러레이터들이 큰 블록의 데이터에 의해 가장 효율적으로 동작한다는 것이다. 그러나, 각각의 암호화된 블록이 블록 내의 데이터에 대해 (암호화 프로세스 전에)계산된 해시 값(hash value)을 포함해야 하기 때문에, SSL 프로토콜은 최대 레코드 크기보다 더 큰 블록 내의 데이터 암호화를 금지한다. 상기 제한 때문에, 대형의 메시지는 최대 레코드 크기보다 더 작은 복수의 세그먼트들(즉, 각 세그먼트 내에 삽입된 해시 값을 위한 공간을 가짐)을 이용하여 암호화 엔진으로 전송되며, 그 결과 암호화 엔진을 최적으로 사용할 수 없게 된다. (본원 명세서에 사용되는 "암호화 엔진"은, 카드 또는 액셀러레이터와 같은 하드웨어로 구현된 프로세스일 수도 있지만 특정 환경에서는 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수도 있는 암호화 프로세스를 지칭한다.)The first factor was addressed by the efficient implementation of the SSL protocol for sockets. The second factor is solved by various vendors of cryptographic hardware adapter cards and accelerators. During encryption of bulk data, the third factor does not incur as much overhead as other factors, but still consumes a significant amount of processing time. Many cryptographic hardware accelerators include circuitry for symmetric cryptography (also known as "symmetric ciphers"), such as known DES, 3DES, RC4 cryptography. However, the nature of the SSL protocol makes it impossible to benefit from these accelerators. This is because the SSL protocol limits the maximum size to 16 kilobytes for data sent in the payload of any individual message transfer. Therefore, messages or fields exceeding this size must be exchanged by segmentation using multiple message transmissions. (Some higher level applications lower the size limit, and the optimal segment size of the application is known to be determined to be 4K.) The problem with this is that most cryptographic hardware cards and accelerators are driven by large blocks of data. It works best. However, since each encrypted block must contain a calculated hash value (prior to the encryption process) for the data in the block, the SSL protocol prohibits encrypting data in the block that is larger than the maximum record size. Because of this limitation, large messages are sent to the encryption engine using a plurality of segments smaller than the maximum record size (i.e., having space for hash values inserted within each segment), which results in an optimal encryption engine. You cannot use it. (As used herein, "encryption engine" refers to an encryption process that may be implemented in hardware, such as a card or accelerator, but may be implemented in software or a combination of hardware and software in certain circumstances.)

트랜잭션 층 보안(TLS) 프로토콜은 SSL을 대체할 후속 기술로서 설계된다. (SSL은 버전 3.0으로 끝나고, TLS가 SSL 버전 3.0 상세에 기초한 버전 1.0으로 시작된다.) TLS는 IETF(Internet Engineering Task Force)의 작업 그룹에 의해 표준화되며, 1999년 1월의 "The TLS Protocol, Version 1.0"(RFC 2246)에 상세히 설명되어 있다. TLS 프로토콜에서의 메시지 교환은 SSL 프로토콜의 메시지 교환과 유사하며, 따라서 TLS도 전술한 비효율성을 갖는다.Transaction layer security (TLS) protocol is designed as a subsequent technology to replace SSL. (SSL ends with version 3.0, and TLS begins with version 1.0 based on the SSL version 3.0 specification.) TLS is standardized by the Working Group of the Internet Engineering Task Force (IETF), and was published in January 1999, "The TLS Protocol, Version 1.0 "(RFC 2246). The message exchange in the TLS protocol is similar to the message exchange in the SSL protocol, so TLS also has the above inefficiency.

SSL 처리량을 증가시키기 위한 한 가지 방법은 전체 프로토콜을 하드웨어 장치에 집어넣는 것이다. 이 경우, 상기 전체 SSL 프로토콜은 네트워크 층에서 행해지며, 애플리케이션은 카드 인터페이스로 진행하는 데이터와 카드 인터페이스로부터 나오는 (암호화되지 않은) 데이터를 분명히 보기만 한다. 그러나, 통상적인 서버가 동시에 진행하는 수백개의 SSL 세션을 가질 수도 있기 때문에, 단일 카드 내에서 효율적으로 관리하기가 어려울 수 있다. 또한, 상이한 애플리케이션(및 때론 동일 애플리케이션 내부의 일부 상이한 포트들)이 상이한 키 값들, 클라이언트 인증 등과 같이 SSL 프로세싱에서 변수를 요구할 수도 있다. 전체 프로토콜을 수행하는 SSL 하드웨어 디바이스는 유연하지 않거나 또는 카드의 비용(처리량 및 달러 양면에서)이 기능의 향상에 따라 증가될 것이다. 또한, SSL 하드웨어는 새로운 암호가 SSL 및/또는 TLS에 부가될 때 갱신되기 어려울 것이다.One way to increase SSL throughput is to embed the entire protocol into a hardware device. In this case, the entire SSL protocol is done at the network layer, and the application only clearly sees the data going to the card interface and the data (unencrypted) coming from the card interface. However, since a typical server may have hundreds of SSL sessions running simultaneously, it can be difficult to manage efficiently within a single card. Also, different applications (and sometimes some different ports within the same application) may require variables in SSL processing, such as different key values, client authentication, and the like. SSL hardware devices that perform the entire protocol will not be flexible or the cost of the card (both in throughput and dollars) will increase as features increase. In addition, SSL hardware will be difficult to update when new ciphers are added to SSL and / or TLS.

따라서, SSL 또는 TLS와 같은 보안 프로토콜을 이용하여 전송용의 벌크 데이터의 대칭 암호화를 수행하는 방법을 개선하는 기술이 필요하다.Accordingly, there is a need for a technique that improves the method of performing symmetric encryption of bulk data for transmission using a security protocol such as SSL or TLS.

본 발명의 목적은 SSL 또는 TLS와 같은 보안 프로토콜을 이용하여 전송될 벌크 데이터의 대칭 암호화를 개선하는 기법을 제공하는 것이다.It is an object of the present invention to provide a technique for improving the symmetric encryption of bulk data to be transmitted using a secure protocol such as SSL or TLS.

본 발명의 다른 목적은 상기 데이터가 복수의 보다 작은 블록들로 전송되어야 하는 경우에도, 상기 기법을 이용하여 보다 큰 데이터 블록의 이점이 실현될 수 있도록 하는 것이다.Another object of the present invention is to use the above technique so that the advantages of larger data blocks can be realized even if the data is to be transmitted in a plurality of smaller blocks.

본 발명의 또 다른 목적은 보안 프로토콜을 이용하여 전송될 데이터 파일의 사전 처리(pre-processing)를 통해 상기 기법을 제공하는 것으로, 상기 사전 처리는, 보다 작은 블록 크기를 전송하기 위한 프로토콜 요건을 고집하는, 대형 블록 크기를 이용하여, 암호화를 위한 최적의 형식으로 수정된 파일을 생성한다.It is yet another object of the present invention to provide such a technique through pre-processing of a data file to be transmitted using a secure protocol, wherein the preprocessing insists on protocol requirements for transmitting smaller block sizes. A large block size is used to create a modified file in an optimal format for encryption.

본 발명의 또 다른 목적 및 이점은 다음의 상세한 설명 및 도면에 부분적으로 개시되어 있다.Still other objects and advantages of the invention are set forth in part in the following detailed description and drawings.

도 1은 본 발명이 실시될 수 있는 컴퓨터 워크스테이션 환경의 블록도,1 is a block diagram of a computer workstation environment in which the present invention may be practiced,

도 2는 본 발명이 실시될 수 있는 네트워크로 연결된 컴퓨팅 환경을 도시한 도면,2 illustrates a networked computing environment in which the invention may be practiced;

도 3 및 4는 본 발명의 바람직한 실시예를 구현하는데 이용될 수 있는 논리의 흐름도,3 and 4 are flow diagrams of logic that can be used to implement a preferred embodiment of the present invention,

도 5는 본 발명의 바람직한 실시예에 따른 파일 처리 전후에 요청자에게 전송되는 데이터 파일을 도시한 도면.5 illustrates a data file transmitted to a requestor before and after file processing according to a preferred embodiment of the present invention.

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

10 : 워크스테이션 14 : 버스10 workstation 14 bus

16 : 사용자 인터페이스 어댑터 18 : 키보드16: user interface adapter 18: keyboard

20 : 마우스 22 : 인터페이스 장치20: mouse 22: interface device

24 : 디스플레이 장치 26 : 디스플레이 어댑터24: display device 26: display adapter

28 : 메모리 30 : 저장 장치28: memory 30: storage device

32 : 통신 채널32: communication channel

상기 목적을 달성하기 위하여, 본 발명은 보안 프로토콜을 이용하는 전송을 위해 벌크 데이터의 대칭 암호화가 수행되는 방법을 향상시키기 위한 방법, 시스템 및 컴퓨터 프로그램 제품을 제공한다. 상기 기법은 안전하게 전송될 파일을 결정하는 단계와, 상기 파일을 사전 처리하여 보안 전송 전에 인가될 대칭 암호화 프로세스를 최적화하는 단계를 포함한다. 상기 사전 처리 단계는 보안 전송 동안 파일에 사용될 데이터의 레코드 크기를 계산하는 단계 -상기 레코드 크기는 (세그먼트 크기 - 해시 길이)임-와, 상기 파일을 레코드 크기의 일련의 레코드들로 분할하는 단계 -상기 레코드들 중 하나는 상기 레코드 사이즈보다 짧을 수도 있음-와, 각각의 레코드 열에 빈 공간을 부가하는 단계와, 각각의 레코드 열 및 부가된 빈 공간을 출력 파일에 기록하는 단계를 더 포함한다. 마지막 블록에서 상기 부가 단계가 동작하기 전에 패딩(padding) 블록이 상기 레코드들 중 마지막 레코드에 첨부될 수도 있다.In order to achieve the above object, the present invention provides a method, system and computer program product for improving how symmetric encryption of bulk data is performed for transmission using a secure protocol. The technique includes determining a file to be transmitted securely and preprocessing the file to optimize a symmetric encryption process to be authorized before secure transmission. The preprocessing step includes calculating a record size of data to be used for the file during the secure transfer, wherein the record size is (segment size-hash length), and dividing the file into a series of records of record size. One of the records may be shorter than the record size—adding free space to each record row, and writing each record string and added free space to an output file. In the last block, a padding block may be appended to the last of the records before the additional step is operated.

출력 파일의 첫 번째 레코드에 헤더가 미리 부착될 수도 있는데, 상기 헤더는 다음 중 하나 이상을 포함하는 정보를 저장한다. (1)대칭 암호화 프로세스에 사용되는 암호화 알고리즘의 식별, (2) 대칭 암호화 프로세스의 동작 전에 레코드에 적용되는 해싱 알고리즘의 식별, (3) 레코드 크기.The header may be pre-attached to the first record of the output file, which stores information including one or more of the following. (1) identification of the encryption algorithm used in the symmetric encryption process, (2) identification of the hashing algorithm applied to the record before the operation of the symmetric encryption process, and (3) record size.

상기 기법은 파일 요청을 수신하는 단계와, 상기 수신에 응답하여 출력 파일을 배치하는 단계와, 수신된 요청과 관련된 암호화 키 및 해시 키를 획득하는 단계와, 상기 획득한 해시 키를 이용하여 시퀀스 내의 각각의 레코드에 해싱 알고리즘을 적용하는 단계와, 각각의 레코드에 대하여, 부가된 빈 공간을 해싱 알고리즘의 결과로 대체하여 암호화된 파일을 생성하는 단계와, 상기 요청에 응답하여 암호화된 파일을 전송하는 단계를 더 포함한다. 이 경우, 상기 기법은 또한, 헤더를 출력 파일의 선두에 부가하는 단계 -상기 헤더는 대칭 암호화 알고리즘의 식별을 포함하는 정보를 저장함- 와, 획득한 암호화 키를 암호화에 사용하기 위해 헤더에 부가하는 단계를 더 포함한다. 또는, 선두에 부가된 헤더는 해싱 알고리즘의 식별을 포함하는 정보를 저장할 수도 있는데, 이 경우, 상기 기법은 상기 적용 단계에 이용하기 위해 획득된 해시 키를 헤더에 부가하는 단계를 더 포함한다.The technique includes receiving a file request, disposing an output file in response to the receiving, obtaining an encryption key and a hash key associated with the received request, and using the obtained hash key in a sequence. Applying a hashing algorithm to each record, generating an encrypted file for each record by replacing the added empty space with the result of the hashing algorithm, and transmitting the encrypted file in response to the request. It further comprises a step. In this case, the technique also includes adding a header to the head of the output file, the header storing information including identification of a symmetric encryption algorithm, and adding the obtained encryption key to the header for use in encryption. It further comprises a step. Alternatively, the header added to the front may store information including identification of a hashing algorithm, in which case the technique further includes adding a hash key to the header obtained for use in the applying step.

보안 프로토콜은 보안 소켓 계층(SSL), 트랜잭션 층 보안(TLS) 또는 다른 보안 프로토콜일 수도 있다.The security protocol may be secure socket layer (SSL), transaction layer security (TLS) or other security protocol.

이하, 본 발명을 첨부한 도면과 관련하여 설명한다. 도면에서 유사한 참조 번호는 동일한 요소를 나타낸다.Hereinafter, the present invention will be described with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

도 1은 본 발명이 실시될 수 있는 대표적인 워크스테이션 하드웨어 환경을 도시한 것이다. 도 1의 환경은 개인용 컴퓨터와 같이 관련 주변 장치를 포함하는 대표적인 단일 사용자 컴퓨터 워크스테이션(10)을 포함한다. 워크스테이션(10)은 마이크로프로세서(12)와, 공지되어 있는 기술에 따른 워크스테이션(10)의 컴포넌트들과 마이크로프로세서(12) 사이의 접속 및 통신을 가능하게 하는데 사용되는 버스(14)를 포함한다. 워크스테이션(10)은 통상적으로 버스(14)를 통하여 키보드(18), 마우스 및/또는 터치 스크린, 디지털화된 입력 패드 등과 같은 임의의 사용자 인터페이스 장치일 수도 있는 기타 인터페이스 장치(22)와 같은 하나 이상의 인터페이스 장치에 마이크로프로세서(12)를 접속하는 사용자 인터페이스 어댑터(16)를 포함한다. 버스(14)는 또한 LCD 스크린 또는 모니터와 같은 디스플레이 장치(24)를 디스플레이 어댑터(26)를 통해 마이크로프로세서(12)에 접속한다. 버스(14)는 또한 마이크로프로세서(12)를 하드 드라이브, 디스켓 드라이브, 테이프 드라이브 등을 포함할 수 있는 장기간 저장 장치(30) 및 메모리(28)에 접속한다.1 illustrates an exemplary workstation hardware environment in which the present invention may be practiced. The environment of FIG. 1 includes a representative single user computer workstation 10 that includes associated peripherals such as personal computers. Workstation 10 includes a microprocessor 12 and a bus 14 used to enable connection and communication between the components of workstation 10 and microprocessor 12 in accordance with known techniques. do. Workstation 10 is typically one or more via bus 14, such as keyboard 18, mouse and / or other interface device 22, which may be any user interface device such as a touch screen, digitized input pad, or the like. And a user interface adapter 16 that connects the microprocessor 12 to the interface device. The bus 14 also connects a display device 24, such as an LCD screen or monitor, to the microprocessor 12 through the display adapter 26. Bus 14 also connects microprocessor 12 to long-term storage device 30 and memory 28, which may include hard drives, diskette drives, tape drives, and the like.

워크스테이션(10)은 예를 들어 통신 채널 또는 모뎀(32)을 통해 다른 컴퓨터 또는 컴퓨터 네트워크와 통신할 수도 있다. 한편, 워크스테이션(10)은 32에서 CDPD(cellular digital packet data) 카드와 같은 무선 인터페이스를 이용하여 통신할 수도 있다. 워크스테이션(10)은 LAN(local area network) 또는 WAN(wide area network) 내의 다른 컴퓨터들과 관련될 수도 있고, 다른 컴퓨터 등을 구비한 클라이언트/서버 장치 내의 클라이언트일 수도 있다. 이러한 모든 구성들 및 적절한 통신 하드웨어 및 소프트웨어는 공지되어 있다.Workstation 10 may communicate with another computer or computer network, for example, via a communication channel or modem 32. On the other hand, workstation 10 may communicate using a wireless interface, such as a cellular digital packet data (CDPD) card at 32. Workstation 10 may be associated with other computers in a local area network (LAN) or wide area network (WAN), or may be a client in a client / server device having other computers or the like. All such configurations and appropriate communication hardware and software are known.

도 2는 본 발명이 실시될 수 있는 데이터 처리 네트워크(40)를 도시한 것이다. 데이터 처리 네트워크(40)는 복수의 개별적인 워크스테이션(10)을 각각 포함할 수도 있는 무선 네트워크(42) 및 네트워크(44)와 같은 복수의 개별적인 네트워크를 포함할 수도 있다. 또한, 당업자라면, 하나 이상의 LAN이 포함될 수도 있음을 알 수 있을 것이다. 여기서 상기 LAN은 호스트 프로세서에 결합된 복수의 지능형 워크스테이션을 포함할 수도 있다.2 illustrates a data processing network 40 in which the present invention may be practiced. Data processing network 40 may include a plurality of individual networks, such as wireless network 42 and network 44, which may each include a plurality of individual workstations 10. Those skilled in the art will also appreciate that one or more LANs may be included. Here, the LAN may include a plurality of intelligent workstations coupled to a host processor.

도 2에서, 네트워크(42, 44)는 게이트웨이 컴퓨터(46) 또는 애플리케이션 서버(47)(데이터 저장소(48)를 액세스할 수도 있는)와 같은 메인프레임 컴퓨터들 또는 서버들을 포함할 수도 있다. 게이트웨이 컴퓨터(46)는 각각의 네트워크(44)로의 입구로서 작용한다. 게이트웨이(46)는 통신 링크(50a)에 의해 다른 네트워크(42)에 결합되는 것이 바람직할 수도 있다. 게이트웨이(46)는 또한 통신 링크(50b, 50c)를 이용하여 하나 이상의 워크스테이션(10)에 직접 결합될 수도 있다. 게이트웨이 컴퓨터(46)는 IBM 사의 Enterprise Systems Architecture/370, Enterprise Systems Architecture/390 컴퓨터 등을 이용하여 구현될 수도 있다. 애플리케이션에 따라서, 애플리케이션 시스템/400(AS/400이라고도 함)과 같은 중간범위의 컴퓨터가 이용될 수도 있다. ("Enterprise Systems Architecture/370"은 IBM의 상표이며, "Enterprise Systems Architecture/390", "Applicatin System/400", "AS/400"은 IBM의 등록 상표이다.)In FIG. 2, networks 42 and 44 may include mainframe computers or servers, such as gateway computer 46 or application server 47 (which may access data store 48). Gateway computer 46 acts as an entrance to each network 44. Gateway 46 may be preferably coupled to other network 42 by communication link 50a. Gateway 46 may also be coupled directly to one or more workstations 10 using communication links 50b and 50c. The gateway computer 46 may be implemented using an Enterprise Systems Architecture / 370, Enterprise Systems Architecture / 390 computer, etc. of IBM Corporation. Depending on the application, a midrange computer such as application system / 400 (also called AS / 400) may be used. ("Enterprise Systems Architecture / 370" is a trademark of IBM. "Enterprise Systems Architecture / 390", "Applicatin System / 400" and "AS / 400" are registered trademarks of IBM.)

게이트웨이 컴퓨터(46)는 또한 저장 장치(데이터 저장소(48)와 같은)에 결합될 수도 있다(49). 또한, 게이트웨이(46)는 하나 이상의 워크스테이션(10)에 직접 또는 간접으로 연결될 수도 있다.Gateway computer 46 may also be coupled to a storage device (such as data store 48) (49). Gateway 46 may also be connected directly or indirectly to one or more workstations 10.

당업자라면, 게이트웨이 컴퓨터(46)가 네트워크(42)로부터 지리적으로 멀리 떨어져서 위치될 수도 있으며, 마찬가지로, 워크스테이션(10)이 네트워크(42, 44)로부터 상당한 거리를 두고 위치할 수도 있음을 알 수 있을 것이다. 예를 들면, 네트워크(42)는 캘리포니아에 위치할 수도 있지만, 게이트웨이(46)는 텍사스에 위치할 수도 있으며, 하나 이상의 워크스테이션(10)이 뉴욕에 위치할 수도 있다. 워크스테이션(10)은 셀룰러 폰, 무선 주파수 네트워크, 위성 네트워크 등과 같은 다수의 다른 접속 매체를 통해, TCP/IP(Transmission Control Protocol/InternetProtocol)와 같은 네트워킹 프로토콜을 이용하여 무선 네트워크(42)에 접속될 수도 있다. 무선 네트워크(42)는 IP, X.25, 프레임 중계(Frame Relay), ISDN(Integrated Services Digital Network), PSTN(Public Switched Telephone Network) 등을 통해 TCP 또는 UDP(User Datagram Protocol)와 같은 네트워크 접속(50a)을 이용하여 게이트웨이(46)에 접속되는 것이 바람직하다. 또한 워크스테이션(10)은 다이얼 접속(50b 또는 50c)을 이용하여 게이트웨이(46)에 직접 접속될 수도 있다. 또한, 무선 네트워크(42) 및 네트워크(44)가 도 2에 도시된 것과 유사한 방식으로 하나 이상의 다른 네트워크(도시되지 않음)에 접속될 수도 있다.Those skilled in the art will appreciate that the gateway computer 46 may be located geographically remote from the network 42, and likewise, the workstation 10 may be located at a significant distance from the networks 42, 44. will be. For example, network 42 may be located in California, but gateway 46 may be located in Texas, and one or more workstations 10 may be located in New York. The workstation 10 may be connected to the wireless network 42 using a networking protocol such as Transmission Control Protocol / Internet Protocol (TCP / IP) through a number of other connection media such as cellular phones, radio frequency networks, satellite networks, and the like. It may be. The wireless network 42 may be connected to a network such as TCP or User Datagram Protocol (UDP) through IP, X.25, Frame Relay, Integrated Services Digital Network (ISDN), Public Switched Telephone Network (PSTN), or the like. It is preferable to connect to the gateway 46 using 50a). Workstation 10 may also be directly connected to gateway 46 using dial connection 50b or 50c. In addition, wireless network 42 and network 44 may be connected to one or more other networks (not shown) in a manner similar to that shown in FIG.

본 발명을 실시하는 소프트웨어 프로그래밍 코드는, 통상적으로 CD-ROM 드라이브 또는 하드 드라이브와 같은 일부 유형의 장기간 저장 매체(30)로부터 서버(예를 들면, 서버(47))에 의해 액세스된다. 소프트웨어 프로그래밍 코드는 디스켓, 하드 드라이브, 또는 CD-ROM과 같은 데이터 처리 시스템과 함께 사용하기 위한 임의의 공지되어 있는 매체 상에서 실시될 수도 있다. 코드는 그러한 매체 상에 분산될 수도 있고, 몇몇 유형의 네트워크를 통해 하나의 컴퓨터 시스템의 저장 장치 또는 메모리로부터 다른 컴퓨터 시스템으로 그러한 다른 시스템의 사용자가 사용하도록 사용자들에게 분배될 수도 있다. 한편, 프로그래밍 코드는 메모리(28) 내에서 실시될 수도 있고, 버스(14)를 이용하여 마이크로프로세서(12)에 의해 액세스될 수도 있다. 메모리 내 또는 물리적 매체 상에 소프트웨어 프로그래밍 코드를 구현하는 상기 기법 및 방법 및/또는 네트워크를 통해 소프트웨어 코드를 분배하는 기법 및 방법은 공지되어 있으므로 더 이상 설명하지 않는다.Software programming code embodying the present invention is typically accessed by a server (eg, server 47) from some type of long-term storage medium 30, such as a CD-ROM drive or hard drive. The software programming code may be executed on any known media for use with data processing systems such as diskettes, hard drives, or CD-ROMs. The code may be distributed on such media and distributed to users for use by users of such other systems from storage or memory of one computer system to other computer systems via some type of network. On the other hand, programming code may be implemented within memory 28 or may be accessed by microprocessor 12 using bus 14. The above techniques and methods for implementing software programming code in memory or on a physical medium and / or techniques and methods for distributing software code over a network are well known and will not be described any further.

본 발명을 처리하는 파일을 요청하는 사용자는 유선 접속 또는 무선 접속을 이용하여 상기 컴퓨터를 서버에 접속할 수도 있다. 유선 접속은 케이블 전화선과 같은 물리적인 매체를 이용하는 것이며, 무선 접속은 위성 링크, 무선 주파수 파 및 자외선 파와 같은 매체를 이용한다. 전화선을 통하여 접속을 개설하는 컴퓨터 모뎀, 토큰 링 또는 이더넷과 같은 LAN 카드, 무선 접속을 개설하는 셀룰러 모뎀 등과 같은 다양한 매체와 함께 많은 접속 기법이 이용될 수 있다. 사용자의 컴퓨터는 랩탑, 핸드헬드 또는 이동 컴퓨터, 차량 탑재 장치, 데스크탑 컴퓨터, 메인프레임 컴퓨터 등 처리(및 잠재적으로 계산) 능력을 갖는 어떠한 유형의 컴퓨터 프로세서일 수도 있다. 이와 유사하게, 원격 서버는 처리 및 계산 능력을 갖는 임의의 수의 상이한 유형의 컴퓨터 중 어느 하나일 수 있다. 이들 기법들은 공지되어 있으며, 하드웨어 장치 및 이들 하드웨어를 사용할 수 있도록 하는 소프트웨어는 쉽게 얻을 수 있다. 이하에서, 사용자 컴퓨터는 "워크스테이션", "장치", 또는 "컴퓨터"로 지칭되며, 이들 용어들 또는 "서버"라는 용어는 전술한 임의의 유형의 계산 장치를 지칭한다.A user requesting a file processing the present invention may connect the computer to a server using a wired or wireless connection. Wired connections use physical media, such as cable telephone lines, and wireless connections use media such as satellite links, radio frequency waves, and ultraviolet waves. Many connection techniques can be used with various media such as a computer modem establishing a connection over a telephone line, a LAN card such as token ring or Ethernet, a cellular modem establishing a wireless connection, and the like. The user's computer may be any type of computer processor with processing (and potentially computing) capabilities, such as laptops, handheld or mobile computers, onboard devices, desktop computers, mainframe computers, and the like. Similarly, the remote server can be any one of any number of different types of computers with processing and computing power. These techniques are well known, and hardware devices and software that make use of these hardware are readily available. In the following, a user computer is referred to as a "workstation", "device", or "computer", and these terms or "server" refer to any type of computing device described above.

바람직한 실시예에서, 본 발명은 하나 이상의 컴퓨터 소프트웨어 프로그램으로서 구현된다. 소프터웨어는 하나 이상의 모듈(또한 객체 지향 프로그래밍에서 코드 서브루틴 또는 "오브젝트"라고도 함)로서 구현될 수도 있다. 본 발명을 실시하는 논리는 SSL 프로토콜을 실시하는 프로그램의 코드와 결합될 수도 있고, 본원에 개시된 신규한 개념으로부터 벗어나지 않고 그러한 프로그램에 의해 야기되는 서비스를 제공하는 하나 이상의 개별적인 유틸리티 모듈로서 구현될 수도 있다.본 발명을 동작시키는 서버는 웹 서버로서 기능할 수도 있으며, 여기서 상기 웹 서버는 인터넷을 통해 접속된 클라이언트로부터의 요청에 응답하여 서비스를 제공한다. 한편, 상기 서버는, 클라이언트의 워크스테이션이 그 일부를 구성하는 통합된 인트라넷(intranet) 또는 엑스트라넷(extranet) 내에 있거나 또는 임의의 다른 네트워크 환경 내에 있을 수도 있다.In a preferred embodiment, the present invention is implemented as one or more computer software programs. The software may be implemented as one or more modules (also called code subroutines or "objects" in object-oriented programming). The logic for practicing the invention may be combined with the code of a program implementing the SSL protocol, or may be implemented as one or more individual utility modules that provide services caused by such a program without departing from the novel concepts disclosed herein. The server operating the present invention may also function as a web server, where the web server provides a service in response to a request from a client connected via the Internet. On the other hand, the server may be in an integrated intranet or extranet, in which the client's workstation constitutes part thereof, or in any other network environment.

다음은 본 발명의 바람직한 실시예를 도 3 내지 5를 참조하여 보다 상세히 설명한다.Next, a preferred embodiment of the present invention will be described in more detail with reference to FIGS. 3 to 5.

도 3은 바람직한 실시예에 따라 사전 처리되는 파일의 논리를 도시한 것이다. 상기 사전 처리(pre-processing)는, SSL 프로토콜과 함께 사용하기 위한 최소 프로세싱을 필요로 하는 파일을 준비하며, 그 파일은 암호화 엔진에서 얻을 수 있는 최적화된 프로세싱을 이용하기 위하여 하나 이상의 큰 블록 내의 암호화 엔진에 공급될 수 있다. 도 4는, 서버에서 파일에 대한 요청이 수신될 때 바람직하게 사용되는 논리를 도시한 것으로, 상기 파일은 도 3의 논리에 따라서 바람직하게 사전 처리되었다.3 illustrates the logic of a file that is preprocessed according to a preferred embodiment. The pre-processing prepares a file that requires minimal processing for use with the SSL protocol, which file is encrypted in one or more large blocks to take advantage of the optimized processing available in the encryption engine. Can be supplied to the engine. 4 illustrates the logic that is preferably used when a request for a file is received at a server, wherein the file has preferably been preprocessed in accordance with the logic of FIG.

도 3의 사전 처리는 상기 파일에 대한 클라이언트 요청을 수신하기 전에 미리 수행되는 것이 바람직하다. 한편, 상기 사전 처리는 본 발명의 범주로부터 벗어나지 않고 그러한 요청을 수신하자마자 행해질 수도 있다. (이 경우, 도 3의 동작으로 인한 사전 처리된 파일은 영구 저장 장치에 저장되는 것이 바람직하며, 후속하는 클라이언트 요청을 이행하는데 있어서 효율성을 증가시키는데 사용될 수도 있다.) 간단히 말하면, 사전 처리 동작은 홀(hole) 또는 빈 공간을, 상기 파일의 SSL 프로토콜이 해시 값을 요구하는 장소에 삽입한다.The preprocessing of FIG. 3 is preferably performed in advance before receiving a client request for the file. On the other hand, the preprocessing may be done upon receipt of such a request without departing from the scope of the present invention. (In this case, the preprocessed file resulting from the operation of FIG. 3 is preferably stored in persistent storage and may be used to increase efficiency in fulfilling subsequent client requests.) In short, the preprocessing operation is a hall. A hole or empty space is inserted where the SSL protocol of the file requires a hash value.

상기 사전 처리 동작은 도 3의 블록(300)에서 시작되며, 여기서 사전 처리될 파일이 얻어진다. 블록(310)에 나타낸 바와 같이, 선택적인 파일 헤더가 생성될 수도 있다. 상기 파일 헤더는, 서로에 대해 유사한 파일들을 구별하고 파일의 후속 암호화의 효율을 증가시키는데 사용될 수 있는 파일에 대한 정보를 포함한다. 상기 SSL 프로토콜은 많은 상이한 벌크 암호화 알고리즘 및 해싱 알고리즘의 이용을 위해 제공된다. 상이한 알고리즘들 사이에는 다수의 차이가 존재한다. 예를 들면, 벌크 RC4 암호에 대하여 두 개의 SSL 암호 쌍이 있는데, 이들 중 한 쌍은 MD5 해싱 알고리즘을 이용하고 다른 하나는 SHA-1 해싱 알고리즘을 이용한다. MD5 해시는 128비트를 사용하는 반면에, SHA-1 해시는 140 비트를 사용한다. 따라서, MD5 해시와 함께 사용하기 위해 사전 처리되는 파일은 SHA-1 해시와 함께 사용하기 위해 사전 처리되는 파일보다 더 작은 홀을 삽입할 것을 요구한다. 다른 차이는 또한, 전송에 사용된 다수의 레코드 크기인 특정 바운다리 상에서 끝나지 않는 파일의 끝에서 패딩이 요청되는지와 같이, 암호 쌍들과 알고리즘들 사이에 존재한다. 이들 유형의 차이 때문에, 하나의 포맷보다 더 많은 포맷으로 개별적인 파일들을 사전 처리하는 것이 바람직할 수도 있다. 각각의 저장된 버전의 헤더는 어느 알고리즘이 사전 처리된 파일과 함께 사용되는지를 식별하는데 사용될 수 있으며, 클라이언트와 서버 사이에서 어느 암호 쌍이 결정되는지에 기초하여 저장된 적절한 버전이 선택될 수 있다. (이것은 도 4의 블록(430)을 참조하여 후술한다) 상기 헤더는 또한, 홀을 삽입할 때 사용된 레코드 크기를 나타내는 것이 바람직하다(16K의디폴트 레코드 크기가 항상 사용되면, 상기 정보는 생략될 수도 있지만).The preprocessing operation begins at block 300 of FIG. 3, where a file to be preprocessed is obtained. As indicated by block 310, an optional file header may be generated. The file header contains information about the file that can be used to distinguish similar files from each other and to increase the efficiency of subsequent encryption of the file. The SSL protocol is provided for the use of many different bulk encryption algorithms and hashing algorithms. There are a number of differences between the different algorithms. For example, for bulk RC4 ciphers, there are two SSL cipher pairs, one of which uses the MD5 hashing algorithm and the other uses the SHA-1 hashing algorithm. The MD5 hash uses 128 bits, while the SHA-1 hash uses 140 bits. Thus, files that are preprocessed for use with MD5 hashes require inserting smaller holes than files that are preprocessed for use with SHA-1 hashes. Another difference also exists between cipher pairs and algorithms, such as whether padding is requested at the end of a file that does not end on a particular boundary, the number of record sizes used for transmission. Because of these types of differences, it may be desirable to preprocess individual files in more than one format. The header of each stored version may be used to identify which algorithm is used with the preprocessed file, and the appropriate version stored may be selected based on which cipher pairs are determined between the client and the server. (This will be described later with reference to block 430 of FIG. 4). The header also preferably indicates the record size used when inserting the hole. (If the default record size of 16K is always used, the information will be omitted. May be).

도 5a는 본 발명에 따라 파일을 처리하기 전에, 요청자에게 전송될 데이터 파일의 일례를 도시한 것이다. 상기 파일의 내용은 종래 기술에서와 같이 바이트열로서 저장된다. 도 5b는 도 3의 논리에 따라 파일을 처리한 후의 데이터 파일을 도시한 것이다. 선택적인 헤더는 510으로 도시되어 있으며, 사전 처리된 파일의 시작에 일단 저장된다. (상기 헤더는 클라이언트에게 전송되지 않고, 본 발명의 목적을 위한 서버 내에 내부적으로 사용된다.)5A illustrates an example of a data file to be sent to the requestor prior to processing the file in accordance with the present invention. The contents of the file are stored as byte strings as in the prior art. FIG. 5B illustrates a data file after processing the file according to the logic of FIG. 3. The optional header is shown at 510 and is stored once at the beginning of the preprocessed file. (The header is not sent to the client, but used internally within the server for the purposes of the present invention.)

도 3에서, 상기 파일에 대한 전송된 메시지 세그먼트들에 사용되는 레코드 크기는 블록(320)에서 계산된다. 이것은 메시지 페이로드에 사용되는 데이터의 길이로부터 해시의 길이를 감산하는 연산을 포함한다. 예를 들면, 16K 바이트의 데이터가 각각의 메시지 세그먼트에서 전송되고, 128비트(16 바이트)의 해시가 전술한 MD5 해시에 사용되면, 블록(320)에서 계산된 레코드 크기는 (16K-16) 바이트이다. 그 다음에, 선택적인 헤더는, 사용될 때, 생성되는 출력 파일에 기록된다(블록(330)). 전술한 바와 같이, 헤더에 기록되는 정보는 파일을 준비하기 위한 암호화 알고리즘 및 해싱 알고리즘의 식별과, 사용되는 레코드 크기를 포함하는 것이 바람직하다. (이어서 도 4에 따라서 암호화를 위한 파일을 준비하여 특정 클라이언트에 전송할 때 다른 정보가 헤더에 삽입될 수도 있다. 이것에 대해서는 후술한다.)In FIG. 3, the record size used for transmitted message segments for the file is calculated at block 320. This involves subtracting the length of the hash from the length of the data used for the message payload. For example, if 16K bytes of data are sent in each message segment and a 128 bit (16 bytes) hash is used in the MD5 hash described above, the record size calculated at block 320 is (16K-16) bytes. to be. Then, the optional header, when used, is written to the resulting output file (block 330). As mentioned above, the information recorded in the header preferably includes the identification of the encryption algorithm and hashing algorithm for preparing the file, and the record size used. (Next, other information may be inserted into the header when preparing a file for encryption and transmitting it to a specific client according to Fig. 4. This will be described later.)

블록(340)은 처리될 상기 파일의 끝에 도달했는지의 여부를 문의한다. 만약 끝에 도달했다면, 도 3의 처리는 종료된다. 그렇지 않으면, 상기 처리는, 입력 파일의 끝에 이를 때까지 블록(350, 360)의 논리를 통하여 반복된다. 블록(350)은 블록(320)에서 계산된 레코드 크기로 지정된 길이에 대하여, 입력 파일의 다음 바이트들을 획득하고, 상기 데이터의 끝에 빈 공간을 추가한다. 상기 빈 공간은 상기 파일을 준비하기 위한 해싱 알고리즘에 의해 요청된 것과 동일한 길이를 갖는다. 만약, 입력 파일 내에서 처리되는 나머지 바이트들의 수가 계산된 레코드 크기보다 작으면, 그리고 사용중인 암호 쌍이 이러한 유형의 패딩 쇼트 블록을 요구하면, 블록(350)은 빈 공간을 추가하기 전에 상기 요구된 양의 패딩을 추가한다. 그 다음에 블록(360)은 블록(350)에 의해 생성된 데이터 블록을 출력 파일에 기록하고, 그 후 제어권이 블록(340)으로 넘어간다.Block 340 queries whether the end of the file to be processed has been reached. If the end is reached, the process of FIG. 3 ends. Otherwise, the process is repeated through the logic of blocks 350 and 360 until the end of the input file. Block 350 obtains the next bytes of the input file, for the length specified by the record size calculated at block 320, and adds a blank space at the end of the data. The empty space has the same length as requested by the hashing algorithm for preparing the file. If the number of remaining bytes processed in the input file is less than the calculated record size, and if the cipher pair in use requires this type of padding short block, block 350 may add the required amount before adding free space. Add padding of. Block 360 then writes the data block generated by block 350 to an output file, after which control passes to block 340.

도 5b의 출력 파일은 도 5a의 입력 파일이 도 3의 처리 동작에 의해 수정되는 방법을 도시한 것이다. 빈 공간(예를 들면, 요소(525, 535))은 각각의 데이터 블록(요소(520, 530))에 후속한다. 상기 빈 공간은 SSL 프로토콜이 각각의 데이터 블록의 해시를 요구하는 장소에 삽입된다. 본 예에서의 최종 데이터 블록(590) 다음에는 패딩 공간(592)이 후속하고, 그 다음에 마지막 빈 공간(595)이 뒤따른다.The output file of FIG. 5B illustrates how the input file of FIG. 5A is modified by the processing operation of FIG. 3. An empty space (eg, elements 525 and 535) follows each data block (elements 520 and 530). The empty space is inserted where the SSL protocol requires a hash of each data block. The final data block 590 in this example is followed by a padding space 592, followed by the last empty space 595.

도 4의 논리는 클라이언트로의 파일 전송 요청이 수신될 때 발생한다. 상기 요청이 수신되면(도 4a의 블록(400)), 상기 파일의 사전 처리된 버전이 사용가능한지를 판정하기 위한 테스트가 이루어진다. 만약 사용가능하지 않다면, 블록(420)에 도시된 바와 같이 파일은 종래 기술에 따라서 처리되어 전송될 수 있으며, 그 다음에, 상기 요청에 대한 도 4의 처리가 종료된다. (한편, 전술한 바와 같이 상기 파일의 사전 처리된 버전을 생성하기 위해 도 3의 논리가 실시될 수도 있다. 이 경우, 사전 처리 동작이 완료된 후 도 4의 처리가 블록(430)에서 계속되는 것이 바람직하다.) 블록(410)에서의 테스트가 긍정의 결과를 가지면, 블록(430)은 서버와 요청 클라이언트 사이에 사용하도록 결정된 암호화 알고리즘과 해싱 알고리즘을 준비하는 버전이 이용가능한지를 확인한다. 만약 이용가능하지 않다면, 상기 파일은 블록(420)에 도시된 바와 같이 종래 기술에 따라서 처리되어 전송될 수도 있고, 다른 실시예에서는 적절한 버전을 생성하기 위해 도 3의 논리가 실시될 수도 있으며, 그 다음에 도 4의 처리가 블록(440)에서 계속되는 것이 바람직하다.The logic of Figure 4 occurs when a file transfer request to a client is received. When the request is received (block 400 of FIG. 4A), a test is made to determine if a preprocessed version of the file is available. If not available, the file may be processed and sent according to the prior art, as shown in block 420, and then the processing of FIG. 4 for the request ends. (On the other hand, the logic of Figure 3 may be implemented to generate a preprocessed version of the file as described above. In this case, the processing of Figure 4 preferably continues at block 430 after the preprocessing operation is complete. If the test at block 410 has a positive result, block 430 checks whether a version that prepares the encryption algorithm and the hashing algorithm that is determined for use between the server and the requesting client is available. If not available, the file may be processed and sent according to the prior art as shown in block 420, and in other embodiments the logic of FIG. 3 may be implemented to generate the appropriate version, Next, the processing of FIG. 4 preferably continues at block 440.

요청된 파일의 사전 처리된 버전이 이용가능하면 제어는 블록(440)으로 넘어간다. 상기 파일은 SSL에 의해 요청된 해시 값들이 상기 요청 클라이언트에 파일을 전송하기 전에 삽입될 필요가 있는 빈 공간을 갖는다. 블록(450)은 전송을 위해 파일을 더 준비하는데 사용되는 암호화 키 및 해시 키를 획득한다. SSL 프로토콜에 따르면, 암호화 키 및 해시 키는 모두 SSL 접속에 대해 다시 한번 결정된다. 이것은 수신측을 알 때까지 해시 값의 계산을 지연시키는 것을 필요로 한다(이것은 실제 계산된 해시 값이 아니라 해시 값이 속하는 빈 공간을 갖는 사전 처리된 파일을 저장하도록 유도한다).If a preprocessed version of the requested file is available, control passes to block 440. The file has a free space where the hash values requested by SSL need to be inserted before sending the file to the requesting client. Block 450 obtains an encryption key and a hash key used to further prepare the file for transmission. According to the SSL protocol, both the encryption key and the hash key are determined once again for the SSL connection. This requires delaying the calculation of the hash value until the receiver knows it (this leads to storing the preprocessed file with empty space to which the hash value belongs, not the actual calculated hash value).

그 다음에 블록(460)(도 4b)은 처리되는 파일의 끝에 도달했는지를 검사한다. 만약 파일의 끝에 도달하지 않았다면, 블록(480, 495)은 출력 파일 처리를 반복해서 실시하고, 목적하는 수신측으로 그것을 전송하도록 준비한다. 블록(480)은 종래 기술의 SSL 핸드쉐이킹 프로토콜에 따라서)결정된 해싱 알고리즘을 이용하여, 파일 내 데이터의 그 다음 블록에 대한 해시를 계산한다. 그 다음에, 블록(495)은상기 계산된 해시를 상기 블록을 대해 예약된 빈 공간 대신에 삽입하고, 그 다음에 제어권이 블록(460)으로 반환된다. (바람직하게는, 사전 처리된 파일에 직접 재기록하는 대신에 데이터 버퍼 또는 임시 파일이 사용된다.)Block 460 (FIG. 4B) then checks to see if the end of the file being processed has been reached. If the end of the file has not been reached, blocks 480 and 495 repeat the output file processing and prepare to send it to the intended receiver. Block 480 calculates a hash for the next block of data in the file using a hashing algorithm determined (according to the prior art SSL handshaking protocol). Block 495 then inserts the calculated hash instead of the free space reserved for the block, and then control is returned to block 460. (Preferably, a data buffer or temporary file is used instead of writing back directly to the preprocessed file.)

전송될 전체 파일에 대한 해시 값이 계산되면, 제어권은 블록(470)으로 넘어간다. 블록(470)은 처리된 데이터 버퍼를 상기 클라이언트에게 전송하는데 사용되는 암호화 키와 함께 암호화 엔진으로 전송된다. 만약, 초기화 벡터가 암호화 엔진을 준비하는데 사용되면, 상기 벡터는 또한 이 때 전송되는 것이 바람직하다. (사용중에 특정 암호화 엔진에 적절한 크기의 데이터 블록을 이용하여)암호화 엔진이 데이터 버퍼를 암호화한 후, 상기 데이터는 사용되는 레코드 크기에 따라서 분할된다(예를 들면, SSL 프로토콜의 최대 16K 레코드 크기). 그러면 종래 기술의 SSL 메시지 및 기법을 이용하여, 블록(490)에 도시된 바와 같이 상기 파일의 다수의 세그먼트들이 다수의 송출 SSL 메시지의 페이로드로 삽입되어(메시지 페이로드당 하나의 세그먼트) 클라이언트로 전송된다. (상기 데이터의 실제 전송은 암호화 엔진으로부터 직접 수행되는 것이 바람직하다. 상기 동작은 도 4에 도시되어 있으며, 암호화된 데이터가 클라이언트에게 전송되기 전에 도 4의 동작들을 수행하는 동일 논리로 반환되어야 한다는 것을 암시하는 것은 아니다.) 그 다음에, 본 발명의 개선된 처리를 이용하여 클라이언트의 요청의 처리가 완료된다.Once the hash value for the entire file to be transferred is calculated, control passes to block 470. Block 470 is sent to the encryption engine along with the encryption key used to send the processed data buffer to the client. If an initialization vector is used to prepare the encryption engine, the vector is also preferably transmitted at this time. After the encryption engine encrypts the data buffer (using a block of data appropriate for a particular encryption engine in use), the data is partitioned according to the record size used (e.g., up to 16K record size of the SSL protocol). . Using prior art SSL messages and techniques, multiple segments of the file are then inserted into the payload of multiple outgoing SSL messages (one segment per message payload) as shown in block 490 to the client. Is sent. (The actual transmission of the data is preferably performed directly from the encryption engine. The operation is shown in Figure 4, indicating that the encrypted data must be returned to the same logic to perform the operations of Figure 4 before being sent to the client. The processing of the client's request is then completed using the improved process of the present invention.

양호한 실시예의 선택적인 측면에서, 처리된 파일의 헤더는 블록(470)의 동작 이전에 부가적인 정보를 포함하여 갱신될 수도 있다. 상기 부가적인 정보는 암호화 엔진에 의해 사용되는 암호화 키와, 암호화 알고리즘을 준비하는데 사용되는초기화 벡터가 있는 경우에는 그 초기화 벡터를 포함한다. 이런 방법으로, 암호화 엔진에 필요한 모든 정보가 파일 헤더에 제공된다. 데이터 파일을 취하고 벌크 내에 유효 SSL 레코드들을 반환하도록 설계되는 하드웨어 장치 또는 소프트웨어 인터페이스와 함께 사용될 때 이 방법은 특히 유리하다.In an optional aspect of the preferred embodiment, the header of the processed file may be updated to include additional information prior to operation of block 470. The additional information includes an encryption key used by the encryption engine, and an initialization vector if there is an initialization vector used to prepare the encryption algorithm. In this way, all the information needed by the encryption engine is provided in the file header. This method is particularly advantageous when used with a hardware device or software interface that is designed to take a data file and return valid SSL records in bulk.

다른 측면에서, 해시 키가 파일 헤더 내에 포함될 수도 있다. 상기 방법이 사용될 때, 블록(460, 480, 495)에 도시된 해싱 프로세스는 암호화 엔진에 파일을 송신하기 전에 수행되지 않고, 상기 파일을 수신할 때 암호화 엔진 그 자체에 의해 수행된다.In another aspect, a hash key may be included in the file header. When the method is used, the hashing process shown at blocks 460, 480, 495 is not performed before sending the file to the encryption engine, but is performed by the encryption engine itself upon receiving the file.

또 다른 측면에서, 해싱 프로세스가 암호화 엔진에 의해 수행될 때, 상기 해시 키는 (전술한)블록(470)의 처리 동안 암호화 엔진으로 전송된다.In another aspect, when a hashing process is performed by the encryption engine, the hash key is sent to the encryption engine during the processing of block 470 (described above).

부가적인 처리 효율은 암호화 엔진(또는 암호화 엔진들의 어레이)을 통하여 병렬로 암호화 프로세스를 파이프라이닝(pipelining)함으로서 실현할 수도 있으며, 따라서 암호화 프로세스는 클라이언트/서버 요청의 네트워크 지연을 오버랩하여 응답한다.Additional processing efficiency may be realized by pipelining the encryption process in parallel via an encryption engine (or an array of encryption engines), so that the encryption process responds with overlapping network delays in client / server requests.

전술한 바와 같이, 본 발명은 SSL 또는 TLS와 같은 보안 프로토콜을 이용하여 요청자에게 전송되는 벌크 데이터의 대칭 암호화에 대한 개선된 기법을 제공하며, 그 결과 파일을 요청자에게 전송할 때 처리량을 증가시킬 수 있으며 지연을 감소시킬 수 있다. 16K보다 훨씬 더 많은 양을 암호화 엔진에 전송할 수 있는 방식으로 파일이 준비되어 저장된다. 공급되는 파일에 대한 간단한 수정과 함께 기존의 SSL 처리에 약간의 수정만이 요구된다. SSL 또는 TLS 프로토콜에 대한 수정은 요구되지 않는다. 상기 기법은 메시지 페이로드 크기의 변경 및 암호화 알고리즘 및 해싱 알고리즘의 변화(가변적인 해시 값 길이를 포함)와 함께 사용하는데 쉽게 응용될 수 있는 유연한 해법을 제공한다. 상기 기법은 단지 최소한의 프로세싱만 추가함으로서 SSL 트래픽의 처리량을 증가시킬 수 있다.As noted above, the present invention provides an improved technique for symmetric encryption of bulk data sent to a requestor using a secure protocol such as SSL or TLS, which can increase throughput when sending a file to the requester. The delay can be reduced. The files are prepared and stored in such a way that much more than 16K can be sent to the encryption engine. With minor modifications to the supplied file, only minor modifications are required to the existing SSL processing. No modifications to the SSL or TLS protocols are required. The technique provides a flexible solution that can be easily applied for use with changes in message payload size and changes in encryption algorithms and hashing algorithms (including variable hash value lengths). The technique can increase the throughput of SSL traffic by adding only minimal processing.

이상, 본 발명의 바람직한 실시예를 설명하였지만, 당업자가 본 발명의 기본 개념을 일단 파악하면, 상기 실시예에 부가적인 변경 및 수정이 이루어질 수도 있다. 본원에 개시된 기법은 처리될 보안 프로토콜(SSL, TLS)의 사전 정의된 특징에 기초하고 있다. 본원에 개시된 본 발명의 개념은, 본원에서 논의한 것과 동일한 의미를 갖는 새로운 프로토콜로의 완전한 대체를 포함하여 보안 프로토콜의 변화가 발생하면 그 보안 프로토콜의 변화에 적응될 수도 있다. 따라서, 첨부된 청구항들은 상기한 바람직한 실시예 및 본 발명의 정신 및 범주 내에서의 모든 그러한 변형들 및 수정들을 포함하도록 구성되어 있음을 주지하라.While the preferred embodiment of the present invention has been described above, once a person skilled in the art understands the basic concept of the present invention, additional changes and modifications may be made to the embodiment. The technique disclosed herein is based on predefined features of the security protocols (SSL, TLS) to be processed. The concepts of the invention disclosed herein may be adapted to changes in the security protocol as changes in the security protocol occur, including a complete replacement with a new protocol having the same meaning as discussed herein. Accordingly, it is noted that the appended claims are intended to cover all such variations and modifications as fall within the spirit and scope of the preferred embodiment and invention described above.

Claims (26)

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 보안 프로토콜을 이용하여, 전송될 벌크(bulk) 데이터의 대칭 암호화의 효율을 향상시키기 위한 방법에 있어서,A method for improving the efficiency of symmetric encryption of bulk data to be transmitted using a secure protocol, the method comprising: 보안 전송될 파일을 결정하는 단계와,Determining a file to be securely transferred, 상기 보안 전송 전에 행해질 대칭 암호화 프로세스를 최적화하도록 상기 파일을 사전 처리하는 단계를 포함하고,Preprocessing the file to optimize a symmetric encryption process to be performed prior to the secure transmission, 상기 사전 처리하는 단계는,The preprocessing step, 상기 보안 전송 동안 상기 파일에 사용되는 데이터의 레코드 크기를 계산하는 단계 -상기 레코드 크기는 (전송 세그먼트 크기 - 해시 길이)임- 와,Calculating a record size of data used for the file during the secure transmission, wherein the record size is (transmission segment size-hash length); 상기 파일을 상기 레코드 크기의 레코드 열로 분할하는 단계 -상기 레코드들 중 마지막 레코드는 상기 레코드 크기보다 더 짧을 수도 있음- 와,Dividing the file into a record row of the record size, wherein the last record of the records may be shorter than the record size; 빈 공간을 상기 레코드 열의 각각에 부가하는 단계와,Adding an empty space to each of said record columns; 상기 각각의 레코드 열 및 상기 부가된 빈 공간들을 출력 파일에 기록하는 단계를 더 포함하는Writing each of the record strings and the added empty spaces to an output file. 벌크(bulk) 데이터의 대칭 암호화의 효율을 향상시키기 위한 방법.A method for improving the efficiency of symmetric encryption of bulk data. 제 17 항에 있어서,The method of claim 17, 상기 빈 공간을 상기 레코드 열의 각각에 부가하는 단계가 상기 마지막 블록 상에서 행해지기 전에 상기 레코드들 중 상기 마지막 레코드에 패딩(padding) 블록을 부가하는 단계를 더 포함하는Adding a padding block to the last record of the records before adding the empty space to each of the record columns is done on the last block. 벌크(bulk) 데이터의 대칭 암호화의 효율을 향상시키기 위한 방법.A method for improving the efficiency of symmetric encryption of bulk data. 제 17 항에 있어서,The method of claim 17, 헤더를 상기 출력 파일 내의 상기 레코드들 중 첫 번째 레코드의 선두에 부가하는(prepending) 단계를 더 포함하되, 상기 헤더는 (1) 상기 대칭 암호화 프로세스에 의해 사용되는 암호화 알고리즘의 식별부와, (2) 상기 대칭 암호화 프로세스의 동작 전에 상기 레코드들에 적용되는 해싱 알고리즘의 식별부와, (3) 상기 레코드 크기 중 하나 이상을 포함하는 정보를 저장하는Adding a header to the beginning of the first of the records in the output file, the header comprising (1) an identification of an encryption algorithm used by the symmetric encryption process, and (2) I) identifying a hashing algorithm applied to the records prior to operation of the symmetric encryption process, and (3) storing information comprising at least one of the record size 벌크(bulk) 데이터의 대칭 암호화의 효율을 향상시키기 위한 방법.A method for improving the efficiency of symmetric encryption of bulk data. 제 17 항에 있어서,The method of claim 17, 상기 파일에 대한 요청을 수신하는 단계와,Receiving a request for the file, 상기 요청을 수신하는 단계에 응답하여, 상기 출력 파일을 위치시키는 단계와,In response to receiving the request, locating the output file; 상기 수신된 요청과 관련된 해시 키 및 암호화 키를 획득하는 단계와,Obtaining a hash key and an encryption key associated with the received request; 상기 획득된 해시 키를 이용하여, 상기 레코드 열 내의 각각의 레코드에 해싱 알고리즘을 적용하는 단계와,Applying a hashing algorithm to each record in the record row using the obtained hash key; 상기 각각의 레코드에 대하여, 상기 부가된 빈 공간을 상기 해싱 알고리즘의 결과로 대체하여 해시 파일을 생성하는 단계와,For each record, generating a hash file by replacing the added empty space with the result of the hashing algorithm; 상기 획득된 암호화 키 및 상기 대칭 암호화 프로세스를 수행하기 위한 대칭 암호화 알고리즘을 이용하여 상기 해시 파일을 암호화하여 암호화된 파일을 생성하는 단계와,Encrypting the hash file using the obtained encryption key and a symmetric encryption algorithm for performing the symmetric encryption process to generate an encrypted file; 상기 요청에 응답하여 상기 암호화된 파일을 전송하는 단계를 더 포함하는Sending the encrypted file in response to the request. 벌크(bulk) 데이터의 대칭 암호화의 효율을 향상시키기 위한 방법.A method for improving the efficiency of symmetric encryption of bulk data. 제 20 항에 있어서,The method of claim 20, 헤더를 상기 출력 파일의 선두에 부가하는(prepending) 단계 -상기 헤더는 상기 대칭 암호화 알고리즘의 식별을 포함하는 정보를 저장함- 와,Prepending a header to the head of the output file, the header storing information including identification of the symmetric encryption algorithm; 상기 해시 키를 암호화하는 단계에 의해 사용되도록 상기 획득된 암호화 키를 상기 헤더에 부가하는 단계를 더 포함하는Adding the obtained encryption key to the header to be used by encrypting the hash key. 벌크(bulk) 데이터의 대칭 암호화의 효율을 향상시키기 위한 방법.A method for improving the efficiency of symmetric encryption of bulk data. 제 20 항에 있어서,The method of claim 20, 헤더를 상기 출력 파일의 선두에 부가하는(prepending) 단계 -상기 헤더는 상기 해싱 알고리즘의 식별부를 포함하는 정보를 저장함- 와,Prepending a header to the head of the output file, the header storing information including an identification of the hashing algorithm; 상기 해싱 알고리즘을 적용하는 단계에 의해 사용되도록 상기 획득된 해시 키를 상기 헤더에 부가하는 단계를 더 포함하는Adding the obtained hash key to the header for use by applying the hashing algorithm. 벌크(bulk) 데이터의 대칭 암호화의 효율을 향상시키기 위한 방법.A method for improving the efficiency of symmetric encryption of bulk data. 제 21 항에 있어서,The method of claim 21, 상기 헤더는 상기 해시 파일을 암호화하는 단계에 의해 사용되는 초기화 벡터를 더 포함하는The header further includes an initialization vector used by encrypting the hash file. 벌크(bulk) 데이터의 대칭 암호화의 효율을 향상시키기 위한 방법.A method for improving the efficiency of symmetric encryption of bulk data. 제 22 항에 있어서,The method of claim 22, 상기 헤더는 상기 해시 파일을 암호화하는 단계에 의해 사용되는 초기화 벡터를 더 포함하는The header further includes an initialization vector used by encrypting the hash file. 벌크(bulk) 데이터의 대칭 암호화의 효율을 향상시키기 위한 방법.A method for improving the efficiency of symmetric encryption of bulk data. 제 17 항 내지 24 항 중 어느 한 항에 기재된 방법을 컴퓨터에서 구현하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium having recorded thereon a program for implementing the method according to any one of claims 17 to 24 on a computer. 제 17 항 내지 제 24 항 중 어느 한 항에 따른 방법의 각 단계를 구현하는 각 수단들을 포함하는, 보안 프로토콜을 이용하여, 전송될 벌크 데이터의 대칭 암호화의 효율을 향상시키기 위한 시스템.A system for improving the efficiency of symmetric encryption of bulk data to be transmitted using a security protocol, comprising respective means for implementing each step of the method according to any one of claims 17 to 24.
KR10-2001-0026321A 2000-06-08 2001-05-15 Improving secure server performance with pre-processed data ready for secure protocol transfer KR100423191B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US58996700A 2000-06-08 2000-06-08
US09/589,967 2000-06-08

Publications (2)

Publication Number Publication Date
KR20010110991A KR20010110991A (en) 2001-12-15
KR100423191B1 true KR100423191B1 (en) 2004-03-18

Family

ID=24360320

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0026321A KR100423191B1 (en) 2000-06-08 2001-05-15 Improving secure server performance with pre-processed data ready for secure protocol transfer

Country Status (3)

Country Link
KR (1) KR100423191B1 (en)
CN (1) CN1309207C (en)
GB (1) GB2366974B (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100434379B1 (en) * 2001-09-21 2004-06-04 엘지전자 주식회사 Apparatus and method of IP packet encryption by block cryptographic algorithm
US20040158635A1 (en) * 2003-01-23 2004-08-12 Digi International Inc.. Secure terminal transmission system and method
EP1638288B1 (en) * 2004-09-17 2008-11-05 Alcatel Lucent System for exchanging messages between customer devices (CPE) and servers
US7512974B2 (en) 2004-09-30 2009-03-31 International Business Machines Corporation Computer system and program to update SSL certificates
EP1825412A1 (en) 2004-10-25 2007-08-29 Rick L. Orsini Secure data parser method and system
AU2011235075B2 (en) 2010-03-31 2015-10-01 Security First Corp. Systems and methods for securing data in motion
CN102647428A (en) * 2012-05-02 2012-08-22 四川建设网有限责任公司 Encrypting and decrypting system and method adopting trusteeship control based on communication network
EP2956887A1 (en) 2013-02-13 2015-12-23 Security First Corp. Systems and methods for a cryptographic file system layer

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2738972B1 (en) * 1995-09-15 1997-11-28 Thomson Multimedia Sa DATA PAGING METHOD FOR A SECURE DATA EXCHANGE PROTOCOL
US5638445A (en) * 1995-09-19 1997-06-10 Microsoft Corporation Blind encryption
US5673316A (en) * 1996-03-29 1997-09-30 International Business Machines Corporation Creation and distribution of cryptographic envelope
JP3540511B2 (en) * 1996-06-18 2004-07-07 株式会社東芝 Electronic signature verification device
FI107205B (en) * 1999-02-16 2001-06-15 Sonera Oyj A method to secure information

Also Published As

Publication number Publication date
GB2366974B (en) 2004-01-21
GB0113692D0 (en) 2001-07-25
CN1309207C (en) 2007-04-04
GB2366974A (en) 2002-03-20
KR20010110991A (en) 2001-12-15
CN1329417A (en) 2002-01-02

Similar Documents

Publication Publication Date Title
US8145898B2 (en) Encryption/decryption pay per use web service
US6922785B1 (en) Apparatus and a method for secure communications for network computers
US7305548B2 (en) Using atomic messaging to increase the security of transferring data across a network
US7076651B2 (en) System and method for highly secure data communications
US5638448A (en) Network with secure communications sessions
US5689566A (en) Network with secure communications sessions
US5825890A (en) Secure socket layer application program apparatus and method
US6941459B1 (en) Selective data encryption using style sheet processing for decryption by a key recovery agent
US6931532B1 (en) Selective data encryption using style sheet processing
Blaze High-bandwidth encryption with low-bandwidth smartcards
US6978367B1 (en) Selective data encryption using style sheet processing for decryption by a client proxy
EP1854243B1 (en) Mapping an encrypted https network packet to a specific url name and other data without decryption outside of a secure web server
US20020184488A1 (en) Systems, methods, and computer program products for accelerated dynamic protection of data
US6944762B1 (en) System and method for encrypting data messages
CA2494948A1 (en) System, method and computer program product for guaranteeing electronic transactions
JP2000029973A (en) Lock box mechanism electronic bidding method, and security providing method
WO2000014918A1 (en) System and method for encrypting data messages
US20030217258A1 (en) Apparatus and method of using ephemeral asymmetric keys to exchange security data between hardware security modules
US20040088539A1 (en) System and method for securing digital messages
US20030187805A1 (en) System and method for secure electronic commerce trade
US20020184489A1 (en) High volume secure internet server
US20030051135A1 (en) Protecting data in a network attached storage device
CN114244508A (en) Data encryption method, device, equipment and storage medium
KR100423191B1 (en) Improving secure server performance with pre-processed data ready for secure protocol transfer
WO2002021283A1 (en) System and method for transmitting and storing sensitive data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee