Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks on Blocks! Dynamically Rearranging Synteny Blocks in Comparative Genomes Nick Egan’s Final Project Presentation for BIO 131 Intro to Computational Biology Taught by Anna Ritz
View full slide show




Cipher Block Chaining (CBC)  message is broken into blocks  linked together in encryption operation  each previous cipher blocks is chained with current plaintext block, hence name  use Initial Vector (IV) to start process Ci = EK(Pi XOR Ci-1) C-1 = IV  uses: bulk data encryption
View full slide show




Cipher Block Chaining • cipher block: if input block repeated, will produce same cipher text: t=1 … m(17) = “HTTP/1.1” t=17 • cipher block chaining: XOR ith input block, m(i), with previous block of cipher text, c(i-1) – c(0) transmitted to receiver in clear m(1) = “HTTP/1.1” block cipher c(1) block cipher c(17) m(i) c(i-1) + block cipher c(i) = “k329aM02” = “k329aM02”
View full slide show




Preamble “Post-amble” Block Execution: 3 Detail Observing Block Observing Block “Post-amble” “Post-amble” 3 Observing Block Observing Block ok Measurement Set ready “Post-amble” EVLA Data Processing PDR Observing Observing Block Block Observing Observing Block Block Failed! Preamble “Post-amble” Preamble ok ?4 5 Preamble ready Preamble Observing Observing Block Block Observing Observing Block Block Observing Block Observing Block Measurement Set “Post-amble” “Post-amble” Preamble Preamble “Post-amble” Measurement Set “Post-amble” “Post-amble” “Post-amble” July 18 - 19, 2002 2 2 Observing Observing Block Block Block Observing Observing Observing Block Block ok Archive: Preamble Observing Block Observing Block 34 ready Preamble “Post-amble” 1 3 Observing Block Observing Observing Block Block Observing Block Observing Observing Block Block ready Preamble Execution: Preamble ready Observing Observing Block Block Observing Observing Block Block Preamble Observing Block Observing Block 22 “Post-amble” “Post-amble” Preamble Preamble 1 “Post-amble” Preamble Input Queue: ok Measurement Set Boyd Waters 13
View full slide show




Ron’s Code or Rivest Codes Scorecard Description RC2 RC4 RC5 RC6 Timeline 1987 1987 1994 1998 Type of Algorithm Block cipher Stream cipher Block cipher Block cipher Key size (in bits) 40 and 64 1 - 256 0 to 2040 bits (128 suggested) 128, 192, or 256 Variable key-size block cipher that was designed as a "drop-in" replacement for DES. Use Most widely used stream cipher based on a variable key-size Vernam stream cipher. It is often used in file encryption products and secure communications, such as within SSL. The cipher can be expected to run very quickly in software and is considered secure. © 2012 Cisco and/or its affiliates. All rights reserved. A fast block cipher that has a variable block size and key size. It can be used as a dropin replacement for DES if the block size is set to 64-bit. An AES finalist (Rijndael won). A 128-bit to 256- bit block cipher that was designed by Rivest, Sidney, and Yin and is based on RC5. Its main design goal was to meet the requirement of AES. 104
View full slide show




Encryption Text:  Computer Security: Principles and Practice, W Stallings, L Brown  Chapter 2 Objectives: The student should be able to:         Define authentication, integrity, confidentiality and non-repudiation. Define plaintext, ciphertext, key, P-box, S-box, session key, digital signature, message digest, hash. Demonstrate operation of a simple substitution cipher, permutation cipher, stream cipher, block cipher, block chaining mode cipher. Describe why chaining is advantageous in block ciphers. Define symmetric versus asymmetric encryption algorithms and describe the differences between the two. Define the advantages of secret key and public key algorithms. Describe their functions in relation to authenticity, non-repudiation, integrity, confidentiality, and speed. Describe two methods of producing a hash. Define whether the following protocols support authentication, non-repudiation, integrity, and/or confidentiality via hashing or a type of encryption: AES, HMAC, DES, MD5, RCS, RSA.
View full slide show




