程序代写代做代考 Hive database dns scheme cache algorithm IOS CS 458/658

CS 458/658
UNIVERSITY OF WATERLOO Cheriton School of Computer Science
Computer Security and Privacy Fall 2016 Sergey Gorbunov and Urs Hengartner
ASSIGNMENT 3
Assignment due date: Friday, December 2nd, 2016 3:00 pm
Total Marks: 58
Written Response Questions TA: Peiyuan Liu (Office hours: Tuesday 3:30 pm-4:30 pm in DC 3332) Programming Questions TA: Navid Nasr Esfahani (Office hours: Friday 9:30 am-10:30 am in DC 3332)
Please use Piazza for all communication. Ask a private question if necessary. The TAs’ office hours are also posted to Piazza for reference. You are expected to follow the expected Academic Integrity requirements for Assignments; you can find them here: https://uwaterloo.ca/ library/get-assignment-and-research-help/academic-integrity/academic- integrity-tutorial Strict penalties will be enforced on students for any Academic Integrity violations.
Written Response Questions [31 marks]
Note: For written questions, please be sure to use complete, grammatically correct sentences where appropriate. You will be marked on the presentation and clarity of your answers as well as the content.
1. [5 marks total] Variants of RSA
In RSA, the public key is a pair of integers (n, e), where n = pq for large primes p and q. The private key is the triple (p, q, d) where de ≡ 1 mod (p − 1)(q − 1). The encryption ofamessagemtoyieldtheciphertextcisc=me modnandthedecryptionism≡cd mod n.
A key part of making RSA secure is to choose appropriate primes numbers. It is often stated that text-book RSA is weak because there are no restrictions on how to choose these primes. In this problem, we will investigate a variation of RSA that puts restrictions on the primes p and q.
Let us assume the genius security expert, Ensei Tankado, thinks that the following way of generating prime would be a good idea: choose the numbers g, b, and a such that p = 2ga+1 and q = 2gb + 1 are prime. Ensei first puts an implicit restriction that the greatest common
1

