JP2007298847A - In-program data protection device, protection method, and program - Google Patents

In-program data protection device, protection method, and program Download PDF

Info

Publication number
JP2007298847A
JP2007298847A JP2006128081A JP2006128081A JP2007298847A JP 2007298847 A JP2007298847 A JP 2007298847A JP 2006128081 A JP2006128081 A JP 2006128081A JP 2006128081 A JP2006128081 A JP 2006128081A JP 2007298847 A JP2007298847 A JP 2007298847A
Authority
JP
Japan
Prior art keywords
program
data
character string
arbitrary
processing
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2006128081A
Other languages
Japanese (ja)
Inventor
Kazuhide Fukushima
和英 福島
Shinsaku Kiyomoto
晋作 清本
Toshiaki Tanaka
俊昭 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2006128081A priority Critical patent/JP2007298847A/en
Publication of JP2007298847A publication Critical patent/JP2007298847A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an in-program data protection device eliminating the need for a private key, reducing decline of performance efficiency, and capable of enhancing safety. <P>SOLUTION: Following steps are carried out in an arbitrary order: a step to perform bijective replacement arithmetic processing in bytes to an arbitrary character string of in-program data transferred between functions of a program; a step to perform bijective stirring arithmetic processing in bytes to an arbitrary character string of in-program data; and a step to perform rotation arithmetic processing to rotate an arbitrary character string of in-program data by the arbitrary number of bits to the left in arbitrary order. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、プログラムの関数間で受け渡しされるデータの第三者による解析を困難にさせるプログラム内データの保護装置、保護方法およびプログラムに関する。   The present invention relates to an in-program data protection device, a protection method, and a program that make it difficult for a third party to analyze data passed between program functions.

一般に、プログラムデータには、利用者に対して、秘匿すべき情報が含まれている可能性が高い。そのため、これらの秘匿すべき情報をプログラム中に保管したり、関数間での受け渡し処理が行われたりする場合には、不定な解析に対して、何らかの対策を講じることが求められる。こうした要望に対して、従来、プログラム内のデータを暗号化することにより保護する方法が提案されている(例えば、非特許文献1参照。)。
Federal Information Processing Standards Publication 197、“ADVANCED ENCRYPTION STANDARD(AES)”、November 26、2001
In general, the program data is likely to contain information that should be kept secret from the user. For this reason, when such information to be kept secret is stored in a program or a process of passing between functions is performed, it is required to take some measures against indefinite analysis. Conventionally, a method for protecting data by encrypting data in a program has been proposed (for example, see Non-Patent Document 1).
Federal Information Processing Standards Publication 197, “ADVANCED ENCRYPTION STANDARD (AES)”, November 26, 2001

しかしながら、暗号化によりプログラム内のデータを保護する方法では、以下のような問題がある。すなわち、第1に、暗号化及び復号化の処理が増えるために、効率が低下する可能性がある。第2に、暗号化には、鍵が必要であり、この鍵を確実に管理する必要がある。その方法の一つとして、プログラム自身に鍵を隠蔽する方法があるが、この場合には、隠蔽する情報が元のデータから鍵に変わるだけであるため、本質的な解決手段にはなりえないという問題がある。また、別の方法として、鍵をプログラムの外部のハードウェアに格納する方法があるが、この場合には、鍵の管理コストが極めて高くなってしまうという問題がある。   However, the method for protecting data in a program by encryption has the following problems. That is, first, since the encryption and decryption processes increase, the efficiency may decrease. Second, encryption requires a key and must be managed reliably. One of the methods is to hide the key in the program itself. In this case, the information to be hidden only changes from the original data to the key, so it cannot be an essential solution. There is a problem. As another method, there is a method of storing the key in hardware outside the program. In this case, however, there is a problem that the management cost of the key becomes extremely high.

そこで、本発明は、上述の問題点に鑑みてなされたものであり、秘密鍵が不要で、実行効率の低下が小さく、安全性を向上させることができるプログラム内データの保護装置、保護方法およびプログラムを提供することを目的とする。   Therefore, the present invention has been made in view of the above-described problems, and it does not require a secret key, has a small decrease in execution efficiency, and can protect the in-program data protection device, protection method, and The purpose is to provide a program.

本発明は、上記の課題を解決するために、以下の事項を提案している。
(1)本発明は、プログラム内のデータの任意の文字列に対して、バイト単位での全単射の置換演算処理を行うバイト置換手段(例えば、図1および図2のバイト置換部20に相当)と、プログラム内のデータの任意の文字列に対して、バイト単位での全単射の攪拌演算処理を行うバイト攪拌手段(例えば、図1および図2のバイト攪拌部30に相当)と、を備えたことを特徴とするプログラム内データの保護装置を提案している。
The present invention proposes the following matters in order to solve the above problems.
(1) The present invention provides byte replacement means (for example, the byte replacement unit 20 in FIGS. 1 and 2) that performs bijective replacement processing in units of bytes for an arbitrary character string of data in a program. Bite agitating means (for example, equivalent to the bite agitation unit 30 in FIGS. 1 and 2) that performs bijective agitation calculation processing in byte units for an arbitrary character string of data in the program A data protection device for a program characterized by comprising:

