日本欧洲视频一区_国模极品一区二区三区_国产熟女一区二区三区五月婷_亚洲AV成人精品日韩一区18p

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

    日本欧洲视频一区_国模极品一区二区三区_国产熟女一区二区三区五月婷_亚洲AV成人精品日韩一区18p

              9000px;">

                        国产精品每日更新| 91麻豆精品91久久久久同性| 蜜桃av一区二区在线观看| 亚洲欧美一区二区在线观看| 久久久久88色偷偷免费| 日韩欧美资源站| 这里只有精品99re| 欧美喷水一区二区| 欧美伊人精品成人久久综合97| 成人av网址在线| 粉嫩久久99精品久久久久久夜| 国产精品一区二区在线观看网站| 日韩av不卡一区二区| 亚洲一区二区三区四区在线观看| 亚洲天堂中文字幕| 最近日韩中文字幕| 亚洲欧美电影院| 性做久久久久久免费观看欧美| 一二三四社区欧美黄| 亚洲精品综合在线| 五月天中文字幕一区二区| 亚洲高清免费视频| 日本人妖一区二区| 韩国v欧美v亚洲v日本v| 国产成人自拍高清视频在线免费播放| 国产一区免费电影| www.欧美.com| 欧美日韩一区不卡| 欧美成人猛片aaaaaaa| 久久久久久久久伊人| 亚洲丝袜精品丝袜在线| 香蕉久久夜色精品国产使用方法| 蜜乳av一区二区| 成人晚上爱看视频| 欧美日本一道本在线视频| 欧美一区二区黄| 国产欧美一区二区精品忘忧草| 亚洲三级在线免费观看| 日韩精品乱码av一区二区| 国产福利91精品一区二区三区| av色综合久久天堂av综合| 欧美疯狂做受xxxx富婆| 久久久不卡影院| 香蕉av福利精品导航 | 99久久久久久| 欧美日本乱大交xxxxx| 国产欧美日韩一区二区三区在线观看| 中文字幕色av一区二区三区| 日本中文字幕不卡| 99re热这里只有精品视频| 日韩欧美的一区| 亚洲摸摸操操av| 国产成人在线视频播放| 欧美日韩日本视频| 国产精品视频一区二区三区不卡| 日韩主播视频在线| 99久久精品一区二区| 欧美成人伊人久久综合网| 一区二区激情视频| 成人免费va视频| 久久影院午夜片一区| 青青草91视频| 成人动漫一区二区三区| 精品国产一区二区三区四区四| 亚洲精品久久久久久国产精华液| 国产成人无遮挡在线视频| 日韩丝袜情趣美女图片| 亚洲与欧洲av电影| 成人福利视频在线看| 欧美videossexotv100| 日韩和欧美的一区| 91免费视频大全| 国产精品视频一二三区| 国产白丝网站精品污在线入口| 欧美精品亚洲一区二区在线播放| 亚洲日本va在线观看| 国产xxx精品视频大全| 国产欧美精品在线观看| 国产一区二区三区香蕉| 精品久久一二三区| 精品午夜一区二区三区在线观看| 日韩一区二区视频在线观看| 日韩黄色免费电影| 日韩视频免费直播| 美女在线观看视频一区二区| 欧美一区二区女人| 蜜桃久久av一区| 日韩欧美一区二区三区在线| 麻豆精品视频在线| 久久久久久久网| 成人中文字幕合集| 亚洲色图欧美在线| 欧美日韩成人综合| 精品亚洲porn| 日韩精品欧美精品| 污片在线观看一区二区| 在线欧美小视频| 在线观看欧美黄色| 亚洲精品亚洲人成人网| 岛国av在线一区| 亚洲一区在线电影| 日韩免费高清av| 高清不卡一区二区在线| 亚洲视频一区二区在线观看| 精品视频在线看| 激情六月婷婷久久| 国产精品乱码一区二三区小蝌蚪| 99天天综合性| 欧美bbbbb| 国产精品天干天干在观线| 色嗨嗨av一区二区三区| 男女男精品视频网| 国产精品萝li| 欧美美女一区二区三区| 国产高清无密码一区二区三区| 亚洲欧美电影院| 欧美精品一区二区三区很污很色的 | 午夜精品视频在线观看| 26uuu色噜噜精品一区二区| 972aa.com艺术欧美| 亚洲一区二区精品3399| 亚洲精品在线一区二区| 色婷婷久久一区二区三区麻豆| 裸体健美xxxx欧美裸体表演| 中文字幕制服丝袜成人av| 欧美嫩在线观看| 99精品久久只有精品| 精品一区二区三区蜜桃| 亚洲精选免费视频| 国产视频一区在线观看| 欧美久久久久免费| 99久久精品免费观看| 国产精品18久久久久久久久久久久| 亚洲自拍偷拍九九九| 国产精品成人一区二区艾草| 欧美成人三级在线| 91精品国产综合久久久蜜臀粉嫩| 色久综合一二码| av在线不卡网| 国产精品综合av一区二区国产馆| 亚洲高清中文字幕| 亚洲一区二区三区在线播放| 亚洲人妖av一区二区| 国产精品女主播av| 久久精品一区二区三区四区| 日韩一区二区视频| 欧美一区二区网站| 欧美巨大另类极品videosbest| 在线免费亚洲电影| 91在线看国产| av在线综合网| av在线综合网| 91同城在线观看| 99re这里都是精品| 91视频一区二区| 91论坛在线播放| 色婷婷综合五月| 色欧美88888久久久久久影院| 风流少妇一区二区| 国产精品123| 粉嫩aⅴ一区二区三区四区| 国产一区二区日韩精品| 国产馆精品极品| 成人不卡免费av| 99久久综合狠狠综合久久| 成人在线一区二区三区| 成人高清视频免费观看| 一本到不卡免费一区二区| 日本大香伊一区二区三区| 欧美在线视频不卡| 欧美日韩亚洲综合在线 | 成人久久视频在线观看| 91浏览器入口在线观看| 在线观看一区二区视频| 在线成人免费观看| 精品国产a毛片| 国产日产精品1区| 亚洲女同ⅹxx女同tv| 日韩在线播放一区二区| 美女国产一区二区三区| 国产成人自拍高清视频在线免费播放| av资源网一区| 3751色影院一区二区三区| 久久久久久久久97黄色工厂| 综合中文字幕亚洲| 美女看a上一区| 91麻豆精品在线观看| 欧美电影精品一区二区| 国产精品入口麻豆九色| 亚洲不卡一区二区三区| 国产一二精品视频| 在线观看免费一区| 国产亚洲精品aa午夜观看| 一区二区三区四区高清精品免费观看 | 欧美精品vⅰdeose4hd| 国产亚洲人成网站| 午夜精品福利一区二区蜜股av| 国产精品一区二区久久精品爱涩 | 久久久无码精品亚洲日韩按摩| 亚洲综合一区二区三区|