爱情鸟第一论坛com高清免费_91免费精品国自产拍在线可以看_亚洲一区精品中文字幕_男人操心女人的视频

COMP 3334代做、代寫Python語言編程

時間:2024-03-20  來源:  作者: 我要糾錯



COMP 3334 – Computer Systems Security (Semester 2, 2024)
Assignment
This is an individual assignment. You may use the course material and Internet resources to answer
the questions. However, you should not post the questions online and ask for help. Discussion
among your peers is encouraged; however, you must produce answers by yourself and in your own
words. Any suspicion of plagiarism will be thoroughly investigated. Copying answers from GenAI
tools into your assignment is a form of plagiarism. This assignment is due on Sunday, 17 March
2024, 23:59.
Late submissions will be subjected to a 15% penalty per day, starting at 00:01.
Total: 100 points. Course weight: 10%.
Submission requirements
Submit on Blackboard a single ZIP file containing:
1. A PDF file named as comp3334-studentid.pdf for your written answers. Change “studentid” with
your actual student ID. The file must also include your name and student ID on the first page.
2. The three Python files as requested in the exercises below: exercise{1,3,4}.py.
Double check your submission. Any incorrect submission format may result in a zero mark for this
assignment.
Exercise 1: Misusing AES [30 pts]
A website authenticates its users by asking for a login/password, and sends them a cookie C, valid
for one minute, to keep track of their authentication status. The cookie C is formed such as C =
Enc("user=username,tmstmp=timestamp"), with username = "anonymous" for unauthenticated users,
or the name of the user when authenticated; and timestamp is a Unix-formated timestamp1
representing
the time up to which the user is authenticated (current time plus one minute). Enc(·) designates the
AES256 encryption in OFB-mode using iv as a random IV and k as a random key; both k and iv are
unknown to us. The OFB mode of operation for encryption is described in Figure 1.
In this exercise, we consider cookies delivered on February 1st, 2024 at 00:00am UTC. At that time,
an unauthenticated user coming to the website will receive a cookie:
CU = AES256-OFBk,iv("user=anonymous,tmstmp=1706745660")
The value 1706745660 corresponds to 00:01am on February 1st. We denote by PU the plaintext version
of the cookie.
a) Give the plaintext cookie, denoted PA, that corresponds to the authenticated admin user if he
logged in at the same time. Compare the length of PA and PU . [3 pts]
b) Describe how to modify the cookie CU into CA = AES256-OFBk,iv(PA) without knowing k nor
iv. You may rethink about the value of PA so that PU and PA have the same length. Note that
the cookie may authenticate the user admin for as long as you want (but at least the original one
minute duration). [7 pts]
c) Implement in Python the attack that would turn CU into a valid CA for at least the original duration.
Prepare a single Python file named exercise1.py that contains a function modifycookie() that
takes as argument a base64-encoded cookie and returns the base64-encoded modified cookie. Your
attack should work for different timestamps. You will get full marks if, given an encrypted cookie
1https://www.epochconverter.com/
1
block cipher
encryption Key
Ciphertext
Initialization Vector (IV)
block cipher
encryption Key
Ciphertext
block cipher
encryption Key
Ciphertext
Plaintext Plaintext Plaintext
Figure 1: Output Feedback (OFB) mode of operation (during encryption)
issued at any later date than February 1st this year, you are able to turn this cookie into a valid
admin cookie for at least the original duration. Make sure your code uses meaningful variable
names, consistent indenting scheme, and comments. [20 pts]
Exercise 2: Lan Manager hash [20 pts]
Back in the days, up to Windows XP, Windows account passwords were hashed using Microsoft’s LAN
Manager (LM) hash function, which works as follows:
Step 1 The password is converted into upper case, null-padded to 14 characters (or truncated to
14 characters), and split into two 7-character halves.
Step 2 Each half is separately converted into a DES key. This key is used to encrypt the ASCII
string “KGS!@#$%”, producing an 8-byte value.
Step 3 The two 8-byte values are concatenated, resulting in a 16-byte hash.
1. Suppose the attacker obtains a file with N hashed passwords. How much work would he need to do,
at most, to crack these passwords by brute-force search? Show your calculations. Express the result
in scientific notation (m × 10n, m ∈ R < 10, n ∈ N), and round it to two decimals. Assume that
users could type any of the 95 printable characters found on a US keyboard i.e., letters, numbers,
symbols, and punctuation marks, which are represented by codes 32 to 126 in the ASCII table.
Passwords could be any length. [15 pts]
2. Knowing that a single modern NVIDIA GeForce RTX 4090 GPU can perform 151.1 GH/s for LM,2
how long would it take an attacker with one such GPU to crack these N hashes? Assume that the
overhead of matching a 64-bit string in a list of 2N 64-bit strings is negligible. [5 pts]
Exercise 3: PKCS#7 padding [20 pts]
The PKCS#7 padding scheme is commonly used to pad irregularly-sized plaintext messages to a specific
block length before encryption, and is described in RFC5652. The algorithm simply consists in appending
the required number of bytes up to nearest multiple of the block length. The value of each appended byte
is equal to the number of bytes added. The maximum length of the pad is therefore 255. If the plaintext
size is already a multiple of the block length, padding is still required. In this case, an entire block
of padding bytes will be used. To remove the padding after decryption, the last byte of the decrypted
ciphertext is read, which indicates how many bytes (of the same value) should be stripped from the end.
For this exercise, do NOT use any library/package in your code.
1. Write a function pkcs(plaintext, length) in Python that takes a plaintext (plaintext) and a
desired block length (length) as input and applies the PKCS#7 padding scheme. The function
should return the padded input. An exception should be thrown if the block length is greater than
the maximum pad length, using: raise Exception("Invalid block size")
For instance, for the message "YELLOW SUBMARINE" and a block size of 20, the output should be
"YELLOW SUBMARINEx04x04x04x04". [5 pts]
2See Hashcat benchmark here: https://gist.github.com/Chick3nman/32e662a5bb63bc4f51b847bb422222fd
2
2. Write a function validate pkcs(plaintext, length) in Python that verifies the validity of the
padding, and returns an unpadded string. The function should throw exceptions using raise
Exception("Invalid padding") when: 1) the length of the plaintext indicates that no padding
has been used; 2) the value for the pad length is incompatible with the block length; 3) the value
of the padding bytes is incorrect. [15 pts]
Prepare a single Python file named exercise3.py that contains both functions.
Make sure to use the exact exception messages given above throughout this exercise;
otherwise, your function will not be evaluated properly for assessment.
Exercise 4: Near collisions [30 pts]
Referring to the exercise given in Lecture 4 (slide 23), find a “near collision” on SHA-256 by hashing
values that must contain your student ID. A near collision is defined as a pair of inputs which hash to
values that share the same first n bits. We define n = 34 for this exercise.
One method of finding such collisions is to hash an increasing counter (concatenated to your student
ID) and keep n-bit prefixes in a dictionary. If you encounter a prefix you have already seen, you found a
near collision.
1. Provide a function find near collisions(studentid) that takes as input your student ID as a
string in the format 12345678 (without letter) and outputs a tuple of binary strings (val1, val2) that
are near collisions, and studentid is a substring of each value. Your program should terminate
within one minute on a reasonably modern laptop and with a correct output. [20 pts]
2. Provide a function get values() that returns a tuple of binary strings (val1, val2) that you have
previously computed and that satisfy the above criteria. Simply hardcode those values and return
them. [10 pts]
Example of correct outputs for student ID=12345678: (b‘12345678288576’, b‘12345678335737’).
Prepare a single Python file named exercise4.py that contains both functions.
Questions?
If you need a clarification about an exercise requirements, you can contact the following TA:
Bowen CUI: bowen.cui@connect.polyu.hk
TAs will not tell you whether your approach is correct or not, whether you got the right answer, etc.
請加QQ:99515681  郵箱:99515681@qq.com   WX:codehelp 