この発明によれば、バイト置換手段がプログラム内のデータの任意の文字列に対して、バイト単位での全単射の置換演算処理を行い、バイト攪拌手段がプログラム内のデータの任意の文字列に対して、バイト単位での全単射の攪拌演算処理を行う。これにより、従来よりも安全性を向上させつつ、非常に高い実行効率を実現することができる。   According to the present invention, the byte replacement means performs bijective replacement calculation processing in bytes for an arbitrary character string of data in the program, and the byte agitation means performs an arbitrary character string of the data in the program. On the other hand, a bijection agitation calculation process in byte units is performed. As a result, it is possible to achieve a very high execution efficiency while improving safety compared to the prior art.

(2)本発明は、(1)のプログラム内データの保護装置について、プログラム内のデータの任意の文字列に対して、左に任意のビット数分回転させる回転演算処理を行う演算ビット回転手段(例えば、図1および図2の演算ビット回転部10に相当)を更に備えたことを特徴とするプログラム内データの保護装置を提案している。   (2) The present invention provides an operation bit rotation means for performing rotation operation processing for rotating an arbitrary character string of data in a program left by an arbitrary number of bits with respect to the in-program data protection device of (1) A device for protecting data in a program is further proposed, further comprising (for example, equivalent to the arithmetic bit rotation unit 10 in FIGS. 1 and 2).

この発明によれば、さらに、演算ビット回転手段がプログラム内のデータの任意の文字列に対して、左に任意のビット数分回転させる回転演算処理を行うため、非常に高い実行効率を実現しつつ、非常に高い安全性を実現することができる。   Further, according to the present invention, the calculation bit rotation means performs rotation calculation processing for rotating an arbitrary character string of data in the program to the left by an arbitrary number of bits, thereby realizing very high execution efficiency. However, very high safety can be achieved.

(3)本発明は、(1)のプログラム内データの保護装置について、前記バイト置換手段における置換演算処理の逆演算処理を行うバイト置換逆演算手段(例えば、図2のバイト置換逆演算部32に相当)と、前記バイト攪拌手段における攪拌演算処理の逆演算処理を行うバイト攪拌逆演算手段(例えば、図2のバイト攪拌逆演算部31に相当)と、を更に備えたことを特徴とするプログラム内データの保護装置を提案している。   (3) The present invention relates to a byte replacement reverse operation means (for example, the byte replacement reverse operation section 32 in FIG. 2) that performs reverse operation processing of the replacement operation processing in the byte replacement means in the in-program data protection device of (1). And a bite agitation reverse calculation means (e.g., equivalent to the bite agitation reverse operation unit 31 in FIG. 2) for performing a reverse calculation process of the agitation calculation process in the bite agitation means. A protection device for in-program data is proposed.

この発明によれば、バイト置換逆演算手段がバイト置換手段における置換演算処理の逆演算処理を行い、バイト攪拌逆演算手段がバイト攪拌手段における攪拌演算処理の逆演算処理を行うことから、関数間で受け渡されるデータについて、他の関数内で元の入力値が必要な場合に、元の入力値を得ることができ、加えて、従来よりも安全性を向上させつつ、非常に高い実行効率を実現することができる。   According to the present invention, the byte replacement inverse calculation means performs the reverse calculation process of the substitution calculation process in the byte replacement means, and the bite stirring reverse calculation means performs the reverse calculation process of the stirring calculation process in the bite stirring means. If the original input value is required in other functions, the original input value can be obtained for the data passed in, and in addition, the safety is improved and the execution efficiency is very high. Can be realized.

(4)本発明は、(2)のプログラム内データの保護装置について、前記演算ビット回転手段における回転演算処理の逆演算処理を行う演算ビット回転逆演算手段(例えば、図2の演算ビット回転逆演算部33に相当)を更に備えたことを特徴とするプログラム内データの保護装置を提案している。   (4) The present invention relates to an operation bit rotation reverse operation means (for example, the operation bit rotation reverse operation of FIG. 2) for performing the reverse operation processing of the rotation operation processing in the operation bit rotation means in the in-program data protection device of (2). A device for protecting data in a program is further provided, which further includes an operation unit 33).

この発明によれば、さらに、演算ビット回転逆演算手段が演算ビット回転手段における回転演算処理の逆演算処理を行うことから、関数間で受け渡されるデータについて、他の関数内で元の入力値が必要な場合に、元の入力値を得ることができ、加えて、非常に高い実行効率を実現しつつ、非常に高い安全性を実現することができる。   According to this invention, since the operation bit rotation reverse operation means performs the reverse operation process of the rotation operation process in the operation bit rotation means, the original input value within the other function can be obtained for the data passed between the functions. The original input value can be obtained when necessary, and in addition, a very high safety can be realized while realizing a very high execution efficiency.

(5)本発明は、プログラム内のデータの任意の文字列に対して、バイト単位での全単射の置換演算処理を行うステップ(例えば、図4のステップS103に相当)と、プログラム内のデータの任意の文字列に対して、バイト単位での全単射の攪拌演算処理を行うステップ(例えば、図4のステップS104に相当)とを任意の順序で実行することを特徴とするプログラム内データの保護方法を提案している。   (5) The present invention includes a step (for example, equivalent to step S103 in FIG. 4) of performing a bijection replacement processing in units of bytes for an arbitrary character string of data in the program, In a program characterized in that a step of performing bijection agitation calculation processing in byte units (for example, corresponding to step S104 in FIG. 4) is performed in an arbitrary order on an arbitrary character string of data Proposes data protection methods.

