Android 보안 암호 화:비대 칭 암호 화 설명
5691 단어 Android보안 암호 화:비대 칭 암호 화
또한 대칭 암호 화 와 메시지 요약 이라는 두 가지 지식 포 인 트 는 단독으로 사용 할 수 있다.
지식 점 직렬 연결:
디지털 인증 서 는 위 에서 배 운 모든 지식 을 사 용 했 습 니 다.
대칭 암호 화 알고리즘 과 달리 비대 칭 암호 화 알고리즘 은 두 개의 키 가 필요 합 니 다.공개 키(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 배 느 리 기 때문에 대량의 데 이 터 를 암호 화하 지 않 는 다.보통 우 리 는 대칭 암호 화 와 비대 칭 암호 화 두 가지 기술 을 결합 해서 사용한다.예 를 들 어 비대 칭 암호 화로 암호 화 된 비밀 키 를 암호 화한 다(즉,비밀 키 교환).
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.