標簽:

掃一掃在手機打開當前頁
  • 上一篇:代做AST20201、代寫Java編程設計
  • 下一篇:代寫CPS 1032、Java/Python程序代做
  • 無相關信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風景名勝區
    昆明西山國家級風景名勝區
    昆明旅游索道攻略
    昆明旅游索道攻略
  • 短信驗證碼平臺 理財 WPS下載

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    爱情鸟第一论坛com高清免费_91免费精品国自产拍在线可以看_亚洲一区精品中文字幕_男人操心女人的视频
    <strike id="bfrlb"></strike><form id="bfrlb"><form id="bfrlb"><nobr id="bfrlb"></nobr></form></form>

        <sub id="bfrlb"><listing id="bfrlb"><menuitem id="bfrlb"></menuitem></listing></sub>

          <form id="bfrlb"></form>

            <form id="bfrlb"></form>

              <address id="bfrlb"></address>

              <address id="bfrlb"></address>
              亚洲第一福利在线观看| 国产日韩欧美综合精品| 美女脱光内衣内裤视频久久影院| 羞羞答答国产精品www一本| 亚洲天堂偷拍| 欧美三级视频在线播放| 欧美日韩中文| 久久精品成人一区二区三区| 欧美日韩色一区| 麻豆免费精品视频| 欧美激情中文不卡| 激情国产一区| 国产一区二区精品久久99| 欧美日韩免费一区二区三区| 国产精品一区二区男女羞羞无遮挡| 午夜国产精品视频免费体验区| 激情综合久久| 国产亚洲精品成人av久久ww| 久久亚洲影院| 一区二区不卡在线视频 午夜欧美不卡在| 国产综合久久久久影院| 国产日韩欧美自拍| 欧美顶级大胆免费视频| 欧美伊人精品成人久久综合97| 久久综合色一综合色88| 亚洲午夜一级| 国产日韩精品一区二区三区在线| 永久91嫩草亚洲精品人人| 久久久久国产一区二区三区四区| 久久亚洲精品一区| 亚洲校园激情| 久久九九99视频| 欧美精品在线一区二区三区| 国产日韩欧美在线视频观看| 欧美精品粉嫩高潮一区二区| 欧美肉体xxxx裸体137大胆| 欧美亚洲综合久久| 国产亚洲欧美一区二区三区| 欧美69wwwcom| 伊人久久婷婷| 国产精品女主播一区二区三区| 激情懂色av一区av二区av| 亚洲美女免费精品视频在线观看| 欧美日韩亚洲不卡| 亚洲五月婷婷| 午夜精品久久久久久久白皮肤| 99精品国产99久久久久久福利| 欧美一级视频| 午夜亚洲福利在线老司机| 免费久久99精品国产自在现线| 欧美日韩国产成人在线免费| 久久精品国产欧美亚洲人人爽| 亚洲乱码久久| 国产精品呻吟| 欧美日韩不卡合集视频| 亚洲国产成人91精品| 国产九九精品视频| 欧美精品免费在线观看| 欧美日韩视频在线观看一区二区三区| 欧美日韩无遮挡| 一区二区电影免费观看| 国产精品日韩欧美一区二区| 一区二区欧美在线| 欧美精品一二三| 欧美三日本三级少妇三2023| 在线日韩欧美| 国产在线精品自拍| 国产精品麻豆欧美日韩ww| 国产精品亚洲综合一区在线观看| 欧美午夜精品久久久久久超碰| 亚洲婷婷综合久久一本伊一区| 亚洲人成艺术| 亚洲欧美国产不卡| 亚洲国产成人精品视频| 激情亚洲成人| 激情久久久久久久久久久久久久久久| 亚洲一区在线免费观看| 国产精品欧美一区二区三区奶水| 国内揄拍国内精品久久| 国产久一道中文一区| 国内成+人亚洲+欧美+综合在线| 亚洲免费在线精品一区| 国产亚洲成av人在线观看导航| 一本色道久久99精品综合| 久久经典综合| 久久免费午夜影院| 亚洲影院在线观看| 久久精品中文字幕免费mv| 欧美精品日韩一本| 亚洲高清在线观看一区| 亚洲字幕一区二区| 午夜精品99久久免费| 亚洲国产精品电影| 亚洲国产一区在线| 中文网丁香综合网| 欧美在线二区| 亚洲一区二区三区在线视频| 亚洲一区免费视频| 亚洲精品视频免费观看| 欧美有码在线观看视频| 宅男精品导航| 亚洲人成亚洲人成在线观看| 欧美色图麻豆| 欧美一区二区福利在线| 亚洲字幕在线观看| 国产午夜精品理论片a级大结局| 亚洲国产欧美一区二区三区丁香婷| 麻豆精品视频在线观看视频| 国产欧美日韩亚州综合| 在线精品亚洲一区二区| 亚洲激情视频在线播放| 亚洲小视频在线观看| 亚洲无玛一区| 欧美亚洲综合在线| 国产一区二区视频在线观看| 国产一区二区三区久久悠悠色av| 亚洲视频免费观看| 久久久久在线观看| 欧美激情视频在线播放| 玖玖视频精品| 国产精品久久久一区二区三区| 久久久国产一区二区| 国产精品毛片高清在线完整版| 亚洲成人资源| 久久亚洲国产精品一区二区| 免费成人av在线看| 又紧又大又爽精品一区二区| 久久久蜜臀国产一区二区| 国产精品久久久久久久免费软件| 亚洲精品婷婷| 亚洲一区影音先锋| 亚洲一区二区三区精品在线| 亚洲成人在线网| 国产精品影音先锋| 久久久久久高潮国产精品视| 亚洲国产精品黑人久久久| 亚洲图片你懂的| 欧美国产日韩一二三区| 米奇777在线欧美播放| 在线免费不卡视频| 久久精品99国产精品| 久久精品一区二区三区中文字幕| 亚洲精品一区久久久久久| 午夜性色一区二区三区免费视频| 快射av在线播放一区| 国产精品视频导航| 欧美激情按摩| 日韩午夜在线电影| 夜夜嗨一区二区三区| 欧美91大片| 欧美 日韩 国产在线| 精品av久久707| 久久天堂av综合合色| 欧美xxx在线观看| 亚洲一区日韩| 久热成人在线视频| 国产精品美女久久久浪潮软件| 亚洲欧美日韩天堂一区二区| 免费永久网站黄欧美| 在线精品视频一区二区| 国产精品日韩一区二区| 在线播放日韩专区| 久久免费视频观看| 欧美日本精品| 久久人人97超碰国产公开结果| 久久久久综合一区二区三区| 久久婷婷麻豆| 国产精品日韩一区二区| 国内精品久久久久伊人av| 1000部精品久久久久久久久| 国产欧美精品一区二区色综合| 国产精品国产| 亚洲第一在线综合在线| 在线免费精品视频| 久久五月天婷婷| 在线日韩av永久免费观看| 中文精品99久久国产香蕉| 久久久久五月天| 亚洲国产精品久久久久婷婷老年| 国产精品青草综合久久久久99| 亚洲日韩欧美视频| 久久久91精品国产一区二区精品| 欧美人与性动交cc0o| 国产欧美精品| 亚洲人成网站影音先锋播放| 久久精品日韩欧美| 国产婷婷色一区二区三区四区| 亚洲综合导航| 亚洲一区二区在线视频| 日韩视频在线一区二区| 国产美女诱惑一区二区| 国产精品久久久久久久app| 亚洲国产日韩欧美一区二区三区| 欧美成人69| 欧美一二三区精品| 亚洲美洲欧洲综合国产一区| 欧美在线www| 欧美日韩一区二区免费在线观看| aⅴ色国产欧美| 亚洲人成人一区二区三区|