この発明によれば、プログラム内のデータの任意の文字列に対して、任意の順序で、バイト単位での全単射の置換演算処理と、バイト単位での全単射の攪拌演算処理を行うことから、従来よりも安全性を向上させつつ、非常に高い実行効率を実現することができる。   According to the present invention, a bijection permutation calculation process in byte units and a bijection agitation calculation process in byte units are performed on an arbitrary character string of data in a program in an arbitrary order. For this reason, it is possible to achieve very high execution efficiency while improving safety compared to the prior art.

(6)本発明は、プログラム内のデータの任意の文字列に対して、バイト単位での全単射の置換演算処理を行うステップ(例えば、図4のステップS103に相当)と、プログラム内のデータの任意の文字列に対して、バイト単位での全単射の攪拌演算処理を行うステップ(例えば、図4のステップS104に相当)と、プログラム内のデータの任意の文字列に対して、左に任意のビット数分回転させる回転演算処理を行うステップ(例えば、図4のステップS102に相当)と、を任意の順序で実行することを特徴とするプログラム内データの保護方法を提案している。   (6) The present invention includes a step (for example, equivalent to step S103 in FIG. 4) of performing a bijection replacement processing in units of bytes for an arbitrary character string of data in the program, A step of performing bijection agitation calculation processing in byte units for an arbitrary character string of data (for example, equivalent to step S104 in FIG. 4), and for an arbitrary character string of data in the program, Proposing a method for protecting data in a program, characterized in that a step of performing rotation calculation processing for rotating to the left by an arbitrary number of bits (for example, corresponding to step S102 in FIG. 4) is executed in an arbitrary order Yes.

この発明によれば、プログラム内のデータの任意の文字列に対して、任意の順序で、バイト単位での全単射の置換演算処理とバイト単位での全単射の攪拌演算処理と左に任意のビット数分回転させる回転演算処理を行うことから、非常に高い実行効率を実現しつつ、非常に高い安全性を実現することができる。   According to the present invention, for an arbitrary character string of data in a program, in a random order, a bijective permutation calculation process in byte units and a bijection agitation calculation process in byte units and to the left Since the rotation calculation process for rotating by an arbitrary number of bits is performed, it is possible to realize very high safety while realizing very high execution efficiency.

(7)本発明は、プログラム内のデータの任意の文字列に対して、バイト単位での全単射の置換演算処理を行うステップ(例えば、図4のステップS103に相当)と、プログラム内のデータの任意の文字列に対して、バイト単位での全単射の攪拌演算処理を行うステップ(例えば、図4のステップS104に相当)と、を任意の順序でコンピュータに実行させるためのプログラムを提案している。   (7) The present invention includes a step (for example, equivalent to step S103 in FIG. 4) of performing a bijection replacement processing in units of bytes for an arbitrary character string of data in the program, A program for causing a computer to execute a step (for example, equivalent to step S104 in FIG. 4) of bijection agitation calculation processing in byte units for an arbitrary character string of data and an arbitrary order is suggesting.

この発明によれば、プログラム内のデータの任意の文字列に対して、任意の順序で、バイト単位での全単射の置換演算処理と、バイト単位での全単射の攪拌演算処理を行うことから、従来よりも安全性を向上させつつ、非常に高い実行効率を実現することができる。   According to the present invention, a bijection permutation calculation process in byte units and a bijection agitation calculation process in byte units are performed on an arbitrary character string of data in a program in an arbitrary order. For this reason, it is possible to achieve very high execution efficiency while improving safety compared to the prior art.

(8)本発明は、プログラム内のデータの任意の文字列に対して、バイト単位での全単射の置換演算処理を行うステップ(例えば、図4のステップS103に相当)と、プログラム内のデータの任意の文字列に対して、バイト単位での全単射の攪拌演算処理を行うステップ(例えば、図4のステップS104に相当)と、プログラム内のデータの任意の文字列に対して、左に任意のビット数分回転させる回転演算処理を行うステップ(例えば、図4のステップS102に相当)と、を任意の順序でコンピュータに実行させるためのプログラムを提案している。   (8) The present invention includes a step (for example, equivalent to step S103 in FIG. 4) of performing a bijection replacement processing in units of bytes for an arbitrary character string of data in the program, A step of performing bijection agitation calculation processing in byte units for an arbitrary character string of data (for example, equivalent to step S104 in FIG. 4), and for an arbitrary character string of data in the program, A program is proposed for causing a computer to execute a rotation calculation process for rotating to the left by an arbitrary number of bits (e.g., corresponding to step S102 in FIG. 4) and an arbitrary order.

この発明によれば、プログラム内のデータの任意の文字列に対して、任意の順序で、バイト単位での全単射の置換演算処理とバイト単位での全単射の攪拌演算処理と左に任意のビット数分回転させる回転演算処理を行うことから、非常に高い実行効率を実現しつつ、非常に高い安全性を実現することができる。   According to the present invention, for an arbitrary character string of data in a program, in a random order, a bijective permutation calculation process in byte units and a bijection agitation calculation process in byte units and to the left Since the rotation calculation process for rotating by an arbitrary number of bits is performed, it is possible to realize very high safety while realizing very high execution efficiency.