divisor of a and b is 1 (greatest common divisor of two integers is the largest integer that divides both the numbers).
He also adds the restriction that the term 2gab + a + b should be prime (in retrospect, this decision proves important for the security of the encryption scheme). Much like in text-book RSA, he then sets n = pq. During a round of beer, he boasts to his arch enemy Commander Trevor Strathmore that his scheme is secure (that it is impossible to factor n into primes p and q in polynomial time).
Mr. Strathmore never took this (or any security) course and blindly believes that Ensei has devised an “unbreakable” encryption scheme. To impress another security expert, Susan Fletcher, he gets involved in a bet with her that this scheme is unbreakable, even if given the values of a and b. Susan is intelligent, so after seeing the encryption scheme closely, she asks Trevor to give her any two values of a and b that fit the scheme. Blinded by incomplete knowledge, the commander gives Susan the values of a and b. We will see how Susan can factor n in time that is polynomial in the bit length of n and win the bet.
(a) [2 marks] Write the number n in terms of g, a and b.
(b) [2 marks] Use the above relation to give a closed formed expression for g.
(c) [1 marks] Write in one sentence, how the above information helps you in finding the factors of N.
The characters involved in this problem are taken from Dan Brown’s Digital Fortress. 2. [12 marks total] TLS
(a) [3marks]MallorysetsupaPhishingwebsite,https://www.cibc.mallory.ca, to steal the login information of CIBC customers. She lures a victim to her website with a Phishing email that contains a link to the website. During the TLS connection setup process, she has her server send the original CIBC certificate, which she retrieved ear- lier from the real CIBC website, to the victim’s browser. Will the browser notice the Phishing attack? Explain.
(b) [3marks]Mallorynoticesthatthevictim’sDNSserverhasnotbeenpatchedagainstthe severe vulnerability that led to a worldwide emergency upgrade of all DNS servers (see http://unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html, not a required reading). She manages to execute a DNS cache poisoning attack. The victim’s host now maps www.cibc.ca to the IP address of a server controlled by Mal- lory. As before, the server will return the original CIBC certificate to a browser. Will the victim’s browser notice the Phishing attack when connecting to www.cibc.ca? Explain.
2

(c) [3 marks] When looking at the public verification key in the CIBC certificate, Mallory notices that it (and the private signing key) were generated on a machine affected by an OpenSSL vulnerability that made the machine’s ”random” number generator and hence all generated keys predictable (see https://en.wikipedia.org/wiki/ Random_number_generator_attack#Debian_OpenSSL, not a required read- ing). Mallory recomputes CIBC’s signing key and makes her server use it. (She also poisons the victim’s DNS cache, as explained earlier.) Will the victim’s browser notice the Phishing attack? Explain.
(d) [3 marks] Even if the victim’s browser notices the Phishing attack in one of the scenar- ios above, why is the attacker still quite likely to succeed, at least with older versions of Firefox and Internet Explorer? (Assume that certificates are properly processed by a browser, i.e., software bugs is not a valid answer.)
3. [8 marks total] GnuPG
A GnuPG public key for p69liu@uwaterloo.ca is provided along with the assignment on the course website (p69liu.asc). Perform the following tasks. You can install GnuPG on your own computer, or use the version we have installed on the ugster machines.
(a) [2 marks] Generate a GnuPG key pair for yourself. Use the RSA and RSA algorithm option, your real name, and an email address of your-userid@uwaterloo.ca. Export this key using ASCII armor into a file called key.asc. [Note: older versions of GnuPG might not have the RSA and RSA algorithm option, so check that the version you are using has this option. The ugster machines have a new enough version, but the student.cs machine may not.]
(b) [2marks]Usethiskeytosign(notlocal-sign)thep69liu@uwaterloo.cakey.Itstruefin- gerprint is: 7132 FAA5 D507 77DE 63B4 94A6 ADE8 4F18 A0F0 BCC9. Export your signed version of the p69liu key into a file called p69liu-signed.asc; be sure to use ASCII armor. [Note: signing a key is not the same operation as signing a message.]
(c) [2 marks] Create a message containing your userid and name. Sign it using the key you generated, and encrypt it to the p69liu key. You should do both the encryption and signature in a single operation. Make sure to use ASCII armor, and save the output in a file called message.asc.
(d) [2 marks] Briefly explain the importance of fingerprints in GnuPG. In particular, ex- plain how users should check fingerprints and what type of attacks are possible if users do not follow this procedure properly.
4. [6 marks total] Inference Attacks
The Human Resources department of FrobozzCo International has a table called Employee, with N records, in its database. This table stores the following information about each em- ployee:
3

• Name: The employee’s first name, which is unique for every employee in the database.
• Birthdate: The employee’s year of birth.
• Occupation: The position the employee fills at the company. An employee with an occupation other than “Staff” is considered a specialist.
• Allegiance: The realm the employee swears their allegiance to. Although FrobozzCo is located in the land of Quendor, they believe that a diverse work force is beneficial to the production of magical products and employ workers from as far away as Antharia and Kovalli.
• Salary (in Zorkmids): the amount of hard-earned cash each employee takes home over the course of the year.
Below is an excerpt (not the entire table):
Table 1: Part of Employee Table
Name
Birthdate
Occupation
Allegiance
Salary
John Lucille Natalie Ralph Frank Leonardo Jill Matthew Rachel
725
788
770
737
741
731
738
722
760
Founder Enchanter
Staff
Public Relations Staff
Director of Design Navigation Expert Staff
Staff
Quendor Quendor Quendor Quendor Antharia Quendor Antharia Kovalli Kovalli
15,000 10,225 5,000 13,721 4,908 12,000 10,426 5,923 4,907
To deter employees from comparing their earnings and complaining about the amount of Zorkmids they take home to their families, the database is set up to suppress the Salary field in the output of queries. However, users can execute queries of the form
SELECT SUM(Salary) FROM Employee WHERE …
where queries that match fewer than k or more than N −k (but not all N ) records are rejected. Wewillusek= N.
8
(a) [3 marks] Use a tracker attack, as defined in class, to design a tracker and a set of three queries based on this tracker that will let you infer Lucille’s salary. Both the tracker and the three queries need to be of the form
SELECT SUM(Salary) FROM Employee …
4

Assume that employees’ names are unique and not known to the attacker (apart from Lucille’s) and that the attacker has no additional information about Lucille (not even her status as a specialist). The only knowledge the attacker knows about the underlying distribution of the database is that FrobozzCo International hires an equal number of specialists (i.e. with an occupation other than “Staff”) and staff employees. In your solution, you should give 1) your tracker, and 2) the set of three queries.
(b) [3 marks] Cornelius Flathead, the Human Resources Director of FrobozzCo Interna- tional becomes aware of the tracker attack and forbids SUM(Salary) queries. Instead the Human Resources Department allows only queries of the form
SELECT COUNT(*) FROM Employee WHERE Q.
Note that Q may include testing the value of the Salary field. (Again, queries that match fewer than k or more than N − k, with the exception of N, records are rejected.) How would you use queries of this type to learn Rachel’s salary? You may assume that no one in the database makes more than 200,000 Zorkmids and that all salaries are non- negative.
5

Programming Questions [27 marks]
Background
In this section we will study padding oracle attacks. Block ciphers operate on a fixed number of bits, such as 64 (DES) or 128 (AES). To encrypt longer messages, a mode of operation such as CBC can be used (see Figure 1). However, this still requires that the message length be a multiple of the block size. To accommodate arbitrary-length messages, a padding scheme is used. The decryption routine will need to check that the message padding is valid. Unfortunately, information about the validity of the padding can easily be leaked to an attacker. This “padding oracle” can allow the attacker to decrypt (and sometimes encrypt) messages without knowing the encryption key.
The padding oracle attack was originally described in a 2002 paper by Serge Vaudenay. This paper is available at https://www.iacr.org/archive/eurocrypt2002/23320530/ cbc02_e02d.pdf and will serve as your reference for this attack. Note that the author fre- quently uses the term “word” where we would usually say “byte”. Padding oracle attacks have continued to be relevant since their inception, with new attacks being discovered regularly. Some recent examples are the POODLE attack discovered in 2014 and the DROWN attack discovered in March 2016, both attacking SSL and TLS (not required reading).
Figure 1: CBC Mode Encryption
Application Description
A simple web application is running at http://localhost:4555 on each ugster machine. To view this application in your web browser, you can use http://ugsterNN.student. cs.uwaterloo.ca:4555 (instructions for working from home are the same as with previous
6

