AES 와 RSA 를 결합 한 데이터 암호 화 방안

2515 단어
RSA 알고리즘 은 공개 키 시스템 의 대표 로 그 안전성 은 큰 소수 인자 의 합 수 를 가지 고 있 으 며 그 인자 분해 가 어렵 다 는 법칙 위 에 세 워 져 있다.Rijndael 알고리즘 은 차세 대 고급 암호 화 기준 으로서 실행 할 때 컴퓨터 가 매우 높 은 처리 능력 과 큰 메모 리 를 가지 지 않 아 도 됩 니 다. 조작 은 시간 과 공간의 공격 을 쉽게 막 을 수 있 고 서로 다른 운영 환경 에서 좋 은 성능 을 유지 할 수 있 습 니 다.이 때문에 AES 는 안전, 효율, 성능, 편리, 유연성 을 하나 로 모 으 고 네트워크 데이터 암호 화의 최 우선 선택 이 되 어야 한다.비교 해 보면 AES 키 의 길 이 는 최대 256 비트 에 불과 하기 때문에 소프트웨어 와 하드웨어 를 이용 하여 고속 처 리 를 할 수 있 고 RSA 알고리즘 은 큰 정수 의 승멱 과 모델 링 등 여러 글자 의 길 이 를 처리 해 야 하기 때문에 처리 속도 가 AES [5] 보다 현저히 느리다.그래서 AES 알고리즘 의 복호화 처리 효율 은 RSA 알고리즘 보다 현저히 높다.키 관리 에 있어 AES 알고리즘 은 통신 전에 키 에 대해 비밀 분 배 를 요구 하기 때문에 암호 화 된 비밀 키 는 반드시 네트워크 를 통 해 암호 화 된 데이터 수신 자 에 게 전송 해 야 합 니 다. RSA 는 공개 키 암호 화, 비밀 키 복호화 (또는 비밀 키 암호 화, 공개 키 복호화) 를 사용 하고 복호화 과정 에서 네트워크 로 비밀 키 를 전송 하지 않 아 도 됩 니 다.따라서 RSA 알고리즘 키 관 리 는 AES 알고리즘 보다 현저히 우수 합 니 다.위 에서 알 수 있 듯 이 RSA 의 복호화 속도 가 느 려 대량의 데이터 파일 암호 화 에 적합 하지 않 기 때문에 인터넷 에서 비밀 정 보 를 완전히 공개 암호 체제 로 전송 하 는 것 은 필요 하지 않 고 현실 적 이지 않다.AES 암호 화 속 도 는 매우 빠 르 지만 네트워크 전송 과정 에서 AES 키 를 어떻게 안전하게 관리 하 는 지 는 AES 암호 화 안전 을 확보 하 는 중요 한 부분 이다.이렇게 기밀 정 보 를 전송 하 는 쌍방 이 AES 대칭 암호 시스템 을 사용 하여 전송 데 이 터 를 암호 화하 고 RSA 비대 칭 암호 시스템 으로 AES 키 를 전송 하면 AES 와 RSA 의 장점 을 종합 적 으로 발휘 하 는 동시에 그들의 단점 을 피하 여 새로운 데이터 암호 화 방안 을 실현 할 수 있다.복호화 실현 절 차 는 아래 그림 과 같다.
구체 적 인 과정 은 수신 자가 먼저 RSA 키 쌍 을 만 들 고 수신 자가 인터넷 을 통 해 RSA 공개 키 를 발송 자 에 게 보 내 는 동시에 RSA 비밀 키 를 저장 하 는 것 이다.발송 자 는 AES 키 를 만 들 고 이 AES 키 로 전송 할 명문 데 이 터 를 암호 화 하 는 동시에 받 아들 인 RSA 공개 키 로 AES 키 를 암호 화하 고 마지막 으로 RSA 공개 키 로 암호 화 된 AES 키 를 비밀문서 와 함께 인터넷 을 통 해 수신 자 에 게 전송합니다.수신 자가 암호 화 된 AES 키 와 비밀 문 서 를 받 은 후 수신 자가 저장 한 RSA 비밀 키 를 먼저 호출 하고 이 비밀 키 로 암호 화 된 AES 키 를 복호화 하여 AES 키 를 얻 습 니 다.마지막 으로 이 AES 키 로 비밀 문 서 를 복호화 하여 명문 을 얻 습 니 다.
AES + RSA 는 최 적 실천 기본 요구 와 결합 하여 전송 데이터 의 안전성 을 확보 하고 데이터 의 완전 성 을 확보 하 며 클 라 이언 트 의 신분 기본 절 차 를 검증 할 수 있 습 니 다.
1.     (server)    (client)          
2. server client         
3. client  AES  (aesKey)
4. client     RSA  (privateKey)       (params)      
5.            ,     json  
6. client  aesKey json          (data)
7. client  sever RSA   aesKey    (encryptkey)
8.    data encryptkey           

                     

구체 적 으로 프로 세 스 를 최적화 할 수 있 습 니 다. 예 를 들 어 client 가 encryptkey 를 서버 측 에 전송 하 는 방식 은 HttpHeader 를 통 해 이 루어 질 수 있 습 니 다.

좋은 웹페이지 즐겨찾기