ARIA 암호화, 복호화에 대한 질문 입니다.
- 작성자 :
- 장*주
- 작성일 :
- 2010-10-29 13:49:03
- 조회수 :
- 3,797
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
항상 상세한 답변 감사드립니다..
현재 전자정부표준프레임워크의 암,복호화중에서ARIA를 사용하려고 합니다..
그런데 몇가지 질문 사항이 있습니다...
암호화 비밀키,알고리즘,패스워드 암호화 알고리즘 설정 프로퍼티에 대한 설명이
나와 있는데.. 도대체 이 값들은 어떻게 어떠한 값들을 셋팅해야 되는건지 잘
모르겠네요..
1. password(암호화 비밀키)
암/복호화할때 사용할 키인가요? 그럼 아무런 글자나 넣어도 상관 없는건지요??
즉, "TEST-AAA-BBB" 이렇게 아무렇게나 정의해도 되는건지요??
2. algorithm(암호화 알고리즘)
암/복호화할때 사용할 알고리즘을 정하는 것 같은데.. 이 알고리즘은 딱 정해져
있을걸로 생각 되는데, 여기서 사용할수 있는 알고리즘의 종류는 어떤것이 있는
건가요?
3. passwordAlgorithm(password 암호화 알고리즘)
이건 뭔지를 모르겠습니다.. 암호화 키와 알고리즘이 있는데... password 암호화
알고리즘은 뭘 말하는건지요?? EgovEDcryptionPasswdServlceImpl
(Password 암호화 구현체) 에서 사용되는 건가요???
만약, 그렇다면 저희는 ARIA를 사용하기 때문에 이값은 굳이 정의할 필요가 없는
건지요??
2번의 암호화 알고리즘 처럼 이것도 알고리즘이 딱 정해져 있을거 같은데.. 이것의
알고리즘의 종류는 어떤것이 있나요??
4. 암호화 구현체를 보면 여러개의 구현체가 있는데요...
ARIA Binary 는 파일 내용같은걸 암호화 하는거 같고, ARIA Text 는 String을
암호화 하는거 같고, ARIA Number 는 숫자 타입을 암호화 하는거 같은데...
그럼 사용자로 부터 받는 비밀번호 같은거는 (문자 + 숫자) 조합이기 때문에
ARIA Text를 이용하면 되는건가요??
5. 여러개의 암호화 구현체 중에서 EgovARIAEDcryptionBinServiceImpl 와 같이
ARIA 붙은거는 ARIA 암호를 사용하는 거고, EgovEDcryptionBinServlceImpl
와 같이 ARIA가 안 붙은거는 JASYPT 암호화 인건가요??
6. 실제 암호화를 할때 아래의 두녀석의 역할이 뭔지 모르겠습니다...
(1) cryptoAriaTxt.setComformStr("Egov");
여기에 넣는 "Egov" 이값이 뭘 셋팅하는 건지 모르겠구요..
(2) cryptoAriaTxt.setConfig(-1, "701122-1******");
여기에서는 두번째 인자는 암호를할 값인거 같은데..
첫번째 인자값이 뭘 말하는건지 모르겠습니다...
7. 마지막으로 byte ret_encryt[] = cryptoAriaTxt.encrypt();
이런식으로 encrypt, decrypt 시킬때 매번 byte 배열로 받아서 다시
스트링으로 변환 하던데.... 저희도 똑같이 아래와 같이 변환작업을 한다음에
그 값을 DB에 넣던지 해야 하나요???
byte ret_encryt[] = cryptoAriaTxt.encrypt();
String str = new String(ret_encryt);
str 값을 DB에 저장..
현재 전자정부표준프레임워크의 암,복호화중에서ARIA를 사용하려고 합니다..
그런데 몇가지 질문 사항이 있습니다...
암호화 비밀키,알고리즘,패스워드 암호화 알고리즘 설정 프로퍼티에 대한 설명이
나와 있는데.. 도대체 이 값들은 어떻게 어떠한 값들을 셋팅해야 되는건지 잘
모르겠네요..
1. password(암호화 비밀키)
암/복호화할때 사용할 키인가요? 그럼 아무런 글자나 넣어도 상관 없는건지요??
즉, "TEST-AAA-BBB" 이렇게 아무렇게나 정의해도 되는건지요??
2. algorithm(암호화 알고리즘)
암/복호화할때 사용할 알고리즘을 정하는 것 같은데.. 이 알고리즘은 딱 정해져
있을걸로 생각 되는데, 여기서 사용할수 있는 알고리즘의 종류는 어떤것이 있는
건가요?
3. passwordAlgorithm(password 암호화 알고리즘)
이건 뭔지를 모르겠습니다.. 암호화 키와 알고리즘이 있는데... password 암호화
알고리즘은 뭘 말하는건지요?? EgovEDcryptionPasswdServlceImpl
(Password 암호화 구현체) 에서 사용되는 건가요???
만약, 그렇다면 저희는 ARIA를 사용하기 때문에 이값은 굳이 정의할 필요가 없는
건지요??
2번의 암호화 알고리즘 처럼 이것도 알고리즘이 딱 정해져 있을거 같은데.. 이것의
알고리즘의 종류는 어떤것이 있나요??
4. 암호화 구현체를 보면 여러개의 구현체가 있는데요...
ARIA Binary 는 파일 내용같은걸 암호화 하는거 같고, ARIA Text 는 String을
암호화 하는거 같고, ARIA Number 는 숫자 타입을 암호화 하는거 같은데...
그럼 사용자로 부터 받는 비밀번호 같은거는 (문자 + 숫자) 조합이기 때문에
ARIA Text를 이용하면 되는건가요??
5. 여러개의 암호화 구현체 중에서 EgovARIAEDcryptionBinServiceImpl 와 같이
ARIA 붙은거는 ARIA 암호를 사용하는 거고, EgovEDcryptionBinServlceImpl
와 같이 ARIA가 안 붙은거는 JASYPT 암호화 인건가요??
6. 실제 암호화를 할때 아래의 두녀석의 역할이 뭔지 모르겠습니다...
(1) cryptoAriaTxt.setComformStr("Egov");
여기에 넣는 "Egov" 이값이 뭘 셋팅하는 건지 모르겠구요..
(2) cryptoAriaTxt.setConfig(-1, "701122-1******");
여기에서는 두번째 인자는 암호를할 값인거 같은데..
첫번째 인자값이 뭘 말하는건지 모르겠습니다...
7. 마지막으로 byte ret_encryt[] = cryptoAriaTxt.encrypt();
이런식으로 encrypt, decrypt 시킬때 매번 byte 배열로 받아서 다시
스트링으로 변환 하던데.... 저희도 똑같이 아래와 같이 변환작업을 한다음에
그 값을 DB에 넣던지 해야 하나요???
byte ret_encryt[] = cryptoAriaTxt.encrypt();
String str = new String(ret_encryt);
str 값을 DB에 저장..
A
안녕하세요, 장선주님
답변1.
properties 파일에 설정하는 crypto.password ( 암호화 비밀키 )값은 임의로 설정이 가능합니다
답변2.
현재 전자정부 표준프레임워크는 ARIA와 다양한 알고리즘의 암호화 모듈을 제공하고 있습니다.
일부 모듈(Server Security, 패스워드 암호화 등)에서 Hash 함수를 사용하고 있으나, 대부분이 SHA-256가 기본으로 적용되어 있습니다.
일부 패스워드 암호화 부분에 SHA-1이 적용되어 있으나, 외부 설정으로 변경 가능합니다. (알고리즘 지정이 없는 경우 SHA-1 적용)
답변3.
현재 가능한 password 암호화 알고리즘은 PBEWithMD5AndDES 대칭 암호화 알고리즘입니다.
답변4.
네, 비밀번호에 문자+숫자조합을 사용하실 경우에는 cryptolerAriaTxt 구현체를 사용하시면 됩니다
답변5.
네, EgovEDcryptionBinServlceImpl 패키지는 jasypt 바이너리 암호화 구현체이고
EgovARIAEDcryptionBinServiceImpl 는 EgovEDcryptionService 인터페이스를 상속받은 바이너리 암호화 구현체입니다
답변6.1
setComformStr 메소드는 리턴타입이 void 이며 파라미터는 java.lang.String 이고
암호화전 패스워드 확인하는데 즉, 확인할 패스워드를 입력하시면 됩니다
답변6.2
setConfig 메소드는 리턴타입이 void 이며 setConfig(int is_which,java.lang.String str_or_file) 의 파라미터를 갖는데 다음처럼 구분됩니다
iswhich - - 문자열 또는 바이너리 암호화 구분
str_or_file - - 암호화 할 문자열 또는 파일명
답변7.
네, 또한 ARIA 암호화 알고리즘을 사용하시면 Aria Number 암복호화시에 다음처럼 추가 메소드를 사용하실 수 있습니다
public byte[] Aria_encrypt(java.math.BigDecimal bigdecimal)
public java.math.BigDecimal Aria_decrypt(byte[] endecimal)
감사합니다
답변1.
properties 파일에 설정하는 crypto.password ( 암호화 비밀키 )값은 임의로 설정이 가능합니다
답변2.
현재 전자정부 표준프레임워크는 ARIA와 다양한 알고리즘의 암호화 모듈을 제공하고 있습니다.
일부 모듈(Server Security, 패스워드 암호화 등)에서 Hash 함수를 사용하고 있으나, 대부분이 SHA-256가 기본으로 적용되어 있습니다.
일부 패스워드 암호화 부분에 SHA-1이 적용되어 있으나, 외부 설정으로 변경 가능합니다. (알고리즘 지정이 없는 경우 SHA-1 적용)
답변3.
현재 가능한 password 암호화 알고리즘은 PBEWithMD5AndDES 대칭 암호화 알고리즘입니다.
답변4.
네, 비밀번호에 문자+숫자조합을 사용하실 경우에는 cryptolerAriaTxt 구현체를 사용하시면 됩니다
답변5.
네, EgovEDcryptionBinServlceImpl 패키지는 jasypt 바이너리 암호화 구현체이고
EgovARIAEDcryptionBinServiceImpl 는 EgovEDcryptionService 인터페이스를 상속받은 바이너리 암호화 구현체입니다
답변6.1
setComformStr 메소드는 리턴타입이 void 이며 파라미터는 java.lang.String 이고
암호화전 패스워드 확인하는데 즉, 확인할 패스워드를 입력하시면 됩니다
답변6.2
setConfig 메소드는 리턴타입이 void 이며 setConfig(int is_which,java.lang.String str_or_file) 의 파라미터를 갖는데 다음처럼 구분됩니다
iswhich - - 문자열 또는 바이너리 암호화 구분
str_or_file - - 암호화 할 문자열 또는 파일명
답변7.
네, 또한 ARIA 암호화 알고리즘을 사용하시면 Aria Number 암복호화시에 다음처럼 추가 메소드를 사용하실 수 있습니다
public byte[] Aria_encrypt(java.math.BigDecimal bigdecimal)
public java.math.BigDecimal Aria_decrypt(byte[] endecimal)
감사합니다