Title |
[共通] 暗号化結果値の長さ計算方法 | Product |
Plug-In |
---|---|---|---|
Phenomenon |
* OS : ALL
* DB : ALL * CubeOne Server : ALL * CubeOne Manager : ALL DB暗号化時に、平文値より暗号化結果値の長さが伸びる。 |
||
Cause |
平文値をブロックアルゴリズムを使って暗号化すると、結果値は16倍数で長さが伸びます。 |
||
Solution |
平文値に対して、ブロックアルゴリズムを利用した暗号化結果値に対する長さは、以下のような計算方法で
計算できます。 1. Binary : (商(平文長さ/16)*16)*16 2. ASCII : Banary * 2 3. BASE64 : 切り上げ(商((Banary)/3)*4または 暗号化長さ/3 = 0だと、商*4だが暗号化長さ/3 !=0だと、(商+1)*4 もし住民番号の13桁を暗号化すると 1. Binary (RAW) : 16 byteで約1.2倍の増加 2. ASCII (VC2) : 32 byteで約2.5倍の増加 3. BASE64 (VC2) : 24 byteで約1.8倍の増加 [ORACLEからSQLで検証] select &col_len as col_len ,((trunc(&col_len/16)*16)+16) as binary_enc ,(((trunc(&col_len/16)*16)+16)*2) as ascii_enc ,ceil(((trunc(&col_len/16)*16)+16)/3)*4 as base64_enc ,((trunc(&col_len/16)*16)+16)+4 as binary_iv ,(((trunc(&col_len/16)*16)+16)*2)+8 as ascii_iv ,(ceil(((trunc(&col_len/16)*16)+16)/3)*4)+4 as base64_iv ,(((trunc(&col_len/16)*16)+16)*2)*2 as ascii_nchar ,(ceil(((trunc(&col_len/16)*16)+16)/3)*4)*2 as base64_nchar from dual; KJY151109_No.31.암호화 결과값에 대한 길이 계산법_한일B.docx |