本発明によれば、高速な演算ビット回転、バイト置換及びバイト攪拌のみの処理を用いることにより、実行効率の低下を最小限に抑えることができるという効果がある。
また、本発明によれば、暗号鍵を用いない処理を実現できることから、従来に比べて低コストで実行効率の低下が少ない方法を提供できるという効果がある。
さらに、ビット単位の処理とバイト単位の処理とを組み合わせることにより、高い安全性を実現できるという効果がある。
According to the present invention, it is possible to minimize a decrease in execution efficiency by using only high-speed operation bit rotation, byte replacement, and byte agitation processing.
In addition, according to the present invention, since processing without using an encryption key can be realized, it is possible to provide a method that is less costly and less likely to reduce execution efficiency.
Furthermore, there is an effect that high security can be realized by combining the processing in bit units and the processing in byte units.

以下、本発明の実施形態について、図1から図5を用いて詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 1 to 5.
Note that the constituent elements in the present embodiment can be appropriately replaced with existing constituent elements and the like, and various variations including combinations with other existing constituent elements are possible. Therefore, the description of the present embodiment does not limit the contents of the invention described in the claims.

本実施形態に係るプログラム内データの保護装置は、図3に示すように、プログラム内のデータを関数1、関数2、関数3等の関数間で受け渡す場合に、そのデータを保護するものである。なお、図3において、上の図が従来の関数間におけるデータの受け渡しの様子を示しており、下の図が、本発明を適用した場合の関数間におけるデータの受け渡しの様子を示している。   The in-program data protection apparatus according to the present embodiment protects data in the program when the data in the program is transferred between functions such as function 1, function 2, and function 3, as shown in FIG. is there. In FIG. 3, the upper diagram shows how data is transferred between conventional functions, and the lower diagram shows how data is transferred between functions when the present invention is applied.

ここで、関数1に対応するプログラム内データの保護装置の構成は、図1に示すように、演算ビット回転部10と、バイト置換部20と、バイト攪拌部30とから構成されている。   Here, the configuration of the in-program data protection device corresponding to the function 1 includes an arithmetic bit rotation unit 10, a byte replacement unit 20, and a byte agitation unit 30, as shown in FIG.

演算ビット回転部10は、文字列Aに対し、左にnビット回転させる演算を行う。以下、この演算をR(A、n)と略記する。具体的には、「10101101」なる文字列に対して、左に3ビット回転させる演算を行うと、その文字列は、「01101101」となる。これを、R(0b10101101、3)=01101101と表記する。   The operation bit rotation unit 10 performs an operation to rotate the character string A by n bits to the left. Hereinafter, this calculation is abbreviated as R (A, n). Specifically, when an operation for rotating the character string “10101101” by 3 bits to the left is performed, the character string becomes “01101101”. This is expressed as R (0b10101101, 3) = 01101101.

バイト置換部20は、文字列Aに対し、バイト単位での全単射の置換を行う演算を行う。以下、この演算をS(A)と略記する。具体的には、「00」は「F4」、「01」は「92」、「02」は「3E」、「03」は「A8」、「FE」は「21」、「FF」は「89」といったぐあいにバイト単位で置換すべき情報を格納したデータテーブルに基づいて、置換が実行される。したがって、「00010203」なる文字列に対して、置換演算を行うと、「F4923EA8」となる。これを、S(0x00010203)=0xF4923EA8と表記する。   The byte replacement unit 20 performs an operation for performing bijection replacement on the character string A in byte units. Hereinafter, this calculation is abbreviated as S (A). Specifically, “00” is “F4”, “01” is “92”, “02” is “3E”, “03” is “A8”, “FE” is “21”, and “FF” is “ The replacement is executed based on the data table storing the information to be replaced in units of bytes. Therefore, when a substitution operation is performed on the character string “00010203”, “F4923EA8” is obtained. This is expressed as S (0x00010203) = 0xF4923EA8.

バイト攪拌部30は、文字列Aに対し、バイト単位での全単射の攪拌を行う演算を行う。以下、この演算をM(A)と略記する。具体的には、文字列を「82F31CB7」とし、これをバイト単位に「82」をA、「F3」をB、「1C」をC、「B7」をDとしたときに、M(A‖B‖C‖D)=B‖A‖D‖Cなる攪拌を実行すると、その文字列は、「F382B71C」となる。これを、M(0x82F31CB7)=F382B71Cと表記する。   The bite agitation unit 30 performs an operation for performing bijective agitation on the character string A in byte units. Hereinafter, this calculation is abbreviated as M (A). Specifically, when the character string is “82F31CB7”, and “82” is A, “F3” is B, “1C” is C, and “B7” is D in bytes, M (A‖ When stirring such that B な る C‖D) = B‖A‖D‖C is executed, the character string becomes “F382B71C”. This is expressed as M (0x82F31CB7) = F382B71C.

