日本欧洲视频一区_国模极品一区二区三区_国产熟女一区二区三区五月婷_亚洲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)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風景名勝區
    昆明西山國家級風景名勝區
    昆明旅游索道攻略
    昆明旅游索道攻略
  • NBA直播 短信驗證碼平臺 幣安官網下載 歐冠直播 WPS下載

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

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

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

              1000部国产精品成人观看| 在线高清一区| 国产精品家庭影院| 国产精品视频一二| 国产精品亚洲精品| 国产在线一区二区三区四区| 狠狠综合久久| 亚洲激情在线视频| 夜夜嗨一区二区| 午夜精品一区二区三区四区| 久久精视频免费在线久久完整在线看| 久久久国产91| 欧美激情精品| 国产午夜精品一区理论片飘花 | 亚洲美女视频在线观看| 一区二区三区四区国产精品| 欧美一区二区三区久久精品| 农村妇女精品| 国产伦精品一区二区三区视频黑人| 国产综合视频| 一区二区精品| 久久一区二区三区超碰国产精品| 欧美精品黄色| 国际精品欧美精品| 亚洲免费高清| 久久精品一区二区| 欧美性久久久| 在线观看91精品国产入口| 亚洲一区二区精品| 欧美成人按摩| 国产亚洲美州欧州综合国| 亚洲精品一区二区三区四区高清| 欧美亚洲一级片| 欧美日韩亚洲一区在线观看| 国模 一区 二区 三区| 亚洲色图在线视频| 欧美激情一区在线| 激情综合色综合久久| 亚洲欧美日韩一区二区三区在线| 蜜桃久久av一区| 国产亚洲精品久| 亚洲欧美制服另类日韩| 欧美日本簧片| 亚洲日韩视频| 久久伊人亚洲| 好吊一区二区三区| 欧美在线免费观看视频| 欧美三级在线视频| 亚洲美女尤物影院| 奶水喷射视频一区| 亚洲国产高清视频| 狂野欧美激情性xxxx| 国产日韩欧美a| 亚洲欧美日韩在线不卡| 欧美婷婷在线| 亚洲午夜黄色| 国产精品裸体一区二区三区| 亚洲深夜福利网站| 国产精品国产一区二区| 亚洲午夜久久久久久尤物| 欧美日韩三级| 亚洲夜间福利| 欧美三级网址| 亚洲欧美综合v| 国产女人水真多18毛片18精品视频| 日韩午夜精品| 国产精品丝袜91| 亚洲一区网站| 国产日韩欧美夫妻视频在线观看| 午夜久久资源| 国产一区自拍视频| 久久综合精品一区| 亚洲人成7777| 欧美日韩黄色大片| 亚洲精品偷拍| 欧美视频中文在线看| 亚洲免费小视频| 国产欧美日韩亚洲一区二区三区| 久久精选视频| 亚洲国产日韩欧美在线动漫| 欧美激情亚洲国产| 亚洲无线观看| 韩国av一区二区| 欧美激情1区2区| 亚洲欧美清纯在线制服| 国产一区二区三区高清在线观看 | 欧美福利一区二区| 亚洲午夜激情网站| 国产主播一区| 欧美人与禽猛交乱配视频| 亚洲一区二区三区精品在线 | 国产日韩欧美a| 另类激情亚洲| 亚洲午夜免费福利视频| 含羞草久久爱69一区| 欧美日韩高清在线播放| 欧美一区二区三区四区在线| 亚洲国产经典视频| 国产毛片一区二区| 欧美精品videossex性护士| 亚洲欧美中文日韩v在线观看| 影视先锋久久| 国产精品久久午夜夜伦鲁鲁| 免费成人黄色| 欧美在线视频免费| 亚洲免费av网站| 国内精品久久久久影院薰衣草 | 欧美精品一区二区三区高清aⅴ| 亚洲一区二区三区高清不卡| 亚洲高清毛片| 国产曰批免费观看久久久| 欧美日韩综合在线免费观看| 另类天堂视频在线观看| 亚洲欧美国产制服动漫| 日韩特黄影片| 在线观看视频一区二区欧美日韩| 国产精品久久久爽爽爽麻豆色哟哟| 久久综合亚州| 久久久精品免费视频| 午夜久久福利| 亚洲自拍偷拍福利| 亚洲视屏在线播放| 一区二区三区视频在线观看| 91久久精品日日躁夜夜躁国产| 国产一区二区三区观看 | 欧美电影资源| 久久躁狠狠躁夜夜爽| 久久成人精品视频| 欧美在线综合视频| 欧美一区二区三区的| 篠田优中文在线播放第一区| 亚洲综合社区| 亚洲欧美在线一区二区| 欧美亚洲日本国产| 亚洲欧美综合国产精品一区| 亚洲女同精品视频| 亚洲欧美电影院| 亚洲砖区区免费| 午夜久久久久久| 久久av红桃一区二区小说| 欧美在线观看视频| 久久久精彩视频| 久久久天天操| 免费人成网站在线观看欧美高清| 久久国产综合精品| 美日韩精品免费| 美女久久一区| 欧美日韩八区| 国产精品成人va在线观看| 国产精品国产三级国产普通话三级 | 国产精品一区免费视频| 国产精品视频免费在线观看| 国产欧美激情| 国产在线高清精品| 亚洲黄色在线视频| 9色国产精品| 午夜亚洲伦理| 蜜臀久久99精品久久久久久9| 欧美超级免费视 在线| 欧美少妇一区二区| 国产午夜精品久久久久久久| 精品动漫3d一区二区三区免费版| 亚洲国产日韩欧美| 亚洲一区国产精品| 久久不射中文字幕| 免费成人高清| 国产精品久久久久av| 国产亚洲欧美一区在线观看 | 国产在线国偷精品产拍免费yy| 一区福利视频| 亚洲图片激情小说| 久久久青草青青国产亚洲免观| 欧美激情精品久久久久久久变态 | 亚洲精品影院| 久久超碰97中文字幕| 欧美精品日韩| 国产综合色在线| 亚洲男人的天堂在线观看| 免费中文字幕日韩欧美| 欧美亚洲第一区| 亚洲国产日韩欧美在线图片| 亚洲欧美中文另类| 欧美日韩91| 影音先锋在线一区| 亚洲综合色在线| 欧美日韩免费一区| 亚洲福利视频网| 欧美一区二区三区播放老司机| 美女网站久久| 国产精品v欧美精品v日韩精品| 狠狠色狠狠色综合日日五| 亚洲午夜视频在线观看| 免费看亚洲片| 激情久久中文字幕| 翔田千里一区二区| 国产精品捆绑调教| 国产精品99久久久久久人| 欧美裸体一区二区三区| 亚洲国产精品va| 免费观看久久久4p|