狠狠综合久久久久综合网址-a毛片网站-欧美啊v在线观看-中文字幕久久熟女人妻av免费-无码av一区二区三区不卡-亚洲综合av色婷婷五月蜜臀-夜夜操天天摸-a级在线免费观看-三上悠亚91-国产丰满乱子伦无码专区-视频一区中文字幕-黑人大战欲求不满人妻-精品亚洲国产成人蜜臀av-男人你懂得-97超碰人人爽-五月丁香六月综合缴情在线

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)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風景名勝區
    昆明西山國家級風景名勝區
    昆明旅游索道攻略
    昆明旅游索道攻略
  • NBA直播 短信驗證碼平臺 幣安官網下載 歐冠直播 WPS下載

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

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

    狠狠综合久久久久综合网址-a毛片网站-欧美啊v在线观看-中文字幕久久熟女人妻av免费-无码av一区二区三区不卡-亚洲综合av色婷婷五月蜜臀-夜夜操天天摸-a级在线免费观看-三上悠亚91-国产丰满乱子伦无码专区-视频一区中文字幕-黑人大战欲求不满人妻-精品亚洲国产成人蜜臀av-男人你懂得-97超碰人人爽-五月丁香六月综合缴情在线
  • <dl id="akume"></dl>
  • <noscript id="akume"><object id="akume"></object></noscript>
  • <nav id="akume"><dl id="akume"></dl></nav>
  • <rt id="akume"></rt>
    <dl id="akume"><acronym id="akume"></acronym></dl><dl id="akume"><xmp id="akume"></xmp></dl>
    a在线视频观看| 欧美黑人经典片免费观看| 日韩精品在线视频免费观看| 激情婷婷综合网| 国产亚洲天堂网| 欧美色图另类小说| 激情伊人五月天| 无码精品a∨在线观看中文| 成人一级生活片| 三上悠亚av一区二区三区| 天天综合网日韩| www.com毛片| 手机精品视频在线| 五月婷婷之综合激情| 成人毛片一区二区| 亚洲娇小娇小娇小| 黄色片视频在线免费观看| 无码人妻丰满熟妇区五十路百度| 妓院一钑片免看黄大片| 欧美一级视频在线| 日韩在线视频在线| 天天摸天天碰天天添| 男人搞女人网站| 五月天国产视频| 日韩精品一区在线视频| 成人性做爰aaa片免费看不忠| www.xxx亚洲| 欧美日韩亚洲国产成人| 国产精品久久久久9999爆乳| 韩国一区二区av| www.51色.com| 国产精品视频一区二区三区四区五区| 日韩手机在线观看视频| 亚洲免费黄色网| 分分操这里只有精品| 在线观看免费视频高清游戏推荐| 潘金莲一级淫片aaaaaa播放1| 国产 日韩 欧美在线| 9l视频白拍9色9l视频| 亚洲色成人www永久在线观看| 亚洲五月天综合| 日韩网站在线免费观看| 最新国产黄色网址| 国产男女无遮挡| 91视频成人免费| 亚洲欧美aaa| 成年人在线看片| 成人免费视频91| 一级全黄肉体裸体全过程| 黑森林福利视频导航| 久久免费一级片| 日本黄色福利视频| 好男人www社区| 日韩视频在线视频| 台湾无码一区二区| 午夜xxxxx| 91视频这里只有精品| 十八禁视频网站在线观看| 成人午夜免费在线视频| 国产a级片免费看| 高清一区二区视频| 国产精品wwwww| 成人观看免费完整观看| 日韩伦理在线免费观看| 欧美国产视频一区| 色哺乳xxxxhd奶水米仓惠香| 91精品视频国产| 午夜视频在线网站| 手机免费av片| 777视频在线| 午夜免费一级片| 91社在线播放| 成人国产在线看| 69sex久久精品国产麻豆| 加勒比成人在线| 国产视频九色蝌蚪| 一本久道综合色婷婷五月| 国产91在线视频观看| 国产日韩成人内射视频| 成年人在线看片| 久久国产激情视频| 五月天婷婷亚洲| 91精品国产吴梦梦| 无码 制服 丝袜 国产 另类| 日本精品久久久久久久久久| 91九色丨porny丨国产jk| 日韩精品综合在线| 999香蕉视频| 九九热精品国产| 日本精品久久久久久久久久| 欧美精品色婷婷五月综合| 青青青在线视频免费观看| 91热视频在线观看| 日韩a级黄色片| 国产女女做受ⅹxx高潮| 九九热99视频| 黄色成人在线看| 九九九九九国产| 97视频在线免费| 永久免费的av网站| www.中文字幕在线| 日本美女视频一区| 黄色av网址在线播放| 日本高清久久久| 国产二区视频在线| 中文字幕成人在线视频| 欧美二区在线视频| 天天操精品视频| 日本va中文字幕| 久久久天堂国产精品| 国产精品人人妻人人爽人人牛| 深夜做爰性大片蜜桃| www.日本xxxx| 玩弄中年熟妇正在播放| 色呦呦网站入口| 天天操天天爱天天爽| 国产一级做a爰片久久毛片男| 日本人视频jizz页码69| a级黄色一级片| 97超碰在线人人| 喜爱夜蒲2在线| 奇米777在线视频| 色18美女社区| 国产视频手机在线播放| 免费高清在线观看免费| 日韩小视频网站| 91免费国产精品| 国产日产欧美一区二区| 久久久九九九热| 色乱码一区二区三区熟女| 国内av免费观看| 国产精品探花在线播放| 中文字幕亚洲影院| 亚洲综合伊人久久| 国产大尺度在线观看| 国产又大又长又粗又黄| 一本—道久久a久久精品蜜桃| 狠狠操狠狠干视频| 亚洲女人在线观看| 欧美一级免费在线| ijzzijzzij亚洲大全| 真人做人试看60分钟免费| 日韩国产精品毛片| 中文字幕日韩精品无码内射| 成年人视频网站免费| 91动漫在线看| av天堂永久资源网| 久久久久久三级| 国产精品久久久久久久av福利| www在线观看免费| 男人靠女人免费视频网站| 欧美日韩一区二区在线免费观看| 日本成人黄色网| 在线成人免费av| 国产小视频免费| 日韩精品无码一区二区三区免费 | 全黄性性激高免费视频| 久久成人福利视频| 欧美精品第三页| 三级黄色片免费看| 精品久久久久久无码中文野结衣| 奇米精品一区二区三区| 日本美女高潮视频| 久久久99精品视频| 日韩免费毛片视频| 最新中文字幕久久| 麻豆av免费在线| 麻豆md0077饥渴少妇| 免费黄色福利视频| 今天免费高清在线观看国语| 无码人妻h动漫| 老司机午夜网站| 性欧美1819| 男女啪啪免费视频网站| 国产美女视频免费看| 国产美女三级视频| 人人爽人人爽av| 116极品美女午夜一级| 99精品视频网站| 日韩毛片在线免费看| 91社在线播放| 国产精欧美一区二区三区白种人| 免费在线观看视频a| 久久久久久久片| 欧美一级视频在线播放| 国内av免费观看| 在线视频观看一区二区| av网站在线不卡| 欧美视频第三页| 岳毛多又紧做起爽| 999在线观看视频| 国产精品入口芒果| av不卡在线免费观看| 岛国av在线免费| 校园春色 亚洲色图| 一区二区成人网| 波多野结衣家庭教师视频| 久久99中文字幕| 欧美久久久久久久久久久久久| 99er在线视频|