一方、関数2に対応するプログラム内データの保護装置の構成は、図2に示すように、演算ビット回転部10と、バイト置換部20と、バイト攪拌部30と、バイト攪拌逆演算部31と、バイト置換逆演算部32と、演算ビット回転逆演算部33とから構成されている。なお、演算ビット回転部10、バイト置換部20、バイト攪拌部30については、すでに説明したものと同様であることから、その詳細な説明は省略する。   On the other hand, as shown in FIG. 2, the configuration of the in-program data protection device corresponding to the function 2 includes an operation bit rotation unit 10, a byte replacement unit 20, a byte agitation unit 30, and a byte agitation inverse operation unit 31. , A byte replacement inverse operation unit 32 and an operation bit rotation inverse operation unit 33. Note that the arithmetic bit rotation unit 10, the bite replacement unit 20, and the bite stirring unit 30 are the same as those already described, and thus detailed description thereof is omitted.

バイト攪拌逆演算部31は、バイト攪拌演算の逆演算であり、以下、この演算をIM(A)と略記する。具体的には、「F382B71C」なる文字列に、バイト攪拌逆演算を行うと、その文字列は、「82F31CB7」となる。これを、IM(0xF382B71C)=0x82F31CB7と表記する。   The bite agitation reverse calculation unit 31 is an inverse operation of the bite agitation calculation. Hereinafter, this calculation is abbreviated as IM (A). Specifically, when the bite stirring reverse operation is performed on the character string “F382B71C”, the character string becomes “82F31CB7”. This is expressed as IM (0xF382B71C) = 0x82F31CB7.

バイト置換逆演算部32は、バイト置換演算の逆演算であり、以下、この演算をIS(A)と略記する。具体的には、「F4923EA8」なる文字列に、バイト置換逆演算を行うと、その文字列は、「00010203」となる。これを、IS(0xF4923EA8)=0x00010203と表記する。   The byte replacement inverse operation unit 32 is an inverse operation of the byte replacement operation. Hereinafter, this operation is abbreviated as IS (A). Specifically, when the byte replacement inverse operation is performed on the character string “F4923EA8”, the character string becomes “00010203”. This is expressed as IS (0xF4923EA8) = 0x00010203.

演算ビット回転逆演算部33は、演算ビット回転演算の逆演算であり、以下、この演算をR(A、−n)と略記する。具体的には、「01101101」なる文字列に対して、右に3ビット回転させる逆演算を行うと、その文字列は、「10101101」となる。これを、R(0b01101101、−3)=10101101と表記する。   The calculation bit rotation reverse calculation unit 33 is a reverse calculation of the calculation bit rotation calculation. Hereinafter, this calculation is abbreviated as R (A, -n). Specifically, when a reverse operation is performed by rotating the character string “01101101” 3 bits to the right, the character string becomes “10101101”. This is expressed as R (0b01101101, -3) = 10101101.

次に、図3の関数1に対応するプログラム内データの保護装置における処理動作について、図4を用いて説明する。
まず、プログラム内データの保護装置は、図示しない入力部からデータとして、例えば、「10101101」の文字列からなるデータを入力する(ステップS101)。入力したデータは、演算ビット回転部10に送信され、例えば、入力した文字列に対して、左に3ビット回転させる演算が施され、R(0b10101101、3)=01101101なる文字列を得る(ステップS102)。
Next, the processing operation in the protection device for in-program data corresponding to function 1 in FIG. 3 will be described with reference to FIG.
First, the in-program data protection apparatus inputs data including, for example, a character string “10101101” as data from an input unit (not shown) (step S101). The input data is transmitted to the operation bit rotation unit 10, and for example, an operation for rotating the input character string by 3 bits to the left is performed to obtain a character string of R (0b10101101, 3) = 0101101 S102).

演算ビット回転部10において演算処理された文字列「01101101」は、バイト置換部20に送信され、例えば、バイト置換処理により、S(0x01101101)=F429F992なる文字列を得る(ステップS103)。   The character string “01101101” subjected to arithmetic processing in the arithmetic bit rotation unit 10 is transmitted to the byte replacement unit 20, and for example, a character string of S (0x01101101) = F429F992 is obtained by byte replacement processing (step S103).

バイト置換部20において演算処理された文字列「F429F992」は、バイト攪拌部30に送信され、例えば、バイト攪拌処理により、M(0xF429F992)=29F492F9なる文字列を得る(ステップS104)。こうして得られた文字列は、関数2に対して出力される(ステップS105)。すなわち、これらの処理により、data=R(M(S(output)、n))を得る。   The character string “F429F992” calculated by the byte replacement unit 20 is transmitted to the bite agitation unit 30 and, for example, a character string of M (0xF429F992) = 29F492F9 is obtained by the byte agitation processing (step S104). The character string obtained in this way is output to the function 2 (step S105). That is, data = R (M (S (output), n)) is obtained by these processes.

次に、図3の関数2に対応するプログラム内データの保護装置における処理動作について、図5を用いて説明する。
まず、プログラム内データの保護装置は、図示しない入力部からデータとして、例えば、「29F492F9」の文字列からなるデータを入力する(ステップS201)。入力したデータは、バイト攪拌逆演算部31に送信され、バイト攪拌逆演算処理により、IM(0x29F492F9)=F429F992なる文字列を得る(ステップS202)。
Next, the processing operation in the protection apparatus for in-program data corresponding to the function 2 in FIG. 3 will be described with reference to FIG.
First, the in-program data protection device inputs data consisting of, for example, a character string “29F492F9” as data from an input unit (not shown) (step S201). The input data is transmitted to the bite agitation reverse calculation unit 31, and a character string of IM (0x29F492F9) = F429F992 is obtained by the bite agitation reverse calculation process (step S202).

