/images/avatar.jpg

InfoSec-Lab2-apollo

Architecture Design 模拟实现128位信息的加密通信过程。 实验设计包含三方:A,B,C。A与B之间进行128位信息的加密交换。C负责为A和B各生成一对公私钥对,并分别把对应的私钥传给A和B,并把他们的公钥公开。实现本实验需求的架构设计如下图所示, 项目数据流图" 项目数据流图 Protocol Design 在该实验需求中,ServerA与ServerB之间使用Asymmetric Encryption Scheme进行加密通信,ServerC充当密钥签发中心,负责为S

·密码学原理课程 —— Private-Key Cryptography Ⅰ

Private-Key (Symmetric) Cryptography 章节思维导图" 章节思维导图 在本章节中,我们开始介绍两大密码学方向中的私钥/对称密码学(Private-Key/Symmetric Cryptography)方向。 (1)我们将会从弱化完善保密理论安全性开始,得到一个在实践生产中能够被接受并且符合实际人们对安全性需求的安全定义(computational secrecy)。 (2)接着我们从 computational secrecy 出发,给出一种最为基本的安全性定义—— EAV-Secur

·密码学原理课程 —— Perfectly Secret Encryption

Perfectly Secret Encryption ​ 本章节的思维导图如下所示, 章节思维导图" 章节思维导图 ​ 在本章节中我们主要介绍完善保密理论(Perfectly Secret Encryption)并且给出一些在往下章节中经常使用的检验密码方案安全性的实验交互模型。在描述这些模型时,我们需要使用到一些基础的概率论知识,并且还需要讨论一些用于该模型中随机算法。 Generating randomness ​ 在密码学中,我们经常需要产生并使用一些随机数,这些随机数的概率分布影响着密码的安全性,一些随

·密码学原理课程 —— Introduction

Course Overview Cryptology: Science concerned with data communication and storage in secure and usually secret form. Cryptography (密码学) Cryptanalysis (密码分析学) Our goals: the basic principles of modern cryptography mathematical assumptions (数学假设) security proof (安全证明) some standard (secure) constructions (一些现行标准密码方案的构造) Textbook: Introduction to MODERN CRYPTOGRAPHY 3rd edition Course Structure Introduction To Modern Cryptography" Introduction To Modern Cryptography Symmetric Asymmetric Encryption Private-Key Encryption Public-Key Encryption Authentication Message Authentication Codes Digital Signature 课程由古典密码学开始,讲述经典的古典密码(Caesar Cipher & Vigenère Cipher)以及从其中所抽象出来的编码思想(单表置换密码与多表置换密码)。这个时期的密码更像是个人的灵光乍现(heur

JustDecrypt

0x1 Description ​ 题目描述:It’s just a decryption system. And I heard that only the Bytedancers can get secret. ​ 题目附件:JustDecrypt.py 0x2 Analysis 题目一共分为两个阶段:1)暴力破解HASH;2)Chosen-ciphertext-attack in AES CFB MODE 第一阶段的主要逻辑定义在 proof_of_work() 方法中, 1 2 3 4 5 6 7 8 9 10 def proof_of_work(self): random.seed(urandom(32)) alphabet = string.ascii_letters + string.digits proof = ''.join(random.choices(alphabet, k=32)) hash_value = sha256(proof.encode()).hexdigest() self.send(f'sha256(XXXX+{proof[4:]}) == {hash_value}'.encode()) nonce = self.recv(prompt=b'Give me XXXX > ') if len(nonce) != 4 or sha256(nonce + proof[4:].encode()).hexdigest() != hash_value: return False return True alphabet的长度为62,而我们需要暴力破解原文的子

FileStore

0X1 Source Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 # Copyright 2021 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for