Android 보안 암호 화:비대 칭 암호 화 설명

Android 보안 암호 화 테마 글 인덱스
  • Android 보안 암호 화:대칭 암호 화
  • Android 보안 암호 화:비대 칭 암호 화
  • Android 보안 암호 화:메시지 요약 메시지 다이제스트
  • Android 보안 암호 화:디지털 서명 과 디지털 인증서
  • Android 보안 암호 화:Https 프로 그래 밍
  • 이상 에서 모든 내용 을 배 웠 고 대칭 암호 화,비대 칭 암호 화,메시지 요약,디지털 서명 등 지식 은 디지털 인증서 의 작업 원 리 를 이해 하기 위해 예비 지식 으로 삼 았 다.디지털 인증 서 는 암호학 에서 의 궁극 적 인 무기 로 인류 수천 년 의 역 사 를 총 결 한 지혜 의 결정 이다.디지털 인증서 의 작업 원 리 를 이해 한 후에 야 Https 협의의 안전 통신 체 제 를 이해 할 수 있다.결국 SSL 개발 과정 에서 뜻 대로 될 수 있 었 다.
    또한 대칭 암호 화 와 메시지 요약 이라는 두 가지 지식 포 인 트 는 단독으로 사용 할 수 있다.
    지식 점 직렬 연결:
    디지털 인증 서 는 위 에서 배 운 모든 지식 을 사 용 했 습 니 다.
  • 대칭 암호 화 와 비대 칭 암호 화 를 결합 하여 비밀 키 교환 을 실현 한 후에 통신 쌍방 은 이 비밀 키 를 사용 하여 대칭 암호 화 통신 을 한다.
  • 메시지 요약 과 비대 칭 암호 화 는 디지털 서명 을 실 현 했 고 루트 인증서 기 구 는 대상 인증서 에 서명 을 했 으 며 검증 할 때 루트 인증 서 는 공개 키 로 이 를 검증 했다.검사 에 성공 하면 이 인증 서 는 신뢰 를 받 는 것 입 니 다.
  • Keytool 도 구 는 인증 서 를 만 들 수 있 으 며,이후 루트 인증서 기관 에 인증 후 직접 서명 인증 서 를 사용 하고 인증서 의 RFC 형식 정보 등 을 출력 할 수 있다.
  • 디지털 서명 기술 은 신분 인증 과 데이터 완전 성 보증 을 실현 했다.
  • 암호 화 기술 은 데이터 의 기밀 성 을 확보 하고 메시지 요약 알고리즘 은 데이터 의 완전 성 을 확보 하 며 대칭 암호 화의 효율 은 데이터 처리 의 신뢰성 을 확보 하고 디지털 서명 기술 은 작업 의 부인 할 수 없 는 성 을 확보한다.
  • 상기 내용 의 학습 을 통 해 우 리 는 다음 과 같은 지식 을 습득 할 수 있어 야 한다.
  • 기초 지식:bit 비트,바이트,문자,문자 인 코딩,진 변환,io
  • 실제 개발 에서 대칭 암호 화 를 어떻게 사용 하 는 지 알 고 문 제 를 해결 하 는 방법
  • 대칭 암호 화,비대 칭 암호 화,메시지 요약,디지털 서명,디지털 인증서 가 어떤 문 제 를 해결 하기 위해 발생 하 는 지 알 고 있 는
  • SSL 통신 프로 세 스 파악
  • 실제 개발 에서 Https 인 터 페 이 스 를 어떻게 요청 합 니까?
  • 1.소개
    대칭 암호 화 알고리즘 과 달리 비대 칭 암호 화 알고리즘 은 두 개의 키 가 필요 합 니 다.공개 키(publickey)와 비밀 키(privatekey)입 니 다.공개 키 와 비밀 키 는 한 쌍 입 니 다.만약 에 공개 키 로 데 이 터 를 암호 화하 면 해당 하 는 비밀 키 로 만 복호화 할 수 있 습 니 다.비밀 키 로 데 이 터 를 암호 화하 면 해당 하 는 공개 키 로 만 복호화 할 수 있 습 니 다.암호 화 와 복호화 가 서로 다른 키 를 사용 하기 때문에 이 알고리즘 을 비대 칭 암호 화 알고리즘 이 라 고 합 니 다.
    암호 화 와 복호화 는 서로 다른 열쇠 로 간단하게 이해 할 수 있다.

    2.흔 한 알고리즘
    RSA,Elgamal,가방 알고리즘,Rabin,D-H,ECC(타원 곡선 암호 화 알고리즘)등 이 있 는데 그 중에서 알 리 페 이 는 RSA 알고리즘 을 사용 합 니 다.
    3.RSA 알고리즘 원리
    질 인수,오로라 함수,모 반 원소
    원 리 는 매우 복잡 하 므 로 내부 가 분해 질량 인수 와 모델 링 작업 에 기초 하고 있다 는 것 만 알 면 된다.
    4.사용 절차
    
    //1,  cipher   
    Cipher cipher = Cipher.getInstance("RSA");
    //2,        KeyPairGenerator        
    KeyPair keyPair = KeyPairGenerator.getInstance("RSA").generateKeyPair();
    //        ,      (        )
    PublicKey publicKey = keyPair.getPublic();
    PrivateKey privateKey = keyPair.getPrivate();
    //3,          
    cipher.init(Cipher.ENCRYPT_MODE, publicKey);
    //4,      
    byte[] result = cipher.doFinal(content.getBytes());
    //          
    cipher.init(Cipher.DECRYPT_MODE, privateKey);
    //      
    byte[] deResult = cipher.doFinal(result);
    
    5.조심 하 세 요
    
    //              117   
    private static final int ENCRYPT_BLOCK_MAX = 117;
    //              128   
    private static final int DECRYPT_BLOCK_MAX = 128;
    
    6.분할 작업
    
    /**
    *     
    *
    * @param content        
    * @param cipher    (  cipher    ,          )
    * @param blockSize         ,     
    * @return           
    * @throws Exception
    */
     public static byte[] doFinalWithBatch(byte[] content, Cipher cipher, int blockSize) throwseption {
     int offset = 0;//         
     int len = content.length;//     
     byte[] tmp;//        
     ByteArrayOutputStream baos = new ByteArrayOutputStream();
     //      
     while (len - offset > 0) {
     if (len - offset >= blockSize) {
     //           blockSize
     tmp = cipher.doFinal(content, offset, blockSize);
     }else {
      //        blockSize
      tmp = cipher.doFinal(content, offset, len - offset);
      }
     //              
     baos.write(tmp);
     offset = offset + blockSize;
     }
     baos.close();
     return baos.toByteArray();
     }
    
    7.비대 칭 암호 화 용도
    인증
    암호 화 된 정 보 를 A 의 공개 키 로 풀 수 있다 면 이 정 보 는 반드시 A 의 비밀 키 로 암호 화 되 어 있 고 이 사용자 가 A 라 는 것 을 확인 할 수 있 습 니 다.

    낯 선 사람 통신
    A 와 B 두 사람 은 서로 알 지 못 한다.A 는 자신의 공개 키 를 B 에 게 보 내 고 B 도 자신의 공개 키 를 A 에 게 보 내 면 쌍방 은 상대방 의 공개 키 암호 화 정 보 를 통 해 통신 할 수 있다.C.A,B 의 공개 키 를 얻 을 수 있 지만 그 는 밀 서 를 풀 수 없다.

    비밀 키 교환
    A.먼저 B 의 공개 키 를 얻 은 다음 에 A 는 무 작위 비밀 키 를 생 성 합 니 다.예 를 들 어 13245768,그 다음 에 A 는 B 의 공개 키 로 이 비밀 키 를 암호 화하 고 암호 화 된 비밀 키 를 얻 습 니 다.예 를 들 어 dxs\#fd@dk그 후에 이 비밀 문 서 를 B 에 게 보 내 고 B 는 자신의 비밀 키 로 복호화 하여 123456 을 얻 었 으 며 그 후에 쌍방 은 13245768 을 대칭 암호 화 된 비밀 키 로 통신 했다.C 암호 화 된 비밀 키 dxs 를 캡 처 하 더 라 도\#fd@dkA,B 두 사람 이 대칭 암호 화 를 통 해 통신 할 수 있 도록 스스로 도 풀 수 없다.

    8.총화
    비대 칭 암호 화 는 일반적으로 단독으로 사용 하지 않 는 다.그 는 대칭 암호 화 를 대체 하기 위해 나타 난 것 이 아니다.비대 칭 암호 화 속 도 는 대칭 암호 화 보다 훨씬 느 리 고 극단 적 인 상황 에서 1000 배 느 리 기 때문에 대량의 데 이 터 를 암호 화하 지 않 는 다.보통 우 리 는 대칭 암호 화 와 비대 칭 암호 화 두 가지 기술 을 결합 해서 사용한다.예 를 들 어 비대 칭 암호 화로 암호 화 된 비밀 키 를 암호 화한 다(즉,비밀 키 교환).

    좋은 웹페이지 즐겨찾기