バイト攪拌逆演算部31において逆演算処理された文字列「F429F992」は、バイト置換逆演算部32に送信され、バイト置換逆演算処理により、IS(0xF429F992)=01101101なる文字列を得る(ステップS203)。   The character string “F429F992” subjected to the reverse operation processing in the byte agitation reverse operation unit 31 is transmitted to the byte replacement reverse operation unit 32, and a character string of IS (0xF429F992) = 0101101101 is obtained by the byte replacement reverse operation processing (step S203). ).

バイト置換逆演算部32において逆演算処理された文字列「01101101」は、演算ビット回転逆演算部33に送信され、演算ビット回転逆演算により、R(0b01101101、−3)=10101101なる文字列を得る(ステップS204)。ここまでの処理により元の入力値を得ることができる。   The character string “01101101” subjected to the reverse operation processing in the byte replacement reverse operation unit 32 is transmitted to the operation bit rotation reverse operation unit 33, and a character string of R (0b01101101, −3) = 10101101 is obtained by the operation bit rotation reverse operation. Obtain (step S204). The original input value can be obtained by the processing so far.

次に、演算ビット回転逆演算部33において逆演算処理された文字列「10101101」は、演算ビット回転部10に送信され、例えば、入力した文字列に対して、左に3ビット回転させる演算が施され、R(0b10101101、3)=01101101なる文字列を得る(ステップS205)。   Next, the character string “10101101” subjected to the inverse operation processing in the operation bit rotation inverse operation unit 33 is transmitted to the operation bit rotation unit 10, and for example, an operation for rotating the input character string by 3 bits to the left is performed. And a character string of R (0b10101101, 3) = 0101101 is obtained (step S205).

演算ビット回転部10において演算処理された文字列「01101101」は、バイト置換部20に送信され、例えば、バイト置換処理により、S(0x01101101)=F429F992なる文字列を得る(ステップS206)。   The character string “01101101” subjected to arithmetic processing in the arithmetic bit rotation unit 10 is transmitted to the byte replacement unit 20, and for example, a character string of S (0x01101101) = F429F992 is obtained by byte replacement processing (step S206).

バイト置換部20において演算処理された文字列「F429F992」は、バイト攪拌部30に送信され、例えば、バイト攪拌処理により、M(0xF429F992)=29F492F9なる文字列を得る(ステップS207)。こうして得られた文字列は、関数2に対して出力される。すなわち、これらの処理により、output=IS(IM(R(data、−n)))を得る。   The character string “F429F992” calculated by the byte replacement unit 20 is transmitted to the bite agitation unit 30 and, for example, a character string M (0xF429F992) = 29F492F9 is obtained by the byte agitation processing (step S207). The character string thus obtained is output to the function 2. That is, output = IS (IM (R (data, −n))) is obtained by these processes.

したがって、本実施形態においては、プログラムの関数間で受け渡しされるデータを保護するために、演算ビット回転処理、バイト置換処理、バイト攪拌処理の3つの処理を行うため、プログラム中のデータ保護に関して、従来の方法よりも、実行効率の低下を小さくし、安全性を向上させることができる。特に、安全性を必要とするデータに関しては、本実施形態における方法は有効であり、ビット単位の攪拌とバイト単位の攪拌の双方を適用することにより、従来にない高い安全性を実現することができる。   Therefore, in the present embodiment, in order to protect the data passed between the functions of the program, three processes of the arithmetic bit rotation process, the byte replacement process, and the byte agitation process are performed. As compared with the conventional method, the decrease in execution efficiency can be reduced and the safety can be improved. In particular, for data that requires safety, the method in the present embodiment is effective, and by applying both bit-wise stirring and bit-by-bit stirring, it is possible to achieve unprecedented high safety. it can.

また、本実施形態における変換を用いることにより、関数間でやり取りされるデータの値が撹乱され、さらに、入力として与えられる即値の値も隠蔽することができるという効果を生ずる。   In addition, by using the conversion in the present embodiment, the value of data exchanged between functions is disturbed, and an immediate value given as an input can be concealed.

なお、本実施形態においては、演算ビット回転処理、バイト置換処理、バイト攪拌処理の3つの処理を行う例について説明したが、実行効率を優先する場合には、バイト単位の処理、すなわち、バイト置換処理とバイト攪拌処理だけを実行してもよい。この場合、これらの演算はバイト単位での演算のみで実現できるため、非常に高い効率性を得ることができる。   In the present embodiment, an example in which three processing operations, that is, an arithmetic bit rotation process, a byte replacement process, and a byte agitation process are performed has been described. However, when priority is given to execution efficiency, a process in units of bytes, that is, byte replacement is performed. Only the processing and the bite stirring processing may be executed. In this case, since these operations can be realized only by operations in byte units, very high efficiency can be obtained.

また、本実施形態においては、演算ビット回転処理、バイト置換処理、バイト攪拌処理の順で、処理を行う方法を例示したが、これはあくまでも例示であって、3つの処理を別の手順で行ってもよい。   In this embodiment, the method of performing processing in the order of the operation bit rotation processing, the byte replacement processing, and the byte agitation processing is illustrated, but this is merely an example, and the three processings are performed in different procedures. May be.

