본문 바로가기

암호화4

[PYTHON] 전자서명 전자서명은 디지털 데이터의 무결성과 인증을 보장하기 위해 사용되는 기술입니다. 주로 비대칭 암호화 방식에 기반하여 작동하며, 두 개의 키(개인키와 공개키)를 사용하여 서명과 검증 과정을 수행합니다. 무결성: 전자서명을 통해 서명된 데이터가 전송 중에 변경되지 않았음을 보장합니다.인증: 서명자는 개인키를 사용하여 서명을 생성하므로, 서명된 데이터는 해당 서명자의 소유임을 증명합니다.부인 방지: 서명자는 서명된 메시지를 부인할 수 없으며, 이는 법적 효력을 가질 수 있습니다.타원 곡선 암호화(ECC)를 사용하여 전자서명을 구현 import osimport randomimport timeimport hashlib# 타원 곡선의 파라미터p = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.. 2024. 8. 11.
[PYTHON] 블록체인 개인키 공개키생성 블록체인(Blockchain)은 데이터를 안전하고 투명하게 기록하고 관리할 수 있는 분산형 데이터베이스 기술입니다. 블록체인은 여러 개의 블록으로 구성되어 있으며, 각 블록은 거래 정보와 이전 블록의 해시 값을 포함하고 있습니다. 이로 인해 블록체인은 데이터의 무결성과 변경 불가능성을 보장합니다. 블록체인의 주요 특징분산화: 블록체인은 중앙 기관 없이 여러 참여자(노드)에 의해 운영됩니다. 모든 참여자는 동일한 데이터를 공유하고, 이를 통해 데이터의 신뢰성을 높입니다.투명성: 모든 거래는 블록체인에 기록되며, 누구나 이를 확인할 수 있습니다. 거래 내역이 공개되기 때문에 부정행위를 방지할 수 있습니다.변경 불가능성: 한 번 기록된 블록은 변경할 수 없습니다. 새로운 블록이 생성될 때마다 이전 블록의 해시.. 2024. 8. 11.
[PYTHON] 비대칭 키 암호화 RSA(Rivest-Shamir-Adleman)는 비대칭 암호화 알고리즘으로, 공개키와 개인키를 사용하여 데이터를 안전하게 암호화하고 복호화하는 데 사용됩니다. RSA는 1977년에 MIT의 Ron Rivest, Adi Shamir, Leonard Adleman에 의해 개발되었습니다. RSA의 주요 특징비대칭 암호화: RSA는 두 개의 키를 사용합니다. 하나는 공개키(public key)로, 누구나 사용할 수 있으며 데이터를 암호화하는 데 사용됩니다. 다른 하나는 개인키(private key)로, 오직 소유자만 알고 있으며 암호화된 데이터를 복호화하는 데 사용됩니다.보안성: RSA의 보안성은 큰 소수(prime number)의 곱을 기반으로 합니다. 현재 알고리즘으로는 소수를 인수분해하는 것이 매우 어려.. 2024. 8. 11.
[PYTHON] 대칭 키 암호화 대칭 키 암호화는 암호화와 복호화에 동일한 키를 사용하는 방식입니다. 이 방식의 장점은 속도가 빠르다는 점이며, 단점은 키 관리가 어렵다는 것입니다. 여기서는 세 가지 방법을 사용하여 암호화와 복호화를 수행합니다. 단일 치환 암호화사전(E)과 사전(D)을 이용하여 입력받은 문장을 암호화하고 복호화하는 코드입니다. import random# 사전 E 생성key = [chr(i) for i in range(ord('a'), ord('z') + 1)]value = key.copy()random.shuffle(value)E = {k: v for k, v in zip(key, value)}D = {v: k for k, v in E.items()}def Encryption(text): table = text... 2024. 8. 11.