{"id":2888,"date":"2018-02-03T20:01:09","date_gmt":"2018-02-03T11:01:09","guid":{"rendered":"http:\/\/haisins.epac.to\/wordpress\/?p=2888"},"modified":"2018-02-03T20:01:09","modified_gmt":"2018-02-03T11:01:09","slug":"obfuscation-toolkit-%ea%b3%b5%ec%a7%9c-%ec%95%94%ed%98%b8%ed%99%94-%ec%9d%98-%ed%99%9c%ec%9a%a9","status":"publish","type":"post","link":"https:\/\/haisins.synology.me\/wordpress\/?p=2888","title":{"rendered":"obfuscation toolkit \uacf5\uc9dc \uc554\ud638\ud654 \uc758 \ud65c\uc6a9"},"content":{"rendered":"<div id=\"page\" class=\"hfeed site\">\n<div id=\"main\" class=\"clearfix\">\n<div class=\"inner-wrap clearfix\">\n<div class=\"main-content-section clearfix\">\n<div id=\"primary\">\n<div id=\"content\" class=\"clearfix\">\n<div class=\"article-container\">\n<div class=\"article-content clearfix\">\n<div class=\"entry-content clearfix\">\n<div id=\"4a775fde-a54f-459a-a91e-961ff1bc2e5a\" class=\"postBody\" contenteditable=\"true\">\n<p>* DES \uc18c\uac1c<\/p>\n<p>Data\uc758 \ubcf4\uc548\uc744 \uc704\ud55c\u00a0encryption\uacfc\u00a0decryption\uc758 \ubc29\ubc95\ub860\uc774 \uc5ec\ub7ec\uac00\uc9c0 \uc18c\uac1c \ub418\uc5c8\ub2e4. data\uac00 \ucc98\ub9ac\ud574\uc57c \ud558\ub294 \ud504\ub85c\uc138\uc2a4\ub294\u00a0data\ub97c \uc0dd\uc131 \ub610\ub294 \ud68d\ub4dd\ud558\uc5ec \uc774\ub97c \uc800\uc7a5\ud558\uac70\ub098 \uc804\uc1a1\ud558\ub294 \uacfc\uc815\uc5d0\uc11c\uc758 \ubcf4\uc548\uc744 \uc704\ud574 \uc774\ub97c\u00a0Encryption\ud558\uace0, \uc800\uc7a5\ub41c\u00a0data\ub97c \uc77d\uac70\ub098 \uc804\uc1a1\uc744 \ubc1b\ub294 \ud504\ub85c\uc138\uc2a4\uac00 \uc774\ub97c \ub2e4\uc2dc\u00a0Decryption\ud558\uac8c \ub41c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; DES<\/p>\n<p>DES\ub294\u00a01974\ub144\u00a0IBM\uc5d0 \uc758\ud574 \uc81c\uc548\ub418\uc5c8\ub2e4. data\ub97c \uc8fc\uc5b4\uc9c4\u00a0key\ub85c \uc554\ud638\ud654\ud558\uace0, \uc554\ud638\ud654 \ub41c\u00a0data(Ciphertext)\ub294 \ub2e4\uc2dc \ub3d9\uc77c\ud55c\u00a0key\ub97c \uc774\uc6a9\ud558\uc5ec \ud574\ub3c5 \ud560 \uc218 \uc788\ub294 \uad6c\uc870\uc774\ub2e4. DES\ub294\u00a08 byte\uc758\u00a0data\ub97c\u00a056bit\uc758\u00a0key\ub85c\u00a0\u00a0encrypt\ud55c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; Triple DES (DES3)<\/p>\n<p>DES3\ub294 \uae30\uc220\ub825\uc758 \ubc1c\ub2ec\ub85c \uc778\ud574\u00a0DES\uac00 \ub354 \uc774\uc0c1 \uc548\uc804\ud558\uc9c0 \uc54a\uc544 \uc9d0\uc73c\ub85c \uc0c8\ub85c \uc81c\uc2dc\ub41c \ud45c\uc900\uc774\ub2e4. \uc2e4\uc81c\u00a0DES\ub294\u00a01998\ub144\uc5d0 \ub098\uc628\u00a0DES Cracker\ub85c \u00a0\u00a03\uc77c \uc774\ub0b4\uc5d0 \ud574\ub3c5 \ub418\uc5b4\uc9c4\ub2e4. \uc804\uc6a9\uc7a5\ube44\ub4f1\uc744 \uc774\uc6a9\ud560 \uacbd\uc6b0\u00a0key\ub97c \ucc3e\uc544 \ub0b4\ub294\ub370\u00a03.5\uc2dc\uac04\uc774\ub0b4\uc758 \uc2dc\uac04\uc774 \uc18c\uc694\ub418\ub294 \ub4f1 \ub354 \uc774\uc0c1 \uc548\uc804\ud55c \ubc29\ubc95\uc774 \uc544\ub2c8\ub2e4. \u00a0\u00a0DES3\ub294\u00a0DES\uc640 \ud06c\uac8c \ub2e4\ub974\uc9c0 \uc54a\uc73c\uba70, 192bit\uc758\u00a0key\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n<p>\uc6d0\ub9ac\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n<p>C = Ek3(Dk2(Ek1(P)))<\/p>\n<p>E is DES Encryption round<\/p>\n<p>D is DES Decryption round<\/p>\n<p>P is the plaintext<\/p>\n<p>C is the ciphertext<\/p>\n<p>\uc989, 56bit\uc758 \ud0a4\ub85c\u00a0encrypt\ud558\uace0, \uc774\ub97c \ub2e4\uc2dc\u00a056bit\uc758\u00a0key\ub85c\u00a0decrypt \ud574\uc11c, \ub098\uba38\uc9c0\u00a056bit key\ub85c \ub2e4\uc2dc\u00a0encrypt\ud55c\ub2e4.<\/p>\n<p>\uae30\uc874\uc758\u00a0DES\uc758\u00a056bit\uc758\u00a0key\ubcf4\ub2e4\u00a0192bit key\ub97c \uc0ac\uc6a9\ud568\uc73c\ub85c\u00a0key\ub97c\u00a0\u00a0generation\ud574\uc11c \ud574\ub3c5\ud574 \ub0b4\ub294 \uac83\uc744 \ubcf4\ub2e4 \uc5b4\ub835\uac8c \ud55c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; Cipher Block Chaining(CBC) and Initialization Vector(IV)<\/p>\n<p>\uc554\ud638\ud654 \ub300\uc0c1\uc758\u00a0data\uc758 \uc774\uc804\u00a08 byte\uc758 \ub0b4\uc6a9\uc774 \ub2e4\uc74c\u00a08byte\uc758 \uc554\ud638\ud654 \uc5d0 \uc601\ud5a5\uc744 \uc900\ub2e4. \uc6d0\ub9ac\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n<p>C = Ek3(Dk2(Ek1(P Xor (PC or IV))))<\/p>\n<p>PC is ciphertext from previous 8 bytes.<\/p>\n<p>IV is Initialization Vector.<\/p>\n<p>\ub9cc\uc57d\u00a0encrypt\ud558\uace0\uc790 \ud558\ub294\u00a0data\uac00 \ucc98\uc74c\u00a08 bytes\ub77c\uba74 \uc774\uc804\uc5d0 \uc554\ud638\ud654 \ud55c\u00a0data\uac00 \uc5c6\uc74c\uc73c\ub85c \uc774\ub54c\ub294 \uc8fc\uc5b4\uc9c4\u00a08 bytes\uc758 \uac12\uc744 \uc774\uc6a9\ud558\ub294\ub370 \uc774\ub97c\u00a0Initialization Vector(IV)\ub77c\uace0 \ud55c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>* DBMS_OBFUSCATION_TOOLKIT \uad6c\uc870.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; Oracle\uc740\u00a0Oracle8 8.1.6 \uc774\ud6c4 \ubc84\uc804\uc5d0\uc11c\u00a0DBMS_OBFUSCATION_TOOLKIT \u00a0\u00a0package\ub97c \ud1b5\ud574\u00a0DES \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uace0 \uc788\ub2e4.<\/p>\n<p>package\uc5d0\uc11c \uc81c\uacf5\ub418\uc5b4\uc9c0\ub294\u00a0procedure\uc640\u00a0function\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>DESENCRYPT, DES3ENCRYPT<\/p>\n<p>DESDECRYPT, DES3DECRYPT<\/p>\n<p>&nbsp;<\/p>\n<p>\uc704\uc5d0 \ub098\uc5f4\ud55c \uc774\ub984\uc740 \ubaa8\ub450\u00a0procedure\uc640\u00a0function\uc73c\ub85c, argument\uc5d0\ub294\u00a0\u00a0RAW\uc640\u00a0varchar2\ub85c\u00a0overload\ub418\uc5b4\uc788\uc5b4 \ud544\uc694\uc5d0 \ub530\ub77c \uc0ac\uc6a9 \ud560 \uc218 \uc788\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; 8.1.6\uc740\u00a0DES3\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n<p>\ud544\uc694\uc2dc\uc5d0\ub294\u00a0DES\ub97c \uc774\uc6a9\ud558\uc5ec \uc9c1\uc811 \uad6c\ud604\ud558\uc5ec\uc57c \ud55c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; argument\ub294\u00a0RAW\uc640\u00a0VARCHAR2\ub97c \ubaa8\ub450 \uc0ac\uc6a9\uac00\ub2a5\ud558\ub098 \ud63c\uc6a9\ud558\uc5ec \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc73c\uba70, value\ub294 \ubc18\ub4dc\uc2dc\u00a08 byte\uc758 \ubc30\uc218\uc774\uc5b4\uc57c \ud55c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; Oracle\uc740\u00a02 key(128bit)\uacfc\u00a03 key(192bit) \ubc29\uc2dd \ubaa8\ub450\ub97c \uc9c0\uc6d0\ud55c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; Oracle\uc740\u00a0IV\ub85c \uace0\uc815\ub41c \uac12\uc778\u00a0&#8216;0123456789ABCDEF&#8217;\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; key\ub294 \ubc18\ub4dc\uc2dc \ub2e4\uc74c\uc5d0 \uc81c\uc2dc\ub418\ub294 \ud06c\uae30\ub85c \uc0ac\uc6a9\ub418\uc5b4\uc838\uc57c \ud55c\ub2e4.<\/p>\n<p>DES \u00a0: 64bit(8 bytes)<\/p>\n<p>DES3 : 128bit(16 bytes) or 192bit(24 bytes)<\/p>\n<p>\uc2e4\uc81c \uc0ac\uc6a9\ub418\ub294\u00a056bit(\ub610\ub294\u00a0112, 168bit)\ubcf4\ub2e4 \ud070\u00a0key\ub97c \ub118\uae30\ub294 \uc774\uc720\ub294\u00a0encrypt, decrypt\uacfc\uc815\uc5d0\uc11c\u00a0key\uc5d0\uc11c \uc77c\ubd80\u00a0bit\ub97c \ubc84\ub9ac\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; \uc0ac\uc6a9\ub418\uc5b4\uc9c0\ub294\u00a0key\uac00 \ud544\uc694\ud55c \uac12\ubcf4\ub2e4 \ub9ce\uc744 \uacbd\uc6b0, \ud544\uc694\ud55c\u00a0bit \uc774\uc0c1\uc740 \ubb34\uc2dc\ub41c\ub2e4. \uc608\ub97c \ub4e4\uc5b4\u00a0DES\uc5d0\u00a09 bytes\uc758\u00a0key\ub97c \ub118\uae30\uc5d0 \ub418\uba74\u00a09\ubc88\uc9f8\u00a0byte\ub294 \ubb34\uc2dc\ub41c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; Oracle\uc740\u00a0DBMS_OBFUSCATION_TOOLKIT\uc744\u00a0autonomous transaction\uc5d0 \uc11c \uc0ac\uc6a9\ud558\ub294 \uac83\uc744 \ud5c8\uc6a9\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>* Error code \uc18c\uac1c.<\/p>\n<p>ORA-28231 : plaintext(input value)\uac00\u00a0NULL.<\/p>\n<p>ORA-28232 : plaintext\uc758 \uae38\uc774\uac00\u00a08\uc758 \ubc30\uc218\uac00 \ub418\uc9c0 \ubabb\ud558\ub294 \uacbd\uc6b0.<\/p>\n<p>ORA-28233 : plaintext\uac00 \uc544\ub2cc\u00a0ciphertext\uac00\u00a0encrypt\uc2dc\ub3c4\ub420 \uacbd\uc6b0.<\/p>\n<p>\uc989, encrypt\ud55c \ud6c4 \ub2e4\uc2dc\u00a0encrypt\ud558\ub824 \ud560 \uacbd\uc6b0 \ubc1c\uc0dd.\u00a0\u00a0ORA-28234 : key length\uac00 \uc694\uad6c\ub418\ub294 \uac83\ubcf4\ub2e4 \uc801\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>* Sample<\/p>\n<p>==============================================================<\/p>\n<pre class=\"lang:plsql decode:true \">-- enc.sql\r\n\r\nset serveroutput on\r\n\r\ndeclare\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0temp1 raw(2048);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0key1 raw(2048);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cipher1 raw(2048);\r\n\r\nbegin\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0temp1 := utl_raw.cast_to_raw('abcdefghijklmnop');\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0key1 := utl_raw.cast_to_raw('qazxswedcvfrtgbnhyujm,ki');\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dbms_obfuscation_toolkit.des3encrypt(\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0input=&gt;temp1,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0key=&gt;key1,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0encrypted_data=&gt;cipher1,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0which=&gt;1 \u00a0\u00a0\u00a0\u00a0\u00a0-- 3 key used.\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dbms_output.put_line(\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'INPUT DATA : ['\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|| utl_raw.cast_to_varchar2(temp1)\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|| ']'\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dbms_output.put_line(\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'OUTPUT(HEX) ['\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|| cipher1\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|| ']'\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\r\n\r\nend;\r\n\r\n\/\r\n\r\n==============================================================\r\n\r\n-- dec.sql\r\n\r\nset serveroutput on\r\n\r\ndeclare\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cipher1 raw(2048);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0key1 raw(2048);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0plaintext1 raw(2048);\r\n\r\nbegin\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cipher1 := hextoraw('A4E7E8FBE8C6A2D79832D8F4214F0D0F');\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0key1 := utl_raw.cast_to_raw('qazxswedcvfrtgbnhyujm,ki');\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dbms_obfuscation_toolkit.des3decrypt(\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0input=&gt;cipher1,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0key=&gt;key1,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0decrypted_data=&gt;plaintext1,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0which=&gt;1 \u00a0\u00a0\u00a0\u00a0\u00a0-- 3 key used.\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dbms_output.put_line(\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'Encrypted DATA : ['\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|| cipher1\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|| ']'\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dbms_output.put_line(\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'Original data ['\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|| utl_raw.cast_to_varchar2(plaintext1)\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|| ']'\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\r\n\r\nend;\r\n\r\n\/\r\n\r\n==============================================================\r\n\r\nSQL&gt; @enc\r\n\r\nINPUT DATA : [abcdefghijklmnop]\r\n\r\nOUTPUT(HEX) [A4E7E8FBE8C6A2D79832D8F4214F0D0F]\r\n\r\nPL\/SQL procedure successfully completed.\r\n\r\nSQL&gt; @dec\r\n\r\nEncrypted DATA : [A4E7E8FBE8C6A2D79832D8F4214F0D0F]\r\n\r\nOriginal data [abcdefghijklmnop]\r\n\r\nPL\/SQL procedure successfully completed.\r\n\r\n==============================================================<\/pre>\n<p>&nbsp;<\/p>\n<p>* DES \uc0ac\uc6a9\uc5d0 \ub530\ub978 \uace0\ub824 \uc0ac\ud56d.<\/p>\n<p>&#8211; key\uc758 \uc800\uc7a5 \ubb38\uc81c.<\/p>\n<p>\uc0ac\uc2e4\uc0c1\u00a0encrypt\ub41c\u00a0data\ub294\u00a0key\uac00 \ub178\ucd9c \ub420 \uacbd\uc6b0 \ubaa8\ub4e0\u00a0data\uac00 \ub178\ucd9c \ub41c \uac83\uacfc \uac19\ub2e4. \ub530\ub77c\uc11c\u00a0key\ub97c \uc5b4\ub5bb\uac8c \uc800\uc7a5\ud558\ub290\ub0d0\uac00 \uc911\uc694\ud55c \ubb38\uc81c\uc774 \ub2e4.<\/p>\n<p>\ub9cc\uc57d\u00a0PL\/SQL\uc744 \uc0ac\uc6a9\ud558\ub294 \uacbd\uace0, module\uc5d0\u00a0key\ub97c \uc9c1\uc811 \ud3ec\ud568 \ud560 \uacbd\uc6b0\u00a0\u00a0DBA\uad8c\ud55c\uc744 \uac16\ub294 \uc790\ub294 \uc27d\uac8c \uc774\ub97c \ud655\uc778 \ud560 \uc218 \uc788\uc5b4, key\uc758 \ub178\ucd9c\uc774 \uc27d\ub2e4. \ub530\ub77c\uc11c\u00a0PL\/SQL\ub85c \uc791\uc131\ud560 \uacbd\uc6b0 \ubc18\ub4dc\uc2dc\u00a0wrap \ucc98\ub9ac\ub97c \ud558\uc5ec\u00a0\u00a0source\uac00 \ubcf4\uc774\uc9c0 \uc54a\ub3c4\ub85d \ud560 \ud544\uc694\uac00 \uc788\ub2e4.<\/p>\n<p>\uc774 \uc678\uc5d0, \uc0ac\uc6a9\uc790\uac00 \ud544\uc694\uc5d0 \ub530\ub77c \uc9c1\uc811 \uc785\ub825\ud558\uac8c \ud558\ub294 \ubc29\ubc95\uacfc, OS\uc758 \ud30c\uc77c\ub4f1\uc744 \uc774\uc6a9\ud558\uc5ec \uc800\uc7a5\ud558\uc5ec \ub193\ub294 \ubc29\ubc95\uc774 \uc788\uc73c\uba70, \ubaa8\ub450 \uc7a5\ub2e8\uc810\uc774 \uc788\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; \ubcf4\ub2e4 \ub192\uc740 \ubcf4\uc548\uc744 \uc704\ud574 \uc2e4\uc81c\u00a0data \uc55e\uc5d0\u00a08 byte\uc758\u00a0random text \ub97c \ucd94\uac00\ud558\ub294 \ubc29\ubc95.<\/p>\n<p>Oracle\uc740\u00a0IV\ub97c \uace0\uc815\ub41c \uac12\uc73c\ub85c \uc0ac\uc6a9\ud558\uace0 \uc788\uc73c\uba70, \ub2e4\ub978 \uac00\ubcc0\uc801\uc73c\ub85c \uc9c0\uc815\uc744 \ud560 \uc218 \uc788\ub2e4\ud558\ub354\ub77c\ub3c4 \uac19\uc740\u00a0data\ub97c\u00a0encrypt\ud558\uba70 \ud56d\uc0c1 \uac19\uc740\u00a0ciphertext\ub97c \uc5bb\uc744 \uc218 \ubc16\uc5d0 \uc5c6\ub2e4. \uc774\ub97c \uc545\uc758\ub97c \uac16\uace0\u00a0data\ub97c\u00a0\u00a0access\ud558\uace0\uc790 \ud558\ub294 \uc790\uc5d0\uac8c\u00a0data\uc758 \ud2b9\uc131\uc744 \ucd94\uce21\ud558\uac8c \ud560 \uc218 \uc788\ub294 \uc694\uc18c\uac00 \ub420 \uc218 \uc788\ub2e4.<\/p>\n<p>\ub530\ub77c\uc11c \uc2e4\u00a0data \uc55e\u00a08 byte\ub97c\u00a0random data\ub85c \ucd94\uac00\ud574\uc11c\u00a0DES3\ub85c \ucc98\ub9ac \ud560 \uacbd\uc6b0 \uac19\uc740\u00a0data\ub77c \ud558\ub354\ub77c\ub3c4 \ub9e4 \ubc88 \ub2e4\ub978\u00a0ciphertext\ub97c \uc5bb\uc744 \uc218 \uc788\uc5b4, \ubd84\uc11d\uc744 \uc5b4\ub835\uac8c \ud560 \uc218 \uc788\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>* \uacbd\uace0\u00a0: ciphertext\uac04\uc758 \ube44\ud638\ud658 \ubb38\uc81c.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; platform\uac04\uc758\u00a0ciphertext\uac04\uc758 \ube44 \ud638\ud658.<\/p>\n<p>DBMS_OBFUSCATION_TOOLKIT\uc758 \ucd08\uae30 \ubc84\uc804\uc5d0\ub294\u00a0CPU\uc758\u00a0type\uc5d0 \ub530\ub77c\u00a0\u00a0ciphertext\uac00 \uc11c\ub85c \ud638\ud658\ub418\uc9c0 \uc54a\ub294\ub2e4\ub294 \ubb38\uc81c\uc810\uc774 \ubc1c\uacac \ub418\uc5c8\ub2e4. \uc774\ub85c \uc778\ud574, Solaris box\uc5d0\uc11c\u00a0encrypt\ub41c \uac83\uc740\u00a0NT\uc5d0\uc11c\u00a0decrypt\ud560 \uacbd\uc6b0 \uc5c9\ub6b1\ud55c \uacb0\uacfc\uac00 \ub098\uc62c \uc218 \uc788\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; Oracle Version\uc5d0 \ub530\ub978 \ube44 \ud638\ud658\u00a0(upgrade \ud3ec\ud568)<\/p>\n<p>\ub3d9\uc77c\u00a0platform\uc774\ub77c \ud558\ub354\ub77c\ub3c4\u00a0Oracle8i\uc640\u00a0Oracle9i\uac04\uc758\u00a0ciphertext\ub294 \uc11c\ub85c \ud638\ud658\ub418\uc9c0 \uc54a\uc744 \uc218 \uc788\ub2e4. \uc774\ub294 \uc704\uc5d0\uc11c \uc5b8\uae09\ud55c \uc7a5\ube44\uac04 \ud638\ud658 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uba74\uc11c\u00a0DES \uad6c\ud604\uc774\u00a0Oracle9i\uc5d0\uc11c \ubcc0\uacbd\ub418\uc5b4\u00a0Oracle8i\uc5d0\uc11c\u00a0encrypt\ub41c\u00a0data\uac00\u00a0Oracle9i\uc5d0\uc11c\u00a0decrypt \ubd88\uac00\ub2a5 \ud560 \uc218 \uc788\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; DES\uc758\u00a0IV(initialization value) \uace0\uc815\uc73c\ub85c \uc778\ud55c \ube44 \ud638\ud658<\/p>\n<p>Oracle\uc740\u00a0IV\ub97c \uace0\uc815\ub41c \uac12\uc73c\ub85c \uc0ac\uc6a9\ud558\uace0 \uc788\uc5b4, Oracle\uc774 \uc544\ub2cc\u00a03RD\u00a0party module\uc744 \uc774\uc6a9\ud558\uc5ec\u00a0IV\ub97c \uc9c0\uc815\ud558\uace0\u00a0encrypt\ud560 \uacbd\uc6b0\u00a0decrypt\uac00 \ubd88\uac00\ub2a5 \ud558\ub2e4. \uc774 \ubb38\uc81c\ub85c \uc778\ud574 \ub0b4\ubd80\uc801\uc778\u00a0data\uc758\u00a0encrypt\uc640\u00a0decrypt \ub294 \uc9c0\uc7a5\ubc1b\uc9c0 \uc54a\uc73c\ub098, client \ubaa8\ub4c8\ub4f1\uc5d0\uc11c \uc9c1\uc811\u00a0DES3\ub97c \ucc98\ub9ac \ud560 \uacbd\uc6b0 \ud638\ud658\uc131\uc774 \ub5a8\uc5b4\uc9c0\uac8c \ub41c\ub2e4.<\/p>\n<p>\uc774 \ubb38\uc81c\ub294\u00a09.2.0.2\uc5d0\uc11c\u00a0IV\ub97c \uc9c0\uc6d0\ud558\ub3c4\ub85d \ud558\uc5ec \ud574\uacb0 \ud558\uc600\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>* \uad8c\uace0\uc0ac\ud56d \ubc0f \uc8fc\uc758\uc0ac\ud56d<\/p>\n<p>cipher\ub97c\u00a0access\ud558\ub294 \ubc94\uc8fc\uc5d0 \ub530\ub77c \uc2e4\uc81c\u00a0DESEncrypt\uc640\u00a0\u00a0\u00a0DESDecrypt \ub97c \uc5b4\ub514\uc11c \uc218\ud589\ud558\ub290\ub0d0\uac00 \uacb0\uc815\ub418\uc5b4\uc838\uc57c \ud55c\ub2e4. \uc608\ub97c \ub4e4\uc5b4\u00a0data\ub97c access\ud558\ub294\u00a0client\uac00 \ub2e4\uc591\ud558\uace0 \ubaa8\ub450\uac00\u00a0client\uc5d0\uac8c\u00a0cipher\ub97c \uadf8\ub300\ub85c \ub118\uaca8\uc8fc\uc5b4\u00a0client\uac00 \uc9c1\uc811 \uc774\ub97c\u00a0decrypt\ud558\uac8c \ud560 \uac83\uc778\uc9c0, \uc544\ub2c8\uba74\u00a0data<\/p>\n<p>base\ub0b4\ubd80\uc640\u00a0client\uac00 \uc774\ub97c \ubd84\ud560 \ud558\uc5ec \ub2f4\ub2f9 \ud560\uc9c0\uac00 \uacb0\uc815\ub418\uc5b4\uc838\uc57c \ud55c \ub2e4. \uc720\uc77c\ud55c\u00a0module\uc744 \ub450\uc5b4\u00a0encrypt\uc640\u00a0decrypt\ub97c \ub2f4\ub2f9\ud558\ub3c4\ub85d \ud558\ub294\uac83 \ub3c4 \ud558\ub098\uc758 \ubc29\ubc95\uc774 \ub420 \uc218 \uc788\ub2e4.<\/p>\n<p>Oracle\uc5d0\uc11c \uc81c\uacf5\ud558\ub294\u00a0DBMS_OBFUSCATION_TOOLKIT\uc740\u00a08.1.6\uc5d0 \ucd5c\ucd08 \uc81c\uacf5\ub418\uc5b4\uc9c0\uace0, platform\uac04 \ubc0f\u00a0standard\uc640\uc758 \ud638\ud658\uc131 \ud5a5\uc0c1 \ubc0f \uae30\ub2a5\uc758 \ucd94\uac00\ub85c \uc778\ud574 \ubc84\uc804\uac04\uc758 \ud638\ud658\uc131\uc744 \ubcf4\uc7a5 \ud560 \uc218 \uc5c6\ub2e4. \ub530\ub77c\uc11c, \ud55c\u00a0\u00a0instance\ub0b4\uc5d0\uc11c\ub9cc\u00a0access\ub418\uc5b4\uc9c0\ub294\u00a0data\ub85c \uad6d\ud55c\ud560 \ud544\uc694\uac00 \uc788\ub2e4.<\/p>\n<p>\uc801\uc6a9\ud558\uace0\uc790 \ud558\ub294\u00a0Oracle version\uc774\u00a0Oracle8.1.x\uc778 \uacbd\uc6b0\u00a0Oracle9\uc73c\ub85c\u00a0upgrade \ud560 \uacbd\uc6b0 \uae30\uc874\uc5d0 \uc800\uc7a5\ud55c\u00a0cipher\uac00 \ud638\ud658\ub418\uc9c0 \uc54a\uc744 \uc218 \uc788 \uc74c\uc744 \uc5fc\ub450\ud574\uc57c \ud55c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>* References<\/p>\n<p>&#8211; Oracle9i Supplied PL\/SQL Packages and Types Reference\u00a0\u00a0(Part No. A96612-01)<\/p>\n<p>&#8211; Note 166884.1<\/p>\n<p>&#8211; Note 102902.1<\/p>\n<p>@ BUG 1411221<\/p>\n<p>@ BUG 2127974<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>* DES \uc18c\uac1c Data\uc758 \ubcf4\uc548\uc744 \uc704\ud55c\u00a0encryption\uacfc\u00a0decryption\uc758 \ubc29\ubc95\ub860\uc774 \uc5ec\ub7ec\uac00\uc9c0 \uc18c\uac1c \ub418\uc5c8\ub2e4. data\uac00 \ucc98\ub9ac\ud574\uc57c \ud558\ub294 \ud504\ub85c\uc138\uc2a4\ub294\u00a0data\ub97c \uc0dd\uc131 \ub610\ub294 \ud68d\ub4dd\ud558\uc5ec \uc774\ub97c \uc800\uc7a5\ud558\uac70\ub098 \uc804\uc1a1\ud558\ub294 \uacfc\uc815\uc5d0\uc11c\uc758 \ubcf4\uc548\uc744 \uc704\ud574 \uc774\ub97c\u00a0Encryption\ud558\uace0, \uc800\uc7a5\ub41c\u00a0data\ub97c \uc77d\uac70\ub098 \uc804\uc1a1\uc744 \ubc1b\ub294 \ud504\ub85c\uc138\uc2a4\uac00 \uc774\ub97c \ub2e4\uc2dc\u00a0Decryption\ud558\uac8c \ub41c\ub2e4. &nbsp; &#8211; DES DES\ub294\u00a01974\ub144\u00a0IBM\uc5d0 \uc758\ud574 \uc81c\uc548\ub418\uc5c8\ub2e4. data\ub97c \uc8fc\uc5b4\uc9c4\u00a0key\ub85c \uc554\ud638\ud654\ud558\uace0, \uc554\ud638\ud654 \ub41c\u00a0data(Ciphertext)\ub294 \ub2e4\uc2dc \ub3d9\uc77c\ud55c\u00a0key\ub97c \uc774\uc6a9\ud558\uc5ec \ud574\ub3c5 \ud560 \uc218 \uc788\ub294 \uad6c\uc870\uc774\ub2e4. DES\ub294\u00a08 byte\uc758\u00a0data\ub97c\u00a056bit\uc758\u00a0key\ub85c\u00a0\u00a0encrypt\ud55c\ub2e4. &nbsp; &#8211; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2879,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"spay_email":""},"categories":[336],"tags":[952,953],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/haisins.synology.me\/wordpress\/wp-content\/uploads\/2018\/02\/tip2.jpg?fit=400%2C400&ssl=1","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2888"}],"collection":[{"href":"https:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2888"}],"version-history":[{"count":1,"href":"https:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2888\/revisions"}],"predecessor-version":[{"id":2889,"href":"https:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2888\/revisions\/2889"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=\/wp\/v2\/media\/2879"}],"wp:attachment":[{"href":"https:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/haisins.synology.me\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}