8.4. Metadata Disk Failure: The FsImage and EditLog are central data structures. A corruption of these files can cause the HDFS instance to be non-functional. For this reason, the NameNode can be configured to support maintaining multiple copies of the FsImage and EditLog. Any update to either the FsImage or EditLog causes each of the FsImages and EditLogs to get updated synchronously. This synchronous updating of multiple copies of the FsImage and EditLog may degrade the rate of namespace transactions per second that a NameNode can support. However, this degradation is acceptable because even though HDFS applications are very data intensive in nature, they are not metadata intensive. When a NameNode restarts, it selects the latest consistent FsImage and EditLog to use. The NameNode machine is a single point of failure for an HDFS cluster. If the NameNode machine fails, manual intervention is necessary. Currently, automatic restart and failover of the NameNode software to another machine is not supported. 8.5. Snapshots: Snapshots support storing a copy of data at a particular instant of time. One usage of the snapshot feature may be to roll back a corrupted HDFS instance to a previously known good point in time. HDFS does not currently support snapshots but will in a future release. 9. Data Organization 9.1. Data Blocks: HDFS is designed to support very large files. Applications that are compatible with HDFS are those that deal with large data sets. These applications write their data only once but they read it one or more times and require these reads to be satisfied at streaming speeds. HDFS supports write-once-read-many semantics on files. A typical block size used by HDFS is 64 MB. Thus, an HDFS file is chopped up into 64 MB chunks, and if possible, each chunk will reside on a different DataNode. 9.2. Staging: A client request to create a file does not reach the NameNode immediately. In fact, initially the HDFS client caches the file data into a temporary local file. Application writes are transparently redirected to this temporary local file. When the local file accumulates data worth over one HDFS block size, the client contacts the NameNode. The NameNode inserts the file name into the file system hierarchy and allocates a data block for it. The NameNode responds to the client request with the identity of the DataNode and the destination data block. Then the client flushes the block of data from the local temporary file to the specified DataNode. When a file is closed, the remaining un-flushed data in the temporary local file is transferred to the DataNode. The client then tells the NameNode that the file is closed. At this point, the NameNode commits the file creation operation into a persistent store. If the NameNode dies before the file is closed, the file is lost. The above approach has been adopted after careful consideration of target applications that run on HDFS. These applications need streaming writes to files. If a client writes to a remote file directly without any client side buffering, the network speed and the congestion in the network impacts throughput considerably. This approach is not without precedent. Earlier distributed file systems, e.g. AFS, have used client side caching to improve performance. A POSIX requirement has been relaxed to achieve higher performance of data uploads. 9.3. Replication Pipelining: When a client is writing data to an HDFS file, its data is first written to a local file as explained in the previous section. Suppose the HDFS file has a replication factor of three. When the local file accumulates a full block of user data, the client retrieves a list of DataNodes from the NameNode. This list contains the DataNodes that will host a replica of that block. The client then flushes the data block to the first DataNode. The first DataNode starts receiving the data in small portions (4 KB), writes each portion to its local repository and transfers that portion to the second DataNode in the list. The second DataNode, in turn starts receiving each portion of the data block, writes that portion to its repository and then flushes that portion to the third DataNode. Finally, the third DataNode writes the data to its local repository. Thus, a DataNode can be receiving data from the previous one in the pipeline and at the same time forwarding data to the next one in the pipeline. Thus, the data is pipelined from one DataNode to the next.
View full slide show




 Block Ciphers  A common mode of operation is cipher block chaining (CBC), in which each plaintext block is XORed with the previous block’s ciphertext before being encrypted.  Chapter 8 Cryptograhic Building Blocks The result is that each block’s ciphertext depends in part on the preceding blocks, i.e. on its context. Since the first plaintext block has no preceding block, it is XORed with a random number.  That random number, called an initialization vector (IV), is included with the series of ciphertext blocks so that the first ciphertext block can be decrypted. 18
View full slide show




Cryptanalysis Overview        Method used is based on the amount of information Brute Force: try all possibilities Dictionary Attack: run through a dictionary of words trying to find the key or plaintext Cipher text only Chosen Plaintext: Have the ability to find the cipher text relating to an arbitrary plaintext Chosen Cipher text: can choose an arbitrary cipher text and know the plaintext Adaptive chosen plaintext: determine cipher text based on plaintext using iteration
View full slide show




Doubly Linked Insertion void insert( Item *d ) { Item *current = first, *previous = NULL; while (current!=NULL&&compareTo(d->key, current->key)<0) { previous = current; current=current->next); } if (current == NULL) { if (previous == NULL) first = current; else previous->next = d; } else { if (current->previous==NULL) { first=d; d->next=current; current->previous=d;} else { d->previous = current->previous; d->next = current; current->previous->next = d; current->previous = d; }
View full slide show




Block Modes  Electronic Codebook Book (ECB)  where the message is broken into independent 64-bit blocks which are encrypted  Ci = DESK1 (Pi)  Cipher Block Chaining (CBC)  again the message is broken into 64-bit blocks, but they are linked together in the encryption operation with an IV  Ci = DESK1 (PiCi-1)  C-1=IV (initial value) Cryptography and Network Security 144
View full slide show




Case 2: Deleting node (current) has one child Operation 3: Delete Example: delete the node with item (35/data) root ABST 65/data 30/data height 25/data 75/data 45/data / parent 20/data / / 40/data 68/data / / 55/data / 80/data 78/data / / 88/data / / current 35/data / 42/data / / 60/data / / 38/data 36/data / / 39/data / / Delete 1. Find the deleting node (current) and its parent 2. Delete current The first step is similar to Search. We only consider the step of delete current. if (current.Left = null or current.Right = null) { if (current.Right = null) if (current = root) root: = current.Left; else if (parent.Left = current) parent.Left: = current.Left; else parent.Right: = current.Left; else if (current.Left = null) if (current = root) root: = current.Right; else if (parent.Left = current) parent.Left: = current.Right; else parent.Right: = current.Right; } Time Complexity 1. Find the deleting node (current) and its parent: O(height of BST) 2. Delete current: O(1) Therefore, the time complexity for case 1 is O(height of BST) Average case: O(lg n) Worst case: O(n) where n is the size of the BST
View full slide show




Transparent Scalability  Hardware is free to assign blocks to any SM (processor)  A kernel scales across any number of parallel processors Device Kernel grid Device Block 0 Block 1 Block 2 Block 3 Block 0 Block 1 Block 4 Block 5 Block 6 Block 7 Block 2 Block 3 Block 4 Block 5 Block 6 Block 7 26 time Block 0 Block 1 Block 2 Block 3 Block 4 Block 5 Block 6 Block 7 Each block can execute in any order relative to other blocks.
View full slide show