assignments). However, please use http://localhost:4555 in your programs to ensure that they run quickly no matter which ugster machine we test them on.
When you visit the web application it will set a cookie named user in your browser. In other words, the HTTP response will contain a Set-Cookie header like the following:
Set-Cookie: user=”JKAlO6GB1bOtJ1I/VzlhbJQ+MirfsnUrk9HzzunQxvQ=”
The value of this cookie is encrypted with AES using a key known only to the web server. AES is used in CBC mode, and the randomly chosen IV is prepended to the ciphertext. The result is then Base64 encoded to form the cookie value. Base64 is a standard way of encoding binary data into printable ASCII characters. It is implemented in many programming languages and the base64 Unix utility, and is specified in RFC 3548. The padding scheme used by the web application is as follows: for a padding of length n, the padding starts with a byte that has value n (the length of the padding), followed by n − 1 bytes with value 0. There is always at least one byte of padding, so 1, 20, 300, and 4000 are valid examples
When you visit the web application again, your browser will send the cookie back to the server. This is done with a Cookie header with the same form as the Set-Cookie header above. This behavior can of course be emulated programmatically. The web server will use its encryption key to attempt to decrypt any cookie sent to it. If the decryption is successful the HTTP response will contain a 200 (OK) response code. However, if the decryption fails a 500 (Internal Server Error) response code will be returned. See the section below titled “HTTP with curl” for more information on working with HTTP.
Questions
1. [2 marks] What are the average case and worst case number of padding oracle calls required to perform this attack?
2. [3 marks] What cryptographic tool could be used to fix this vulnerability? Which of the CIA properties {Confidentiality, Integrity, Authenticity} does it provide? How does it fix the vulnerability? Assume that the web server must return a different response for users with valid versus invalid cookies.
3. [3 marks] How would you modify the attack described in the paper to account for the dif- ferent padding scheme used by the web server? List the lines in Sections 3.1 and 3.2 that require changes and show how they should be changed.
4. [12 marks] Write a program called decrypt that implements the padding oracle attack on the web application described above. Your program will be called with a single command
7

line argument containing a Base64-encoded cookie value to be decrypted. These cookies will have at least two 16-byte blocks (the IV and at least one ciphertext block), but may not have the same number as those returned by the server. Your program should generate the appropriate cookie values, send them to the web server using HTTP, and observe its response codes in order to decrypt the given cookie value. It should print the resulting plaintext (without padding) to stdout, which will consist of only printable ASCII characters. You can print debug output to stderr if you like. Your program should run in a maximum of 10 minutes for inputs up to 10 blocks long.
You may use any programming or scripting language available on the ugster machines. If your preferred language is not available, we may be able to accommodate requests. Many programming languages have built-in libraries for making HTTP requests and encoding and decoding Base64. You can also use third party libraries for these tasks if necessary. Another option is to call the curl and base64 programs as described in the section below titled “HTTP with curl”. You will submit a single file named src.tar. For evaluation, this file will be extracted and we will attempt to run a script at the top level with ./decrypt . This script could be your program itself, or it could be a script that compiles and then runs your program. In either case it should start with an appropriate shebang line. Your submission should not contain any compiled executables. For the example cookie shown above, the invocation would be:
./decrypt JKAlO6GB1bOtJ1I/VzlhbJQ+MirfsnUrk9HzzunQxvQ=
5. [7 marks] Write a program called encrypt that encrypts arbitrary cookie values such that they will be correctly decrypted by the web application. Your program does not need to know the web application’s encryption key. It will be called with a single command line argument containing a printable ASCII plaintext to be encrypted. Your program should generate the appropriate cookie values, send them to the web server using HTTP, and observe its response codes in order to encrypt the given value. It should print the resulting Base64-encoded ciphertext to stdout. You can print debug output to stderr if you like. Your program should run in a maximum of 10 minutes for inputs up to 10 blocks long.
Submission is similar to the previous question. Your program source files should be included in the same src.tar file. For this question, we will attempt to run a script at the top level with./encrypt