なお、上記の処理内容を記述したプログラムをコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを実行することによって本発明のハッシュ関数処理装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。   It should be noted that the hash function processing device of the present invention can be realized by recording a program describing the above processing contents on a computer-readable recording medium and executing the program recorded on the recording medium. The computer system here includes an OS and hardware such as peripheral devices.

また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。   Further, the “computer system” includes a homepage providing environment (or display environment) if a WWW system is used. The program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.

また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。   The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer system, and what is called a difference file (difference program) may be sufficient.

以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。   The embodiments of the present invention have been described in detail with reference to the drawings. However, the specific configuration is not limited to the embodiments, and includes designs and the like that do not depart from the gist of the present invention.

本実施形態に係るプログラム内データの保護装置の構成図である。It is a block diagram of the protection apparatus of the data in the program which concerns on this embodiment. 本実施形態に係るプログラム内データの保護装置の構成図である。It is a block diagram of the protection apparatus of the data in the program which concerns on this embodiment. プログラムへの適用に関して、従来例と本実施形態との処理の違いを例示した図である。It is the figure which illustrated the difference of the process of a prior art example and this embodiment regarding the application to a program. 本実施形態に係るプログラム内データの保護装置の処理フロー図である。It is a processing flow figure of the protection device of the data in a program concerning this embodiment. 本実施形態に係るプログラム内データの保護装置の処理フロー図である。It is a processing flow figure of the protection device of the data in a program concerning this embodiment.

符号の説明Explanation of symbols

10・・・演算ビット回転部、20・・・バイト置換部、30・・・バイト攪拌部、31・・・バイト攪拌逆演算部、32・・・バイト置換逆演算部、33・・・演算ビット回転逆演算部   DESCRIPTION OF SYMBOLS 10 ... Operation bit rotation part, 20 ... Byte replacement part, 30 ... Byte stirring part, 31 ... Byte stirring reverse operation part, 32 ... Byte replacement reverse operation part, 33 ... Calculation Bit rotation reverse operation part

Claims (8)

プログラム内のデータの任意の文字列に対して、バイト単位での全単射の置換演算処理を行うバイト置換手段と、
プログラム内のデータの任意の文字列に対して、バイト単位での全単射の攪拌演算処理を行うバイト攪拌手段と、
を備えたことを特徴とするプログラム内データの保護装置。
Byte replacement means for performing bijective replacement operation processing in bytes for an arbitrary character string of data in the program,
A byte agitation means for performing bijection agitation calculation processing in byte units for an arbitrary character string of data in the program,
A device for protecting data in a program, comprising:
プログラム内のデータの任意の文字列に対して、左に任意のビット数分回転させる回転演算処理を行う演算ビット回転手段を更に備えたことを特徴とする請求項1に記載のプログラム内データの保護装置。   2. The program bit data according to claim 1, further comprising calculation bit rotation means for performing a rotation calculation process for rotating an arbitrary character string of data in the program to the left by an arbitrary number of bits. Protective device. 前記バイト置換手段における置換演算処理の逆演算処理を行うバイト置換逆演算手段と、
前記バイト攪拌手段における攪拌演算処理の逆演算処理を行うバイト攪拌逆演算手段と、
を更に備えたことを特徴とする請求項1に記載のプログラム内データの保護装置。
Byte replacement reverse operation means for performing reverse operation processing of replacement operation processing in the byte replacement means;
Bite stirring reverse calculation means for performing reverse calculation processing of stirring calculation processing in the bite stirring means,
The in-program data protection device according to claim 1, further comprising:
前記演算ビット回転手段における回転演算処理の逆演算処理を行う演算ビット回転逆演算手段を更に備えたことを特徴とする請求項2に記載のプログラム内データの保護装置。   3. The in-program data protection device according to claim 2, further comprising an operation bit rotation reverse operation means for performing reverse operation processing of rotation operation processing in the operation bit rotation means. プログラム内のデータの任意の文字列に対して、バイト単位での全単射の置換演算処理を行うステップと、
プログラム内のデータの任意の文字列に対して、バイト単位での全単射の攪拌演算処理を行うステップと、
を任意の順序で実行することを特徴とするプログラム内データの保護方法。
A step of performing bijective substitution operation processing in bytes on an arbitrary character string of data in the program;
A step of performing bijection agitation calculation processing in bytes for any character string of data in the program,
Are executed in an arbitrary order. A method for protecting data in a program.
プログラム内のデータの任意の文字列に対して、バイト単位での全単射の置換演算処理を行うステップと、
プログラム内のデータの任意の文字列に対して、バイト単位での全単射の攪拌演算処理を行うステップと、
プログラム内のデータの任意の文字列に対して、左に任意のビット数分回転させる回転演算処理を行うステップと、
を任意の順序で実行することを特徴とするプログラム内データの保護方法。
A step of performing bijective substitution operation processing in bytes on an arbitrary character string of data in the program;
A step of performing bijection agitation calculation processing in bytes for any character string of data in the program,
A step of performing rotation calculation processing for rotating an arbitrary number of bits to the left with respect to an arbitrary character string of data in the program;
Are executed in an arbitrary order. A method for protecting data in a program.
プログラム内のデータの任意の文字列に対して、バイト単位での全単射の置換演算処理を行うステップと、
プログラム内のデータの任意の文字列に対して、バイト単位での全単射の攪拌演算処理を行うステップと、
を任意の順序でコンピュータに実行させるためのプログラム。
A step of performing bijective substitution operation processing in bytes on an arbitrary character string of data in the program;
A step of performing bijection agitation calculation processing in bytes for any character string of data in the program,
A program that causes a computer to execute in a random order
プログラム内のデータの任意の文字列に対して、バイト単位での全単射の置換演算処理を行うステップと、
プログラム内のデータの任意の文字列に対して、バイト単位での全単射の攪拌演算処理を行うステップと、
プログラム内のデータの任意の文字列に対して、左に任意のビット数分回転させる回転演算処理を行うステップと、
を任意の順序でコンピュータに実行させるためのプログラム。
A step of performing bijective substitution operation processing in bytes on an arbitrary character string of data in the program;
A step of performing bijection agitation calculation processing in bytes for any character string of data in the program,
A step of performing rotation calculation processing for rotating an arbitrary number of bits to the left with respect to an arbitrary character string of data in the program;
A program that causes a computer to execute in a random order
JP2006128081A 2006-05-02 2006-05-02 In-program data protection device, protection method, and program Pending JP2007298847A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006128081A JP2007298847A (en) 2006-05-02 2006-05-02 In-program data protection device, protection method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006128081A JP2007298847A (en) 2006-05-02 2006-05-02 In-program data protection device, protection method, and program

