0
사용자가이 플랫폼에서 사용자 이름과 암호로 로그인 할 수있는 웹 응용 프로그램을 만들 것이라고 가정합니다 (사용자 이름과 암호를 보려고 MySQL 데이터베이스를 만들고 싶습니다).웹 응용 프로그램과 매력적인 암호
사용자가 로그온 한 후 사용자는 컴퓨터에서 파일을 선택하고 서버에서이 파일을 보냅니다.
이 파일을 사용자 그룹에 암호화합니다 (Charm Crypto와 HybridABE 암호화를 사용하고 싶습니다).
이제 건축/프로그래밍 관련 질문이 있습니다.
우리는이 프로그램이 있다고 가정하자 :
from charm.toolbox.pairinggroup import PairingGroup,GT
from charm.adapters.abenc_adapt_hybrid import HybridABEnc as HybridABEnc
from charm.schemes.abenc.abenc_waters09 import CPabe09
group = PairingGroup('SS512')
cpabe = CPabe09(group)
hyb_abe = HybridABEnc(cpabe, group)
policy = '((ONE or THREE) and (TWO or FOUR))'
msg = "hello world this is an important message."
(master_secret_key, master_public_key) = hyb_abe.setup()
attr_list = ['THREE', 'ONE', 'TWO']
secret_key = hyb_abe.keygen(master_public_key, master_secret_key, attr_list)
cipher_text = hyb_abe.encrypt(master_public_key, msg, policy)
decrypted_msg = hyb_abe.decrypt(master_public_key, secret_key, cipher_text)
내가 저장할 수를 마스터 개인 키 및 마스터 공개 키? 파일과 같은 디렉토리 서버에서? 데이터베이스에?
어디에서 사용자의 비밀 키를 저장할 수 있습니까?
간단하고 명확합니다. 한 가지 : 사용자 비밀 키를 사용자에게 부여해야한다고 말하면 어떻게 이러한 키를 보낼 수 있습니까? 그리고 어떻게이 키를 저장할 수 있습니까? 포인트 2의 예를 들어 주시겠습니까? – JLo
키는 일반적으로 여러 값 (예 : 쌍 그룹의 요소)으로 구성됩니다. 이들은 별도로 바이트로 직렬화 할 수 있으며 Charm은 필요한 기능을 제공합니다 (http://stackoverflow.com/a/34447301/1816580). 이제는 여러 직렬화 된 값을 (파일) 형식으로 저장하는 것이 중요합니다. 이것을 할 수있는 수많은 방법이 있습니다. 직렬화 된 값을 네이티브 파이썬 유형 ([pickle it]) (https://docs.python.org/2/library/pickle.html) 만 사용하는 다른 객체에 넣을 수 있습니다. 자신 만의 파일 형식을 쓸 수 있습니다. Protobuf와 같은 것을 사용할 수 있습니다. –
사용자가 마스터 공개 키로 데이터 클라이언트 측을 암호화 할 수있는 방법을 설명해 주시겠습니까? 나는 웹 앱을 개발 중이며, 어떻게 Charm Crypto (서버 측)에서 릴리스 된 키로 데이터를 암호화 할 수 있는지 모르겠습니다. JavaScript를 사용할 수 있습니까? (클라이언트 측 파이썬은 웹 앱이기 때문에 사용할 수 없다). 투어 지원에 감사드립니다. – JLo