.<br /> Hint: In CBC mode there are three stages a block goes through in decryption. It starts as a ciphertext, the ciphertext is decrypted by the block cipher to an intermediary value, and then the intermediary value is XORed with the previous ciphertext block (or the IV for the first block) to form the final plaintext value. If we know the intermediary value for a given ciphertext block, we can manipulate the IV to gain complete control over what that block will be decrypted to. If we want to produce a plaintext x, then the IV should be x XORed with the intermediary value. This idea can easily be extended to multi-block messages. Start from the last block and move backwards. Pick any value to be the ciphertext for the last block and decrypt it (using your method from the previous question) to find the corresponding<br /> 8</p> <p>intermediary value. Then calculate the IV required to produce the desired plaintext. This IV will be the ciphertext for the second-last block, and so on.<br /> What to Hand In<br /> All assignment submission takes place on the student.cs machines (not the ugster or the virtual environments), using the submit facility. In particular, log in to the Linux student environment (linux.student.cs.uwaterloo.ca), go to the directory that contains your solution, and submit using the following command: submit cs458 3 . (dot included). CS 658 students should also use this command and ignore the warning message.<br /> By the A3 deadline, you are required to hand in:<br /> a3.pdf: A PDF file containing your answers to the written response and relevant programming<br /> questions.<br /> src.tar: A tar archive containing your decryption and encryption program source files. To create the tarball, cd to the directory containing your code and run the command<br /> tar cvf src.tar . (including the .).<br /> a3.pdf must contain, at the top of the first page, your name, UW userid, and student number. If it does not, a 5 mark penalty will be assessed.<br /> Be sure to “embed all fonts” into your PDF files. Some students’ files were unreadable in the past. If we can’t read it, we can’t mark it.<br /> HTTP with curl<br /> HTTP (Hypertext Transfer Protocol) is a simple protocol for transferring text over a network. If you’ve used the Internet, you’ve used HTTP. In this protocol, a client makes a request to a server and the server replies with a response. A request generally asks for a resource located at a particular URL, and the response provides that resource. These resources are often HTML web pages, but here we’ll be using mostly plain textual content. Let’s see an example of a request and a response:<br /> $ curl -v http://localhost:4555<br /> > GET / HTTP/1.1<br /> 9</p> <p>> User-Agent: curl/7.19.7<br /> > Host: localhost:4555<br /> > Accept: */*<br /> ><br /> < HTTP/1.1 200 OK < Content-Length: 37 < Set-Cookie: user="8hIOODzClpAhMw/0dAalk+YrwZqmZPmuCyOmRpzyfH+fnJ0dKBtOL+NaHufa1 MQw1XE8KtKXp2ARNcIvUVFruw==" < Server: TornadoServer/4.3 < Etag: "4b44c375286c4a668502645e4da51dd29441e4e9" < Date: Wed, 02 Nov 2016 17:33:32 GMT < Content-Type: text/html; charset=UTF-8 < Hello! I’ll remember when I saw you. Note that some extra debug output from curl has been omitted. The lines starting with “>” are the client talking to the server, and lines starting with “<” show communication in the other direction. The HTTP request starts with a method; we’ll only be using GET. It then specifies the requested path and the protocol version. The following lines contain headers which specify additional information. These are present in both requests and responses. The response starts by confirming the protocol version. It then presents the status code, which is essential for us as it is the source of our padding oracle. The main response header of interest to us is the Set-Cookie header. We can use the base64 utility to decode it, although it will likely result in unprintable characters, so we’ll display the binary data as a hex dump with xxd: $ echo "8hIOODzClpAhMw/0dAalk+YrwZqmZPmuCyOmRpzyfH+fnJ0dKBtOL+NaHufa1 MQw1XE8KtKXp2ARNcIvUVFruw==" | base64 -d | xxd 00000000: f212 0e38 3cc2 9690 2133 0ff4 7406 a593 ...8<...!3..t... 00000010: e62b c19a a664 f9ae 0b23 a646 9cf2 7c7f .+...d...#.F..|. 00000020: 9f9c 9d1d 281b 4e2f e35a 1ee7 dad4 c430 ....(.N/.Z.....0 00000030: d571 3c2a d297 a760 1135 c22f 5151 6bbb .q<*...‘.5./QQk. You can see that this cookie contains three 16-byte blocks. The first is the IV, and the next two are ciphertext blocks. To send the cookie back to the server, we can do the following: $ curl -v -b user=8hIOODzClpAhMw/0dAalk+YrwZqmZPmuCyOmRpzyfH+fnJ0dKBtOL+NaHufa1 MQw1XE8KtKXp2ARNcIvUVFruw== http://localhost:4555 > GET / HTTP/1.1<br /> > User-Agent: curl/7.47.0<br /> > Host: localhost:4555<br /> > Accept: */*<br /> > Cookie: user=8hIOODzClpAhMw/0dAalk+YrwZqmZPmuCyOmRpzyfH+fnJ0dKBtOL+NaHufa1<br /> MQw1XE8KtKXp2ARNcIvUVFruw==<br /> ><br /> 10</p> <p>< HTTP/1.1 200 OK < Date: Wed, 02 Nov 2016 17:38:13 GMT < Content-Length: 47 < Etag: "86190721ce68176612428946d30ccc0d6e5a99ec" < Content-Type: text/html; charset=UTF-8 < Server: TornadoServer/4.3 < Hello! I first saw you at: 2016-11-02 13:33:32 It would be best to use an HTTP library for your programming language when writing your so- lutions, but you can call the curl program directly as a last resort. curl is also very useful for manually debugging web applications. 11 </p> </div><!-- .entry-content .clear --> </div> </article><!-- #post-## --> <nav class="navigation post-navigation" aria-label="Post navigation"> <span class="screen-reader-text">Post navigation</span> <div class="nav-links"><div class="nav-previous"><a title="程序代写代做代考 concurrency database file system SQL 1. Introduction to Databases" href="https://powcoder.com/2021/01/20/%e7%a8%8b%e5%ba%8f%e4%bb%a3%e5%86%99%e4%bb%a3%e5%81%9a%e4%bb%a3%e8%80%83-concurrency-database-file-system-sql-1-introduction-to-databases/" rel="prev"><span class="ast-left-arrow">&larr;</span> Previous Post</a></div><div class="nav-next"><a title="程序代写代做代考 gui python MyLiveWire-checkpoint" href="https://powcoder.com/2021/01/20/%e7%a8%8b%e5%ba%8f%e4%bb%a3%e5%86%99%e4%bb%a3%e5%81%9a%e4%bb%a3%e8%80%83-gui-python-mylivewire-checkpoint/" rel="next">Next Post <span class="ast-right-arrow">&rarr;</span></a></div></div> </nav><div class="ast-single-related-posts-container ast-container--fallback"><div class="ast-related-posts-title-section"> <h2 class="ast-related-posts-title"> Related Posts </h2> </div><div class="ast-related-posts-wrapper"> <article class="ast-related-post post-38 post type-post status-publish format-standard hentry category-uncategorized tag-matlab tag-simulation"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/matlab-simulation/" target="_self" rel="bookmark noopener noreferrer">matlab simulation</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/matlab/" rel="tag">matlab代写代考</a>, <a href="https://powcoder.com/tag/simulation/" rel="tag">simulation</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-39 post type-post status-publish format-standard hentry category-uncategorized tag-c"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/ab202-assignment-1-arkapong/" target="_self" rel="bookmark noopener noreferrer">AB202 Assignment 1: Arkapong</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/c/" rel="tag">c++代做</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-40 post type-post status-publish format-standard hentry category-uncategorized tag-c"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/msc-c-programming/" target="_self" rel="bookmark noopener noreferrer">MSc C++ Programming</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/c/" rel="tag">c++代做</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-41 post type-post status-publish format-standard hentry category-uncategorized tag-prolog"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/msc-assessed-prolog-lab-exercise-2/" target="_self" rel="bookmark noopener noreferrer">MSc Assessed Prolog Lab Exercise 2</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/prolog/" rel="tag">Prolog代写代考</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-49 post type-post status-publish format-standard hentry category-uncategorized tag-c tag-uml"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/spring-session2015assignment-1/" target="_self" rel="bookmark noopener noreferrer">Spring Session:2015:Assignment 1</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/c/" rel="tag">c++代做</a>, <a href="https://powcoder.com/tag/uml/" rel="tag">UML</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-51 post type-post status-publish format-standard hentry category-uncategorized tag-uml"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/assignment-2-inception-and-elaboration/" target="_self" rel="bookmark noopener noreferrer">Assignment 2: &quot;Inception and Elaboration&quot;</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/uml/" rel="tag">UML</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-55 post type-post status-publish format-standard hentry category-uncategorized tag-android tag-java"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/android-app/" target="_self" rel="bookmark noopener noreferrer">android app</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/android/" rel="tag">android</a>, <a href="https://powcoder.com/tag/java/" rel="tag">Java代写代考</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> <article class="ast-related-post post-57 post type-post status-publish format-standard hentry category-uncategorized tag-java tag-junit"> <div class="ast-related-posts-inner-section"> <div class="ast-related-post-content"> <div class="ast-related-post-featured-section ast-no-thumb"></div> <header class="entry-header related-entry-header"> <h3 class="ast-related-post-title entry-title"> <a href="https://powcoder.com/2016/06/21/comp220-software-development-tools/" target="_self" rel="bookmark noopener noreferrer">COMP220: Software Development Tools</a> </h3> <div class="entry-meta ast-related-cat-style--none ast-related-tag-style--none"><span class="ast-taxonomy-container cat-links default"><a href="https://powcoder.com/category/uncategorized/" rel="category tag">程序代写 CS代考</a></span> / <span class="ast-taxonomy-container tags-links default"><a href="https://powcoder.com/tag/java/" rel="tag">Java代写代考</a>, <a href="https://powcoder.com/tag/junit/" rel="tag">junit</a></span></div> </header> <div class="entry-content clear"> </div> </div> </div> </article> </div> </div> </main><!-- #main --> </div><!-- #primary --> <div class="widget-area secondary" id="secondary" itemtype="https://schema.org/WPSideBar" itemscope="itemscope"> <div class="sidebar-main" > <aside id="custom_html-2" class="widget_text widget widget_custom_html"><h2 class="widget-title">Contact</h2><div class="textwidget custom-html-widget"><ul> <li><strong>QQ: 1823890830</strong></li> <li><strong>微信号(WeChat): powcoder</strong></li> <li><img data-recalc-dims="1" class="alignnone wp-image-366" src="https://i0.wp.com/powcoder.com/wp-content/uploads/2021/01/powcoder.jpg?resize=133%2C133&#038;ssl=1" alt="myweixin" width="133" height="133"/></li> <li><strong>Email: <a href="mailto:powcoder@163.com">powcoder@163.com</a></strong></li> </ul> <ul> <li><strong>请加微信或QQ发要求</strong></li> <li><strong>Contact me through WeChat</strong></li> </ul> </div></aside><aside id="categories-2" class="widget widget_categories"><h2 class="widget-title">Categories</h2><nav aria-label="Categories"> <ul> <li class="cat-item cat-item-245"><a href="https://powcoder.com/category/machine-learning/">机器学习代写代考 machine learning</a> </li> <li class="cat-item cat-item-242"><a href="https://powcoder.com/category/database-db-sql/">数据库代写代考 DB Database SQL</a> </li> <li class="cat-item cat-item-244"><a href="https://powcoder.com/category/data-structure-algorithm/">数据结构算法代写代考 data structure algorithm</a> </li> <li class="cat-item cat-item-239"><a href="https://powcoder.com/category/%e4%ba%ba%e5%b7%a5%e6%99%ba%e8%83%bd-ai-artificial-intelligence/">人工智能 AI Artificial Intelligence</a> </li> <li class="cat-item cat-item-247"><a href="https://powcoder.com/category/compiler/">编译器原理 Compiler</a> </li> <li class="cat-item cat-item-254"><a href="https://powcoder.com/category/network-socket/">计算机网络 套接字编程 computer network socket programming</a> </li> <li class="cat-item cat-item-240"><a href="https://powcoder.com/category/hadoop-map-reduce-spark-hbase/">大数据 Hadoop Map Reduce Spark HBase</a> </li> <li class="cat-item cat-item-241"><a href="https://powcoder.com/category/%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9fosoperating-system/">操作系统OS代写代考 (Operating System)</a> </li> <li class="cat-item cat-item-250"><a href="https://powcoder.com/category/computer-architecture/">计算机体系结构代写代考 Computer Architecture</a> </li> <li class="cat-item cat-item-251"><a href="https://powcoder.com/category/computer-graphics-opengl-webgl/">计算机图形学 Computer Graphics opengl webgl</a> </li> <li class="cat-item cat-item-249"><a href="https://powcoder.com/category/nlp/">自然语言处理 NLP natural language processing</a> </li> <li class="cat-item cat-item-383"><a href="https://powcoder.com/category/%e5%b9%b6%e8%a1%8c%e8%ae%a1%e7%ae%97/">并行计算</a> </li> <li class="cat-item cat-item-253"><a href="https://powcoder.com/category/computation-theory/">计算理论 Theory of Computation</a> </li> <li class="cat-item cat-item-252"><a href="https://powcoder.com/category/computer-security/">计算机安全密码学computer security cryptography</a> </li> <li class="cat-item cat-item-246"><a href="https://powcoder.com/category/sys-programming/">系统编程 System programming</a> </li> <li class="cat-item cat-item-367"><a href="https://powcoder.com/category/%e6%95%b0%e5%80%bc%e7%a7%91%e5%ad%a6%e8%ae%a1%e7%ae%97/">数值科学计算</a> </li> <li class="cat-item cat-item-255"><a href="https://powcoder.com/category/%e8%ae%a1%e7%ae%97%e6%9c%ba%e8%a7%86%e8%a7%89compute-vision/">计算机视觉代写代考(Compute Vision)</a> </li> <li class="cat-item cat-item-248"><a href="https://powcoder.com/category/web/">网页应用 Web Application</a> </li> <li class="cat-item cat-item-401"><a href="https://powcoder.com/category/%e5%88%86%e5%b8%83%e5%bc%8f%e7%b3%bb%e7%bb%9f/">分布式系统</a> </li> <li class="cat-item cat-item-640"><a href="https://powcoder.com/category/%e7%ac%94%e8%af%95%e9%9d%a2%e8%af%95/">笔试面试</a> </li> <li class="cat-item cat-item-403"><a href="https://powcoder.com/category/%e5%87%bd%e6%95%b0%e5%bc%8f%e7%bc%96%e7%a8%8b/">函数式编程</a> </li> <li class="cat-item cat-item-243"><a href="https://powcoder.com/category/%e6%95%b0%e6%8d%ae%e6%8c%96%e6%8e%98-data-mining/">数据挖掘 Data Mining</a> </li> <li class="cat-item cat-item-364"><a href="https://powcoder.com/category/%e7%a6%bb%e6%95%a3%e6%95%b0%e5%ad%a6/">离散数学代写代考 (Discrete mathematics)</a> </li> <li class="cat-item cat-item-384"><a href="https://powcoder.com/category/%e8%bd%af%e4%bb%b6%e5%b7%a5%e7%a8%8b/">软件工程</a> </li> <li class="cat-item cat-item-551"><a href="https://powcoder.com/category/%e7%bc%96%e7%a8%8b%e8%af%ad%e8%a8%80-programming-language/">编程语言 Programming Language</a> </li> <li class="cat-item cat-item-594"><a href="https://powcoder.com/category/%e7%bb%9f%e8%ae%a1%e4%bb%a3%e5%86%99%e4%bb%a3%e8%80%83/">统计代写代考</a> </li> <li class="cat-item cat-item-574"><a href="https://powcoder.com/category/%e8%bf%90%e7%ad%b9%e5%ad%a6-operation-research/">运筹学 Operation Research</a> </li> </ul> </nav></aside><aside id="tag_cloud-3" class="widget widget_tag_cloud"><h2 class="widget-title">Tag</h2><nav aria-label="Tag"><div class="tagcloud"><a href="https://powcoder.com/tag/algorithm/" class="tag-cloud-link tag-link-469 tag-link-position-1" style="font-size: 18px;" aria-label="Algorithm算法代写代考 (15,143 items)">Algorithm算法代写代考</a><a href="https://powcoder.com/tag/java/" class="tag-cloud-link tag-link-298 tag-link-position-2" style="font-size: 16.91156462585px;" aria-label="Java代写代考 (7,271 items)">Java代写代考</a><a href="https://powcoder.com/tag/database/" class="tag-cloud-link tag-link-414 tag-link-position-3" style="font-size: 16.503401360544px;" aria-label="database (5,442 items)">database</a><a href="https://powcoder.com/tag/data-structure/" class="tag-cloud-link tag-link-501 tag-link-position-4" style="font-size: 16.401360544218px;" aria-label="data structure (5,185 items)">data structure</a><a href="https://powcoder.com/tag/python/" class="tag-cloud-link tag-link-331 tag-link-position-5" style="font-size: 16.299319727891px;" aria-label="Python代写代考 (4,810 items)">Python代写代考</a><a href="https://powcoder.com/tag/compiler/" class="tag-cloud-link tag-link-472 tag-link-position-6" style="font-size: 16.027210884354px;" aria-label="compiler (4,000 items)">compiler</a><a href="https://powcoder.com/tag/scheme/" class="tag-cloud-link tag-link-338 tag-link-position-7" style="font-size: 15.823129251701px;" aria-label="Scheme代写代考 (3,502 items)">Scheme代写代考</a><a href="https://powcoder.com/tag/c-4/" class="tag-cloud-link tag-link-499 tag-link-position-8" style="font-size: 15.823129251701px;" aria-label="C语言代写 (3,489 items)">C语言代写</a><a href="https://powcoder.com/tag/ai/" class="tag-cloud-link tag-link-369 tag-link-position-9" style="font-size: 15.176870748299px;" aria-label="AI代写 (2,216 items)">AI代写</a><a href="https://powcoder.com/tag/c-3/" class="tag-cloud-link tag-link-491 tag-link-position-10" style="font-size: 14.700680272109px;" aria-label="c++代写 (1,633 items)">c++代写</a><a href="https://powcoder.com/tag/sql/" class="tag-cloud-link tag-link-395 tag-link-position-11" style="font-size: 14.530612244898px;" aria-label="SQL代写代考 (1,457 items)">SQL代写代考</a><a href="https://powcoder.com/tag/haskell/" class="tag-cloud-link tag-link-291 tag-link-position-12" style="font-size: 14.530612244898px;" aria-label="Haskell代写代考 (1,453 items)">Haskell代写代考</a><a href="https://powcoder.com/tag/javascript/" class="tag-cloud-link tag-link-299 tag-link-position-13" style="font-size: 14.462585034014px;" aria-label="javascript (1,395 items)">javascript</a><a href="https://powcoder.com/tag/concurrency/" class="tag-cloud-link tag-link-503 tag-link-position-14" style="font-size: 14.428571428571px;" aria-label="concurrency (1,355 items)">concurrency</a><a href="https://powcoder.com/tag/matlab/" class="tag-cloud-link tag-link-309 tag-link-position-15" style="font-size: 14.360544217687px;" aria-label="matlab代写代考 (1,281 items)">matlab代写代考</a><a href="https://powcoder.com/tag/finance/" class="tag-cloud-link tag-link-282 tag-link-position-16" style="font-size: 14.292517006803px;" aria-label="finance (1,221 items)">finance</a><a href="https://powcoder.com/tag/interpreter/" class="tag-cloud-link tag-link-297 tag-link-position-17" style="font-size: 14.190476190476px;" aria-label="interpreter (1,144 items)">interpreter</a><a href="https://powcoder.com/tag/mips/" class="tag-cloud-link tag-link-313 tag-link-position-18" style="font-size: 14.156462585034px;" aria-label="MIPS汇编代写代考 (1,134 items)">MIPS汇编代写代考</a><a href="https://powcoder.com/tag/data-mining/" class="tag-cloud-link tag-link-271 tag-link-position-19" style="font-size: 13.986394557823px;" aria-label="data mining (991 items)">data mining</a><a href="https://powcoder.com/tag/decision-tree/" class="tag-cloud-link tag-link-273 tag-link-position-20" style="font-size: 13.952380952381px;" aria-label="decision tree (982 items)">decision tree</a><a href="https://powcoder.com/tag/deep-learning/" class="tag-cloud-link tag-link-274 tag-link-position-21" style="font-size: 13.952380952381px;" aria-label="deep learning深度学习代写代考 (980 items)">deep learning深度学习代写代考</a><a href="https://powcoder.com/tag/prolog/" class="tag-cloud-link tag-link-329 tag-link-position-22" style="font-size: 13.918367346939px;" aria-label="Prolog代写代考 (957 items)">Prolog代写代考</a><a href="https://powcoder.com/tag/file-system/" class="tag-cloud-link tag-link-281 tag-link-position-23" style="font-size: 13.850340136054px;" aria-label="file system (902 items)">file system</a><a href="https://powcoder.com/tag/c/" class="tag-cloud-link tag-link-265 tag-link-position-24" style="font-size: 13.578231292517px;" aria-label="c++代做 (764 items)">c++代做</a><a href="https://powcoder.com/tag/computer-architecture/" class="tag-cloud-link tag-link-507 tag-link-position-25" style="font-size: 13.47619047619px;" aria-label="computer architecture (712 items)">computer architecture</a><a href="https://powcoder.com/tag/er/" class="tag-cloud-link tag-link-433 tag-link-position-26" style="font-size: 13.47619047619px;" aria-label="ER (711 items)">ER</a><a href="https://powcoder.com/tag/gui/" class="tag-cloud-link tag-link-290 tag-link-position-27" style="font-size: 13.47619047619px;" aria-label="gui (711 items)">gui</a><a href="https://powcoder.com/tag/gpu/" class="tag-cloud-link tag-link-396 tag-link-position-28" style="font-size: 13.272108843537px;" aria-label="GPU (620 items)">GPU</a><a href="https://powcoder.com/tag/data-science/" class="tag-cloud-link tag-link-272 tag-link-position-29" style="font-size: 13.272108843537px;" aria-label="data science (615 items)">data science</a><a href="https://powcoder.com/tag/x86%e6%b1%87%e7%bc%96/" class="tag-cloud-link tag-link-514 tag-link-position-30" style="font-size: 13.238095238095px;" aria-label="x86汇编代写代考 (606 items)">x86汇编代写代考</a><a href="https://powcoder.com/tag/case-study/" class="tag-cloud-link tag-link-468 tag-link-position-31" style="font-size: 13.204081632653px;" aria-label="case study (586 items)">case study</a><a href="https://powcoder.com/tag/distributed-system/" class="tag-cloud-link tag-link-277 tag-link-position-32" style="font-size: 13.170068027211px;" aria-label="distributed system (576 items)">distributed system</a><a href="https://powcoder.com/tag/android/" class="tag-cloud-link tag-link-256 tag-link-position-33" style="font-size: 13.034013605442px;" aria-label="android (527 items)">android</a><a href="https://powcoder.com/tag/kernel/" class="tag-cloud-link tag-link-470 tag-link-position-34" style="font-size: 13.034013605442px;" aria-label="kernel (520 items)">kernel</a><a href="https://powcoder.com/tag/arm/" class="tag-cloud-link tag-link-483 tag-link-position-35" style="font-size: 13px;" aria-label="ARM汇编代写代考 (514 items)">ARM汇编代写代考</a></div> </nav></aside><aside id="block-4" class="widget widget_block"> <div class="wp-block-group is-layout-flow wp-block-group-is-layout-flow"><div class="wp-block-group__inner-container"><ul class="wp-block-latest-posts__list wp-block-latest-posts"><li><a class="wp-block-latest-posts__post-title" href="https://powcoder.com/2024/11/17/%e7%95%99%e5%ad%a6%e7%94%9f%e4%bd%9c%e4%b8%9a%e4%bb%a3%e5%86%99-comp9313-project-3/">留学生作业代写 COMP9313 Project 3</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://powcoder.com/2024/10/12/%e7%a8%8b%e5%ba%8f%e4%bb%a3%e5%86%99-comp2521-24t3-assignment-1-2/">程序代写 COMP2521 24T3 &#8211; Assignment 1</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://powcoder.com/2024/10/12/%e4%bb%a3%e5%86%99%e4%bb%a3%e8%80%83-compsys-705-formal-methods-for-safety-critical-software-test-17-october-20/">代写代考 COMPSYS 705 Formal Methods for Safety Critical Software Test, 17 October 20</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://powcoder.com/2024/10/07/%e7%a8%8b%e5%ba%8f%e4%bb%a3%e5%86%99-comp2521-24t3-assignment-1/">程序代写 COMP2521 24T3 &#8211; Assignment 1</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://powcoder.com/2024/09/30/%e7%a8%8b%e5%ba%8f%e4%bb%a3%e5%86%99-comp4500-7500-2/">程序代写 COMP4500/7500</a></li> </ul></div></div> </aside> </div><!-- .sidebar-main --> </div><!-- #secondary --> </div> <!-- ast-container --> </div><!-- #content --> <footer class="site-footer" id="colophon" itemtype="https://schema.org/WPFooter" itemscope="itemscope" itemid="#colophon"> <div class="site-below-footer-wrap ast-builder-grid-row-container site-footer-focus-item ast-builder-grid-row-full ast-builder-grid-row-tablet-full ast-builder-grid-row-mobile-full ast-footer-row-stack ast-footer-row-tablet-stack ast-footer-row-mobile-stack" data-section="section-below-footer-builder"> <div class="ast-builder-grid-row-container-inner"> <div class="ast-builder-footer-grid-columns site-below-footer-inner-wrap ast-builder-grid-row"> <div class="site-footer-below-section-1 site-footer-section site-footer-section-1"> <div class="ast-builder-layout-element ast-flex site-footer-focus-item ast-footer-copyright" data-section="section-footer-builder"> <div class="ast-footer-copyright"><p>Copyright &copy; 2024 PowCoder代写 | Powered by <a href="https://wpastra.com/" rel="nofollow noopener" target="_blank">Astra WordPress Theme</a></p> </div> </div> </div> </div> </div> </div> </footer><!-- #colophon --> </div><!-- #page --> <link rel="stylesheet" href="https://powcoder.com/wp-content/cache/minify/12163.css" media="all" /> <script id="astra-theme-js-js-extra"> var astra = {"break_point":"921","isRtl":"","is_scroll_to_id":"","is_scroll_to_top":"","is_header_footer_builder_active":"1","responsive_cart_click":"flyout"}; </script> <script src="https://powcoder.com/wp-content/cache/minify/75800.js"></script> <script src="https://stats.wp.com/e-202448.js" id="jetpack-stats-js" data-wp-strategy="defer"></script> <script id="jetpack-stats-js-after"> _stq = window._stq || []; _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"132118579\",\"post\":\"34093\",\"tz\":\"8\",\"srv\":\"powcoder.com\",\"j\":\"1:14.0\"}") ]); _stq.push([ "clickTrackerInit", "132118579", "34093" ]); </script> <script> /(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1); </script> </body> </html> <!-- Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/ Object Caching 279/344 objects using Disk Page Caching using Disk: Enhanced Content Delivery Network via N/A Minified using Disk Served from: powcoder.com @ 2024-11-25 10:50:18 by W3 Total Cache -->