Publications (1)

Publication Number Publication Date
JP2007298847A true JP2007298847A (en) 2007-11-15

Family

ID=38768370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006128081A Pending JP2007298847A (en) 2006-05-02 2006-05-02 In-program data protection device, protection method, and program

Country Status (1)

Country Link
JP (1) JP2007298847A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009529819A (en) * 2006-03-10 2009-08-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Data processing system integrity
JP2012151546A (en) * 2011-01-17 2012-08-09 Kddi Corp Storage device, storage method and program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08227269A (en) * 1994-01-10 1996-09-03 Fujitsu Ltd Conversion pattern generation mechanism, cipher function mechanism and cipher device using it
WO2005060147A1 (en) * 2003-12-11 2005-06-30 Koninklijke Philips Electronics N.V. Block ciphering system, using permutations to hide the core ciphering function of each encryption round

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08227269A (en) * 1994-01-10 1996-09-03 Fujitsu Ltd Conversion pattern generation mechanism, cipher function mechanism and cipher device using it
WO2005060147A1 (en) * 2003-12-11 2005-06-30 Koninklijke Philips Electronics N.V. Block ciphering system, using permutations to hide the core ciphering function of each encryption round

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009529819A (en) * 2006-03-10 2009-08-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Data processing system integrity
JP2012151546A (en) * 2011-01-17 2012-08-09 Kddi Corp Storage device, storage method and program

Similar Documents

Publication Publication Date Title
JP2022508351A (en) Privacy protection based on homomorphic encryption Multi-institutional data classification method
US9774443B2 (en) Computing key-schedules of the AES for use in white boxes
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
US8958548B2 (en) Generation of relative prime numbers for use in cryptography
US8699702B2 (en) Securing cryptographic process keys using internal structures
KR20170097509A (en) Operation method based on white-box cryptography and security apparatus for performing the method
CN110855433A (en) Data encryption method and device based on encryption algorithm and computer equipment
US20060269055A1 (en) Method and apparatus for improving performance and security of DES-CBC encryption algorithm
JP2007298847A (en) In-program data protection device, protection method, and program
JP2012039180A (en) Encryptor of stream encryption, decoder of stream encryption, encrypting method of stream encryption, decoding method of stream encryption, and program
CN103605927A (en) Encryption and decryption method based on embedded Linux system
JP5102536B2 (en) Stream cipher encryption apparatus, decryption apparatus, encryption method, decryption method, and program
Aghili Improving security using blow fish algorithm on deduplication cloud storage
JP4938430B2 (en) Nonlinear function unit, stream cipher encryption apparatus, decryption apparatus, MAC generation apparatus, stream cipher encryption method, decryption method, MAC generation method, and program
Saudagar et al. Image encryption based on advanced encryption standard (aes)
JP5489696B2 (en) Stream cipher encryption apparatus, stream cipher decryption apparatus, stream cipher encryption method, stream cipher decryption method, and program
JP7215245B2 (en) Information processing device, information processing method and program
JP5415020B2 (en) Stream cipher encryption apparatus, decryption apparatus, MAC generation apparatus, stream cipher encryption method, decryption method, MAC generation method, and program
JP5559011B2 (en) Stream cipher encryption apparatus, stream cipher encryption method and program
JP6181573B2 (en) Data sharing system, data sharing method and program
JP5096794B2 (en) Stream cipher encryption device, stream cipher decryption device, self-synchronization stream cipher encryption device, self-synchronization stream cipher decryption device, stream cipher encryption method, self-synchronization stream cipher encryption method And programs
JP2009037095A (en) Data scrambling apparatus, data descrambling apparatus, data scrambling method, data descrambling method and program
Harram et al. Simulation of AES based data encryption in Vb. NET
JP5495825B2 (en) Stream cipher secret calculation encryption apparatus, stream cipher secret calculation decryption apparatus, encryption method, decryption method, and program
Huong Implementation of (AES) advanced encryption standard algorithm in communication application

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110902

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110927