In this paper, we present a complete digital signature message stream, just the way the RSA digital
signature scheme does it. We will focus on the operations with large numbers due to the fact that operating
with large numbers is the essence of RSA that cannot be understood by the usual illustrative examples with
small numbers[1].
In this paper, we present a complete digital signature message stream, just the way the RSA digital
signature scheme does it. We will focus on the operations with large numbers due to the fact that operating
with large numbers is the essence of RSA that cannot be understood by the usual illustrative examples with
small numbers[1].
DIGITAL COMMUNICATION: ENCODING AND DECODING OF CYCLIC CODE ShivangiSingh241
Cyclic codes are a type of linear code where any cyclic shift of a codeword is also a codeword. This allows for efficient encoding and decoding using shift registers.
Encoding of cyclic codes can be done by dividing the message polynomial by the generator polynomial, with the remainder becoming the parity bits. Encoding circuits use shift registers with feedback to efficiently perform this division. Decoding uses the syndrome, which is computed by shifting the received word into a syndrome register. A decoder then attempts to match the syndrome to an error pattern, correcting errors one symbol at a time by shifting the syndrome and received word simultaneously.
Signyourd digital signature certificate providerKishankant Yadav
a digital code (generated and authenticated by public key encryption) which is attached to an electronically transmitted document to verify its contents and the sender's identity.
This definition explains how digital signatures work and what they are used for. Learn about the mathematical underpinnings of digital signature technology
A digital signature is basically a way to ensure that an electronic document (e-mail, spreadsheet, text file, etc.) is authentic. Authentic means that you know who created the document and you know that it has not been altered in any way since that person created it.
https://signyourdoc.com/
This document summarizes a research paper that proposes a new public key cryptosystem based on the difficulty of inverting the function F(x) = (a × x)Mod(2p)Div(2q). The cryptosystem includes a key exchange algorithm, public key encryption algorithm, and digital signature algorithm. The document analyzes the efficiency and security of the cryptosystem, showing it has O(n) faster time complexity than RSA and Diffie-Hellman. It also reduces breaking the cryptosystem to solving difficult SAT instances or sets of multivariate polynomial equations over F(2). Python implementations of the key exchange and signature algorithms are provided in appendices.
The document proposes a "blind coupon mechanism" (BCM) to spread signals or rumors quickly in a network while preventing an adversary from identifying the source or presence of the signal. The BCM uses an abstract group structure and instantiates it using elliptic curves over Z_n or bilinear groups. It allows processes to spread coupons by continually broadcasting and combining received coupons with their own, in a way that an adversary cannot distinguish dummy from signal coupons or forge new signal coupons.
Encoder for (7,3) cyclic code using matlabSneheshDutta
This document provides an overview of cyclic codes including:
- What cyclic codes are and their properties of error detection and correction.
- The method of generating cyclic codes by multiplying message polynomials by a generator polynomial.
- How to systematically encode cyclic codes in three steps.
- The encoding and decoding circuits including Meggitt decoder.
- An example of a (7,3) cyclic code implemented in Matlab showing the encoding, corruption with errors, and decoding.
- How cyclic codes can detect errors through syndrome computation and lookup tables.
- Applications of cyclic codes in message identification.
1) Cyclic codes are a type of linear block code that have two properties: linearity and cyclic shifting.
2) An example code is analyzed to determine if it meets the criteria of a cyclic code.
3) Cyclic codes can be systematic or non-systematic, and code words in a non-systematic cyclic code can be represented as polynomials related to a generator polynomial.
The document contains C code for implementing various computer graphics algorithms including line drawing algorithms like Bresenham's line drawing algorithm, DDA line drawing algorithm, and symmetrical DDA line drawing algorithm. It also contains circle drawing algorithms using trigonometric, polynomial, Bresenham's and mid-point circle algorithms. Further, it includes ellipse drawing algorithms using trigonometric and polynomial methods. Finally, it shows an implementation of the Liang-Barsky line clipping algorithm.
In this paper, we present a complete digital signature message stream, just the way the RSA digital
signature scheme does it. We will focus on the operations with large numbers due to the fact that operating
with large numbers is the essence of RSA that cannot be understood by the usual illustrative examples with
small numbers[1].
DIGITAL COMMUNICATION: ENCODING AND DECODING OF CYCLIC CODE ShivangiSingh241
Cyclic codes are a type of linear code where any cyclic shift of a codeword is also a codeword. This allows for efficient encoding and decoding using shift registers.
Encoding of cyclic codes can be done by dividing the message polynomial by the generator polynomial, with the remainder becoming the parity bits. Encoding circuits use shift registers with feedback to efficiently perform this division. Decoding uses the syndrome, which is computed by shifting the received word into a syndrome register. A decoder then attempts to match the syndrome to an error pattern, correcting errors one symbol at a time by shifting the syndrome and received word simultaneously.
Signyourd digital signature certificate providerKishankant Yadav
a digital code (generated and authenticated by public key encryption) which is attached to an electronically transmitted document to verify its contents and the sender's identity.
This definition explains how digital signatures work and what they are used for. Learn about the mathematical underpinnings of digital signature technology
A digital signature is basically a way to ensure that an electronic document (e-mail, spreadsheet, text file, etc.) is authentic. Authentic means that you know who created the document and you know that it has not been altered in any way since that person created it.
https://signyourdoc.com/
This document summarizes a research paper that proposes a new public key cryptosystem based on the difficulty of inverting the function F(x) = (a × x)Mod(2p)Div(2q). The cryptosystem includes a key exchange algorithm, public key encryption algorithm, and digital signature algorithm. The document analyzes the efficiency and security of the cryptosystem, showing it has O(n) faster time complexity than RSA and Diffie-Hellman. It also reduces breaking the cryptosystem to solving difficult SAT instances or sets of multivariate polynomial equations over F(2). Python implementations of the key exchange and signature algorithms are provided in appendices.
The document proposes a "blind coupon mechanism" (BCM) to spread signals or rumors quickly in a network while preventing an adversary from identifying the source or presence of the signal. The BCM uses an abstract group structure and instantiates it using elliptic curves over Z_n or bilinear groups. It allows processes to spread coupons by continually broadcasting and combining received coupons with their own, in a way that an adversary cannot distinguish dummy from signal coupons or forge new signal coupons.
Encoder for (7,3) cyclic code using matlabSneheshDutta
This document provides an overview of cyclic codes including:
- What cyclic codes are and their properties of error detection and correction.
- The method of generating cyclic codes by multiplying message polynomials by a generator polynomial.
- How to systematically encode cyclic codes in three steps.
- The encoding and decoding circuits including Meggitt decoder.
- An example of a (7,3) cyclic code implemented in Matlab showing the encoding, corruption with errors, and decoding.
- How cyclic codes can detect errors through syndrome computation and lookup tables.
- Applications of cyclic codes in message identification.
1) Cyclic codes are a type of linear block code that have two properties: linearity and cyclic shifting.
2) An example code is analyzed to determine if it meets the criteria of a cyclic code.
3) Cyclic codes can be systematic or non-systematic, and code words in a non-systematic cyclic code can be represented as polynomials related to a generator polynomial.
The document contains C code for implementing various computer graphics algorithms including line drawing algorithms like Bresenham's line drawing algorithm, DDA line drawing algorithm, and symmetrical DDA line drawing algorithm. It also contains circle drawing algorithms using trigonometric, polynomial, Bresenham's and mid-point circle algorithms. Further, it includes ellipse drawing algorithms using trigonometric and polynomial methods. Finally, it shows an implementation of the Liang-Barsky line clipping algorithm.
A two dimensional array is an array that has two dimensions like rows and columns. The total number of elements in a two dimensional array is calculated by multiplying the number of rows and columns. A two dimensional array can be accessed using two indices like A[i][j] where i represents the row and j represents the column. Common operations on two dimensional arrays include storing and retrieving elements, finding the sum of boundary elements, finding the sum of diagonal elements, adding, subtracting and multiplying two dimensional arrays.
The document describes two algorithms for drawing lines on a graph:
1. The DDA (Digital Differential Analyzer) line drawing algorithm which calculates the slope of the line and uses incremental steps to determine each new pixel coordinate.
2. Bresenham's line drawing algorithm which uses a decision parameter to determine whether the next pixel is directly above/below or diagonal to the current pixel in order to draw lines with integer coordinates.
This document provides an overview of binary repetition codes and the Hamming distance as a simple error-correcting code. It discusses how coding theory studies error correction, cryptography and data compression applications of codes. Binary repetition codes represent messages as repeated bits and use majority voting to decode received bits and correct errors introduced over noisy channels. The document demonstrates generating codewords from messages, encoding messages, calculating the Hamming distance between codewords, and simulating encoding and transmission over a channel with Sage.
20101017 program analysis_for_security_livshits_lecture02_compilersComputer Science Club
This document provides an introduction and overview of compiler optimization techniques, including:
1) Flow graphs, constant folding, global common subexpressions, induction variables, and reduction in strength.
2) Data-flow analysis basics like reaching definitions, gen/kill frameworks, and solving data-flow equations iteratively.
3) Pointer analysis using Andersen's formulation to model references between local variables and heap objects. Rules are provided to represent points-to relationships.
The document demonstrates breaking a 768-bit RSA encryption by factorizing the public key's modulus into its prime factors. It begins with an overview of RSA and integer factorization, then shows the encryption of a sample plaintext under a 768-bit public key. Finally, it programs and runs the decryption using the pre-computed prime factors of the modulus, successfully recovering the original plaintext in under a second. The document concludes that RSA security relies on the computational difficulty of integer factorization and recommends using key sizes of 1024 bits or more.
The document describes a construction of a verifiable random function (VRF) that improves upon previous work. It directly constructs a VRF without using Goldreich-Levin hardcore bits, allows inputs of arbitrary size without encoding, and has proofs and keys consisting of a constant number of group elements. The security of the VRF relies on complexity assumptions in bilinear groups and it finds applications like non-interactive lotteries and compact e-cash schemes.
An RSA private key is made of a few private variables. We analyze how these private variables are chained together. Further, we study if one of the private variables is leaked, can we derive the other private variables? Demos of the algorithms are also provided.
RSA is an asymmetric encryption algorithm that uses a public key to encrypt messages, and a private key to decrypt them. It is based on the difficulty of factoring large prime numbers. To generate a key pair, two large prime numbers are randomly selected and multiplied together. The public key contains the result of this multiplication and an encryption exponent, while the private key contains a decryption exponent. A message encrypted with the public key can only be decrypted with the private key.
The Cryptography puzzle discussed here is part of an online challenge. I demonstrate how I broke RSA when random prime numbers were common among a set of keys. I discuss basic metrics as well as implementation/design of my exploit scripts, too.
We study the behavior of the RSA trapdoor function by repeatedly encrypting the ciphertext sent over the public channel. We discuss the problem of finding a cycle in order to reverse the plaintext from the given ciphertext. Simple demos and algorithms/python programs are also presented. While the attack is not necessarily practical, it is educational to learn how the RSA trapdoor function behaves.
Slides demonstrate how to break RSA when no padding is applied. I replicated the meet-in-the-middle attack discussed in the existing Crypto literature.
Nonlinear analysis of fixed support beam with hinge by hinge method in c prog...Salar Delavar Qashqai
This C program performs a nonlinear analysis of a fixed support beam with hinge using the hinge method. It includes functions for importing data, generating stiffness matrices, performing matrix operations like inversion and multiplication, calculating element internal forces, and outputting results to text, MATLAB, and Excel files. The main function calls the various analysis functions and outputs initial data, analysis reports, and any error messages.
1) The document describes how to decrypt an RSA ciphertext using a Chinese Remainder Theorem attack when the public exponent is small. It involves using the public moduli and exponents from certificates to determine the plaintext.
2) The attack works by using the Chinese Remainder Theorem to determine the plaintext from the ciphertexts modulo the public moduli. This works because the public exponent is small, in this case 3, allowing extraction of the plaintext cube root.
3) Pseudocode is provided showing the steps: using the Chinese Remainder Theorem formula to combine the ciphertexts modulo the public moduli, taking the cube root to obtain the plaintext, which in this example decrypts to a German message about a fixed
Defense Senior College on Error Coding presentation 4/22/2010Felicia Fort, MBA
This document provides an overview of error detecting and error correcting codes. It defines key terms like check digits, linear codes, and encoding and decoding. Check digits are added to identifiers like credit card numbers and zip codes to detect errors. Linear codes are a type of error correcting code that represent messages as vectors. Encoding a linear code involves a generator matrix, while decoding uses a parity check matrix. The document gives examples of encoding and decoding a sample linear code and discusses the advantages and disadvantages of linear codes.
This document describes an RSA two-person game designed to demonstrate how an adversary could exploit the homomorphic property of raw RSA encryption to break the system. It involves a challenger generating an RSA public/private key pair and encrypting a secret message. The adversary is able to obtain encryptions of arbitrary messages and uses the homomorphic property that the product of ciphertexts corresponds to the product of plaintexts to deduce the secret. Through a series of chosen plaintext/ciphertext queries, the adversary is able to compute the secret plaintext and win the game. The goal is to understand the vulnerabilities in raw RSA and how padding can strengthen the system.
The document summarizes a class on cryptocurrency and Bitcoin script. It discusses generating Bitcoin addresses through hashing public keys, describes the Bitcoin script language as a stack-based language similar to JVML used to write programs in transactions. It also notes that while Bitcoin script has limitations, altcoins are taking different approaches to scripting languages. Finally, it reminds students that project 2 is due Friday and the next class will feature a guest lecture from Tom Dukes on cyberlaw.
We study the internal structure of the SRP key exchange protocol and experiment with it. SRP establishes a shared encryption key between communicating parties using passwords that were shared out-of-band. We perform basic cryptanalysis of SRP using open-source implementations. We present a demo of how SRP was compromised due to an implementation bug, allowing the attacker to login without the password. The author of the Go-SRP library promptly fixed the issue on the very same day we reported the vulnerability.
This document describes the solutions and questions for a midterm exam in 6.036: Spring 2018. It provides instructions for taking the exam such as writing your name on each page and coming to the front to ask questions. The exam consists of 6 multiple choice questions worth a total of 100 points. Question 1 involves linear classification and calculating margins. Question 2 asks about sources of error in machine learning models. Question 3 involves choosing appropriate representations and loss functions for different prediction problems. Question 4 introduces radial basis features for nonlinear classification. Question 5 discusses shortcut connections in neural networks.
This document contains 25 questions related to basic digital logic gates and Boolean algebra. It covers topics like universal gates, minterms and maxterms, De Morgan's laws, Shannon expansion theorem, implementation of logic gates using other gates, parity generation, comparators and other basic concepts. Answers to each question are provided after the questions.
A Signature Algorithm Based On Chaotic Maps And Factoring ProblemsSandra Long
This document describes a new digital signature algorithm based on chaotic maps and factorization problems. It consists of three main phases:
1) System initialization which defines parameters like cryptographic hash function, large prime numbers p and q, element a of order n in GF(p), and multiplicative group G generated by a.
2) Key generation where the signer selects private keys d, x and computes public keys e, y using chaotic maps and modular arithmetic.
3) Signature generation where the signer selects a random number r, computes intermediate values using chaotic maps and factorization, and outputs the signature (v1, v2, S) for the hashed message. The security relies on the difficulty of simultaneously solving
The document describes the syllabus for a course on design analysis and algorithms. It covers topics like asymptotic notations, time and space complexities, sorting algorithms, greedy methods, dynamic programming, backtracking, and NP-complete problems. It also provides examples of algorithms like computing greatest common divisor, Sieve of Eratosthenes for primes, and discusses pseudocode conventions. Recursive algorithms and examples like Towers of Hanoi and permutation generation are explained. Finally, it outlines the steps for designing algorithms like understanding the problem, choosing appropriate data structures and computational devices.
A two dimensional array is an array that has two dimensions like rows and columns. The total number of elements in a two dimensional array is calculated by multiplying the number of rows and columns. A two dimensional array can be accessed using two indices like A[i][j] where i represents the row and j represents the column. Common operations on two dimensional arrays include storing and retrieving elements, finding the sum of boundary elements, finding the sum of diagonal elements, adding, subtracting and multiplying two dimensional arrays.
The document describes two algorithms for drawing lines on a graph:
1. The DDA (Digital Differential Analyzer) line drawing algorithm which calculates the slope of the line and uses incremental steps to determine each new pixel coordinate.
2. Bresenham's line drawing algorithm which uses a decision parameter to determine whether the next pixel is directly above/below or diagonal to the current pixel in order to draw lines with integer coordinates.
This document provides an overview of binary repetition codes and the Hamming distance as a simple error-correcting code. It discusses how coding theory studies error correction, cryptography and data compression applications of codes. Binary repetition codes represent messages as repeated bits and use majority voting to decode received bits and correct errors introduced over noisy channels. The document demonstrates generating codewords from messages, encoding messages, calculating the Hamming distance between codewords, and simulating encoding and transmission over a channel with Sage.
20101017 program analysis_for_security_livshits_lecture02_compilersComputer Science Club
This document provides an introduction and overview of compiler optimization techniques, including:
1) Flow graphs, constant folding, global common subexpressions, induction variables, and reduction in strength.
2) Data-flow analysis basics like reaching definitions, gen/kill frameworks, and solving data-flow equations iteratively.
3) Pointer analysis using Andersen's formulation to model references between local variables and heap objects. Rules are provided to represent points-to relationships.
The document demonstrates breaking a 768-bit RSA encryption by factorizing the public key's modulus into its prime factors. It begins with an overview of RSA and integer factorization, then shows the encryption of a sample plaintext under a 768-bit public key. Finally, it programs and runs the decryption using the pre-computed prime factors of the modulus, successfully recovering the original plaintext in under a second. The document concludes that RSA security relies on the computational difficulty of integer factorization and recommends using key sizes of 1024 bits or more.
The document describes a construction of a verifiable random function (VRF) that improves upon previous work. It directly constructs a VRF without using Goldreich-Levin hardcore bits, allows inputs of arbitrary size without encoding, and has proofs and keys consisting of a constant number of group elements. The security of the VRF relies on complexity assumptions in bilinear groups and it finds applications like non-interactive lotteries and compact e-cash schemes.
An RSA private key is made of a few private variables. We analyze how these private variables are chained together. Further, we study if one of the private variables is leaked, can we derive the other private variables? Demos of the algorithms are also provided.
RSA is an asymmetric encryption algorithm that uses a public key to encrypt messages, and a private key to decrypt them. It is based on the difficulty of factoring large prime numbers. To generate a key pair, two large prime numbers are randomly selected and multiplied together. The public key contains the result of this multiplication and an encryption exponent, while the private key contains a decryption exponent. A message encrypted with the public key can only be decrypted with the private key.
The Cryptography puzzle discussed here is part of an online challenge. I demonstrate how I broke RSA when random prime numbers were common among a set of keys. I discuss basic metrics as well as implementation/design of my exploit scripts, too.
We study the behavior of the RSA trapdoor function by repeatedly encrypting the ciphertext sent over the public channel. We discuss the problem of finding a cycle in order to reverse the plaintext from the given ciphertext. Simple demos and algorithms/python programs are also presented. While the attack is not necessarily practical, it is educational to learn how the RSA trapdoor function behaves.
Slides demonstrate how to break RSA when no padding is applied. I replicated the meet-in-the-middle attack discussed in the existing Crypto literature.
Nonlinear analysis of fixed support beam with hinge by hinge method in c prog...Salar Delavar Qashqai
This C program performs a nonlinear analysis of a fixed support beam with hinge using the hinge method. It includes functions for importing data, generating stiffness matrices, performing matrix operations like inversion and multiplication, calculating element internal forces, and outputting results to text, MATLAB, and Excel files. The main function calls the various analysis functions and outputs initial data, analysis reports, and any error messages.
1) The document describes how to decrypt an RSA ciphertext using a Chinese Remainder Theorem attack when the public exponent is small. It involves using the public moduli and exponents from certificates to determine the plaintext.
2) The attack works by using the Chinese Remainder Theorem to determine the plaintext from the ciphertexts modulo the public moduli. This works because the public exponent is small, in this case 3, allowing extraction of the plaintext cube root.
3) Pseudocode is provided showing the steps: using the Chinese Remainder Theorem formula to combine the ciphertexts modulo the public moduli, taking the cube root to obtain the plaintext, which in this example decrypts to a German message about a fixed
Defense Senior College on Error Coding presentation 4/22/2010Felicia Fort, MBA
This document provides an overview of error detecting and error correcting codes. It defines key terms like check digits, linear codes, and encoding and decoding. Check digits are added to identifiers like credit card numbers and zip codes to detect errors. Linear codes are a type of error correcting code that represent messages as vectors. Encoding a linear code involves a generator matrix, while decoding uses a parity check matrix. The document gives examples of encoding and decoding a sample linear code and discusses the advantages and disadvantages of linear codes.
This document describes an RSA two-person game designed to demonstrate how an adversary could exploit the homomorphic property of raw RSA encryption to break the system. It involves a challenger generating an RSA public/private key pair and encrypting a secret message. The adversary is able to obtain encryptions of arbitrary messages and uses the homomorphic property that the product of ciphertexts corresponds to the product of plaintexts to deduce the secret. Through a series of chosen plaintext/ciphertext queries, the adversary is able to compute the secret plaintext and win the game. The goal is to understand the vulnerabilities in raw RSA and how padding can strengthen the system.
The document summarizes a class on cryptocurrency and Bitcoin script. It discusses generating Bitcoin addresses through hashing public keys, describes the Bitcoin script language as a stack-based language similar to JVML used to write programs in transactions. It also notes that while Bitcoin script has limitations, altcoins are taking different approaches to scripting languages. Finally, it reminds students that project 2 is due Friday and the next class will feature a guest lecture from Tom Dukes on cyberlaw.
We study the internal structure of the SRP key exchange protocol and experiment with it. SRP establishes a shared encryption key between communicating parties using passwords that were shared out-of-band. We perform basic cryptanalysis of SRP using open-source implementations. We present a demo of how SRP was compromised due to an implementation bug, allowing the attacker to login without the password. The author of the Go-SRP library promptly fixed the issue on the very same day we reported the vulnerability.
This document describes the solutions and questions for a midterm exam in 6.036: Spring 2018. It provides instructions for taking the exam such as writing your name on each page and coming to the front to ask questions. The exam consists of 6 multiple choice questions worth a total of 100 points. Question 1 involves linear classification and calculating margins. Question 2 asks about sources of error in machine learning models. Question 3 involves choosing appropriate representations and loss functions for different prediction problems. Question 4 introduces radial basis features for nonlinear classification. Question 5 discusses shortcut connections in neural networks.
This document contains 25 questions related to basic digital logic gates and Boolean algebra. It covers topics like universal gates, minterms and maxterms, De Morgan's laws, Shannon expansion theorem, implementation of logic gates using other gates, parity generation, comparators and other basic concepts. Answers to each question are provided after the questions.
A Signature Algorithm Based On Chaotic Maps And Factoring ProblemsSandra Long
This document describes a new digital signature algorithm based on chaotic maps and factorization problems. It consists of three main phases:
1) System initialization which defines parameters like cryptographic hash function, large prime numbers p and q, element a of order n in GF(p), and multiplicative group G generated by a.
2) Key generation where the signer selects private keys d, x and computes public keys e, y using chaotic maps and modular arithmetic.
3) Signature generation where the signer selects a random number r, computes intermediate values using chaotic maps and factorization, and outputs the signature (v1, v2, S) for the hashed message. The security relies on the difficulty of simultaneously solving
The document describes the syllabus for a course on design analysis and algorithms. It covers topics like asymptotic notations, time and space complexities, sorting algorithms, greedy methods, dynamic programming, backtracking, and NP-complete problems. It also provides examples of algorithms like computing greatest common divisor, Sieve of Eratosthenes for primes, and discusses pseudocode conventions. Recursive algorithms and examples like Towers of Hanoi and permutation generation are explained. Finally, it outlines the steps for designing algorithms like understanding the problem, choosing appropriate data structures and computational devices.
Design of QSD Number System Addition using Delayed Addition TechniqueKumar Goud
Abstract: Quaternary number system is a base-4 numeral system. Using Quaternary Signed Digit (QSD) number system may also execute carry free addition, borrow free subtraction and multiplication. The QSD number system wants a different group of prime modulo based logic elements for each arithmetic operation. In this work we extend this QSD addition to Delayed addition in place of carry free addition. Carry free addition generates intermediate carry and intermediate sum, in this carry propagation is required to generate intermediate sum. To reduce carry propagation we evaluated delayed addition. This delayed addition reduces carry propagation and improves arithmetic calculations. We present both QSD and Floating –point single precision addition using delayed addition. The design work is carried by using Verilog HDL in ISE.
Keywords: QSD, DA, CFA and Floating-Point.
Design of QSD Number System Addition using Delayed Addition TechniqueKumar Goud
Abstract: Quaternary number system is a base-4 numeral system. Using Quaternary Signed Digit (QSD) number system may also execute carry free addition, borrow free subtraction and multiplication. The QSD number system wants a different group of prime modulo based logic elements for each arithmetic operation. In this work we extend this QSD addition to Delayed addition in place of carry free addition. Carry free addition generates intermediate carry and intermediate sum, in this carry propagation is required to generate intermediate sum. To reduce carry propagation we evaluated delayed addition. This delayed addition reduces carry propagation and improves arithmetic calculations. We present both QSD and Floating –point single precision addition using delayed addition. The design work is carried by using Verilog HDL in ISE.
Keywords: QSD, DA, CFA and Floating-Point.
Identity-based threshold group signature scheme based on multiple hard number...IJECEIAES
This document presents a new identity-based threshold group signature scheme based on multiple hard number theoretic problems - residuosity and discrete logarithm. The scheme relies on the difficulty of simultaneously solving both problems, improving security over schemes based on a single hard problem. The scheme is described, including system setup, key generation, signature generation, and signature verification. It is argued that the scheme is secure against common attacks on signature schemes like trying to derive secret keys from public parameters, as solving either the residuosity or discrete logarithm problems alone would not be enough to break the system. The performance and efficiency of the proposed scheme is also analyzed.
The document provides code snippets for creating programs in C to:
1. Restrict mouse pointer movement and display pointer position by accessing the interrupt table and using functions like int86().
2. Create simple viruses by writing programs that shutdown the system, open internet explorer infinitely, or delete IE files.
3. Create DOS commands by writing C programs that can be executed from the command line to list files or directories.
4. Switch to 256 color graphics mode and create directories by calling int86() and writing to registers.
5. Develop a basic paint brush program using graphics functions to draw shapes determined by brush properties when the mouse is clicked.
This document contains a computer graphics lab manual with instructions and sample code for programming graphics experiments. It includes:
1. An introduction and list of experiments covering topics like drawing lines, circles, ellipses, implementing transformations and clipping.
2. Samples of experiment documents with aims, descriptions of algorithms, code samples and questions. The experiments cover drawing pixels, lines using DDA and Bresenham's algorithms, circles using Bresenham's algorithm, and ellipses.
3. The code samples demonstrate how to use graphics functions in C like initgraph, putpixel, getpixel to implement various computer graphics algorithms.
Georgy Nosenko - An introduction to the use SMT solvers for software securityDefconRussia
The document discusses how SMT solvers can be used for software security applications such as bug hunting, exploit generation, protection analysis, and malware analysis by modeling portions of code or algorithms as logical formulas that can then be analyzed using an SMT solver to prove properties or generate inputs. It provides examples of how SMT solvers have been used to find integer overflows, help with program verification, and aid in defeating simple hashing algorithms.
The document is a laboratory manual for the course "Computer Graphics & Multimedia" that includes experiments on various computer graphics and multimedia topics. It contains an introduction, list of experiments, and details of the experiments. Some key experiments include implementing algorithms for line drawing, circle drawing, and applying transformations like translation, scaling and rotation. The objectives are to introduce basic computer graphics concepts and algorithms, and expose students to 2D and 3D graphics as well as multimedia formats and applications.
The document describes 11 practical implementations of cryptographic techniques using C programming language. The techniques implemented include Caesar cipher, Playfair cipher, Hill cipher, Rail Fence cipher, Data Encryption Standard (DES), Rivest-Shamir-Adleman (RSA) algorithm, and Diffie-Hellman key exchange algorithm. For each practical, it provides the objective, description of the algorithm, example, steps of the algorithm, and the C program code with inputs and outputs. The document is a practical file submitted by a student to fulfill the requirements for a Bachelor of Technology degree.
This document contains computer programming lab solutions for various problems as per the JNTU Hyderabad syllabus. It is authored by Srinivas Reddy Amedapu, a full time research scholar at the National Institute of Technology in Trichy, Tamil Nadu. The document provides C code solutions to problems like finding the sum of digits of a number, generating Fibonacci sequences, finding prime numbers between a range, calculating mathematical series, solving quadratic equations, recursive and non-recursive functions for factorial and GCD, the Towers of Hanoi problem, distance calculation with velocity and acceleration, a calculator program using switch statements, finding minimum and maximum elements in an array, and matrix addition. Contact details for S
The document contains C program code solutions to common programming problems submitted by Srinivas Reddy Amedapu. It includes programs to:
1) Find the sum of digits of a positive integer.
2) Generate the first n terms of the Fibonacci sequence.
3) Generate all prime numbers between 1 and n.
4) Calculate a series involving factorials and powers of x.
5) Find the roots of a quadratic equation.
6) Calculate the factorial and greatest common divisor of integers using recursive and non-recursive functions.
7) Solve the Towers of Hanoi problem.
8) Calculate distance travelled given initial velocity, acceleration, and time.
The document provides source code for generating and manipulating computer graphics using various algorithms. It includes algorithms for drawing lines, circles and curves, as well as algorithms for translating, rotating, and scaling two-dimensional and three-dimensional objects. The source code is written in C/C++ and uses graphics libraries to output the results. Various input parameters are taken from the user and output is displayed to demonstrate the algorithms.
The document discusses arrays in C programming. It defines arrays as groups of same data types that can store integer, float, character, or other data. Arrays allow storing multiple values in a single variable and accessing elements using indexes. The document provides examples of one-dimensional and two-dimensional arrays, and using for loops to initialize, input, and output array elements. Nested for loops are described for traversing two-dimensional or multi-dimensional arrays like matrices.
The document discusses arrays in C programming. It defines arrays as groups of same data types that can store integer, float, character, or other data. Arrays allow storing multiple values in a single variable and accessing elements using indexes. The document provides examples of one-dimensional and two-dimensional arrays, and explains how to initialize, declare, and access array elements. It also discusses using for loops and nested loops to iterate through arrays.
This document contains an assignment for an MCA course with 6 questions. Question 1 asks to define a flowchart and create an algorithm and flowchart for a 25 question MCQ exam. Question 2 asks to compare and contrast flowchart characteristics. Question 3 discusses bitwise operators in C and provides an example program. Question 4 defines arrays and provides a program to merge two arrays without duplicates. Question 5 provides examples of functions with and without arguments and return values. Question 6 asks to create a program to manage assignments for 7 MCA courses.
This document provides an overview of advanced data structures and algorithm analysis taught by Dr. Sukhamay Kundu at Louisiana State University. It discusses the role of data structures in making computations faster by supporting efficient data access and storage. The document distinguishes between algorithms, which determine the computational steps and data access order, and data structures, which enable efficient reading and writing of data. It also describes different methods for measuring algorithm performance, such as theoretical time complexity analysis and empirical measurements. Examples are provided for instrumenting code to count operations. Overall, the document introduces fundamental concepts about algorithms and data structures.
Advanced Computing: An International Journal (ACIJ) is a peer-reviewed, open access peer-reviewed journal that publishes articles which contribute new results in all areas of the advanced computing. The journal focuses on all technical and practical aspects of high performance computing, green computing, pervasive computing, cloud computing etc. The goal of this journal is to bring together researchers and a practitioners from academia and industry to focus on understanding advances in computing and establishing new collaborations in these areas.
Authors are solicited to contribute to the journal by submitting articles that illustrate research results, projects, surveying works and industrial experiences that describe significant advances in the areas of computing.
Call for Papers - Advanced Computing An International Journal (ACIJ) (2).pdfacijjournal
Submit your Research Papers!!!
Advanced Computing: An International Journal ( ACIJ )
ISSN: 2229 -6727 [Online] ; 2229 - 726X [Print]
Webpage URL: http://airccse.org/journal/acij/acij.html
Submission URL: http://coneco2009.com/submissions/imagination/home.html
Submission Deadline : April 08, 2023
Here's where you can reach us : acijjournal@yahoo.com or acij@aircconline
Advanced Computing: An International Journal (ACIJ
)
is a bi monthly open access peer-reviewed journal that publishes articles which contribute new results in all areas of the advancedcomputing. The journal focuses on all technical and practical aspects of high performancecomputing, green computing, pervasive computing, cloud computing etc. The goal of this journalis to bring together researchers anda practitioners from academia and industry to focus onunderstanding advances in computing and establishing new collaborations in these areas
Submit your Research Papers!!!
Advanced Computing: An International Journal ( ACIJ )
ISSN: 2229 -6727 [Online] ; 2229 - 726X [Print]
Webpage URL: http://airccse.org/journal/acij/acij.html
Submission URL: http://coneco2009.com/submissions/imagination/home.html
Here's where you can reach us : acijjournal@yahoo.com or acij@aircconline.com
7thInternational Conference on Data Mining & Knowledge Management (DaKM 2022)acijjournal
7thInternational Conference on Data Mining & Knowledge Management (DaKM 2022)provides a forum for researchers who address this issue and to present their work in a peer-reviewed forum.
7thInternational Conference on Data Mining & Knowledge Management (DaKM 2022)acijjournal
7thInternational Conference on Data Mining & Knowledge Management (DaKM 2022)provides a forum for researchers who address this issue and to present their work in a peer-reviewed forum.
7thInternational Conference on Data Mining & Knowledge Management (DaKM 2022)acijjournal
7thInternational Conference on Data Mining & Knowledge Management (DaKM 2022)provides a forum for researchers who address this issue and to present their work in a peer-reviewed forum.
4thInternational Conference on Machine Learning & Applications (CMLA 2022)acijjournal
4thInternational Conference on Machine Learning & Applications (CMLA 2022)will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of on Machine Learning & Applications. The aim of the conference is to provide a platform to the researchers and practitioners from both academia as well as industry to meet and share cutting-edge development in the field.
7thInternational Conference on Data Mining & Knowledge Management (DaKM 2022)acijjournal
The 7th International Conference on Data Mining & Knowledge Management (DaKM 2022) will take place from July 30-31, 2022 in London, United Kingdom. The conference aims to provide a forum for researchers to present work on data mining and knowledge management. Authors are invited to submit papers by June 04, 2022 on topics related to data mining foundations, applications, and knowledge processing. Selected papers will be published in the conference proceedings and considered for publication in related journals. Important dates include the submission deadline of June 04 and notification of acceptance by June 18.
3rdInternational Conference on Natural Language Processingand Applications (N...acijjournal
3rdInternational Conference on Natural Language Processing and Applications (NLPA 2022)will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of Natural Language Computing and its applications. The Conference looks for significant contributions to all major fieldsof the Natural Language processing in theoretical and practical aspects.
4thInternational Conference on Machine Learning & Applications (CMLA 2022)acijjournal
4thInternational Conference on Machine Learning & Applications (CMLA 2022)will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of on Machine Learning & Applications. The aim of the conference is to provide a platform to the researchers and practitioners from both academia as well as industry to meet and share cutting-edge development in the field.
Graduate School Cyber Portfolio: The Innovative Menu For Sustainable Developmentacijjournal
In today’s milieu, new demands and trends emerge in the field of Education giving teachers of Higher Education Institutions (HEI’s) no choice but to be innovative to cope with the fast changing technology. To be naturally innovative, a graduate school teacher needs to be technologically and pedagogically competent. One of the ways to be on this level is by creating his cyber portfolio to support students’ eportfolio for lifelong learning. Cyber portfolio is an innovative menu for teachers who seek out strategies to integrate technology in their lessons. This paper presents a straightforward preparation on how to innovate a cyber portfolio that has its practical and breakthrough solution against expensive and inflexible vended software which often saddle many universities. Additionally, this cyber portfolio is free and it addresses the 21st century skills of graduate students blended with higher order thinking skills, multiple intelligence, technology and multimedia.
Genetic Algorithms and Programming - An Evolutionary Methodologyacijjournal
This document summarizes genetic programming, an evolutionary algorithm methodology inspired by biological evolution. Genetic programming starts with a random population of computer programs and uses genetic operators like crossover and mutation to generate new programs. It evaluates programs using a fitness function based on how well they perform a given task. The document discusses the history of genetic programming and machine learning, gives examples of genetic programming representations as tree structures, and explains key genetic programming components like genetic operators, population size, the fitness function, and the evolutionary process of breeding new populations.
Data Transformation Technique for Protecting Private Information in Privacy P...acijjournal
Data mining is the process of extracting patterns from data. Data mining is seen as an increasingly important tool by modern business to transform data into an informational advantage. Data
Mining can be utilized in any organization that needs to find patterns or relationships in their data. A group of techniques that find relationships that have not previously been discovered. In many situations, the extracted patterns are highly private and it should not be disclosed. In order to maintain the secrecy of data,
there is in need of several techniques and algorithms for modifying the original data in order to limit the extraction of confidential patterns. There have been two types of privacy in data mining. The first type of privacy is that the data is altered so that the mining result will preserve certain privacy. The second type of privacy is that the data is manipulated so that the mining result is not affected or minimally affected. The aim of privacy preserving data mining researchers is to develop data mining techniques that could be
applied on data bases without violating the privacy of individuals. Many techniques for privacy preserving data mining have come up over the last decade. Some of them are statistical, cryptographic, randomization methods, k-anonymity model, l-diversity and etc. In this work, we propose a new perturbative masking technique known as data transformation technique can be used for protecting the sensitive information. An
experimental result shows that the proposed technique gives the better result compared with the existing technique.
Advanced Computing: An International Journal (ACIJ) acijjournal
Advanced Computing: An International Journal (ACIJ) is a bi monthly open access peer-reviewed journal that publishes articles which contribute new results in all areas of the advanced computing. The journal focuses on all technical and practical aspects of high performance computing, green computing, pervasive computing, cloud computing etc. The goal of this journal is to bring together researchers and practitioners from academia and industry to focus on understanding advances in computing and establishing new collaborations in these areas.
E-Maintenance: Impact Over Industrial Processes, Its Dimensions & Principlesacijjournal
During the course of the industrial 4.0 era, companies have been exponentially developed and have
digitized almost the whole business system to stick to their performance targets and to keep or to even
enlarge their market share. Maintenance function has obviously followed the trend as it’s considered one
of the most important processes in every enterprise as it impacts a group of the most critical performance
indicators such as: cost, reliability, availability, safety and productivity. E-maintenance emerged in early
2000 and now is a common term in maintenance literature representing the digitalized side of maintenance
whereby assets are monitored and controlled over the internet. According to literature, e-maintenance has
a remarkable impact on maintenance KPIs and aims at ambitious objectives like zero-downtime.
10th International Conference on Software Engineering and Applications (SEAPP...acijjournal
10th International Conference on Software Engineering and Applications (SEAPP 2021) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of Software Engineering and Applications. The goal of this Conference is to bring together researchers and practitioners from academia and industry to focus on understanding Modern software engineering concepts and establishing new collaborations in these areas.
10th International conference on Parallel, Distributed Computing and Applicat...acijjournal
The 10th International Conference on Parallel, Distributed Computing and Applications (IPDCA 2021) will take place April 24-25, 2021 in Copenhagen, Denmark. The conference aims to provide a forum for researchers and industry professionals to share knowledge on parallel and distributed computing. Authors are invited to submit original papers by April 3, 2021 on topics including algorithms, bioinformatics, computer networks, cyber security, and wireless networks. Accepted papers will be published in the conference proceedings and may also be published in related journals.
DETECTION OF FORGERY AND FABRICATION IN PASSPORTS AND VISAS USING CRYPTOGRAPH...acijjournal
In this paper, we present a novel solution to detect forgery and fabrication in passports and visas using
cryptography and QR codes. The solution requires that the passport and visa issuing authorities obtain a
cryptographic key pair and publish their public key on their website. Further they are required to encrypt
the passport or visa information with their private key, encode the ciphertext in a QR code and print it on
the passport or visa they issue to the applicant.
The issuing authorities are also required to create a mobile or desktop QR code scanning app and place it
for download on their website or Google Play Store and iPhone App Store. Any individual or immigration
authority that needs to check the passport or visa for forgery and fabrication can scan its QR code, which
will decrypt the ciphertext encoded in the QR code using the public key stored in the app memory and
displays the passport or visa information on the app screen. The details on the app screen can be
compared with the actual details printed on the passport or visa. Any mismatch between the two is a clear
indication of forgery or fabrication.
Discussed the need for a universal desktop and mobile app that can be used by immigration authorities and
consulates all over the world to enable fast checking of passports and visas at ports of entry for forgery
and fabrication.
Detection of Forgery and Fabrication in Passports and Visas Using Cryptograph...acijjournal
In this paper, wepresenta novel solution to detect forgery and fabrication in passports and visas using cryptography and QR codes. The solution requires that the passport and visa issuing authorities obtain a cryptographic key pair and publish their public key on their website. Further they are required to encrypt the passport or visa information with their private key, encode the ciphertext in a QR code and print it on the passport or visa they issue to the applicant.
The issuing authorities are also required to create a mobile or desktop QR code scanning app and place it for download on their website or Google Play Store and iPhone App Store. Any individual or immigration authority that needs to check the passport or visa for forgery and fabrication can scan its QR code, which will decrypt the ciphertext encoded in the QR code using the public key stored in the app memory and displays the passport or visa information on the app screen. The details on the app screen can be compared with the actual details printed on the passport or visa. Any mismatch between the two is a clear indication of forgery or fabrication.
Discussed the need for a universal desktop and mobile app that can be used by immigration authorities and consulates all over the world to enable fast checking of passports and visas at ports of entry for forgery and fabrication.
A review on techniques and modelling methodologies used for checking electrom...nooriasukmaningtyas
The proper function of the integrated circuit (IC) in an inhibiting electromagnetic environment has always been a serious concern throughout the decades of revolution in the world of electronics, from disjunct devices to today’s integrated circuit technology, where billions of transistors are combined on a single chip. The automotive industry and smart vehicles in particular, are confronting design issues such as being prone to electromagnetic interference (EMI). Electronic control devices calculate incorrect outputs because of EMI and sensors give misleading values which can prove fatal in case of automotives. In this paper, the authors have non exhaustively tried to review research work concerned with the investigation of EMI in ICs and prediction of this EMI using various modelling methodologies and measurement setups.
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...University of Maribor
Slides from talk presenting:
Aleš Zamuda: Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapter and Networking.
Presentation at IcETRAN 2024 session:
"Inter-Society Networking Panel GRSS/MTT-S/CIS
Panel Session: Promoting Connection and Cooperation"
IEEE Slovenia GRSS
IEEE Serbia and Montenegro MTT-S
IEEE Slovenia CIS
11TH INTERNATIONAL CONFERENCE ON ELECTRICAL, ELECTRONIC AND COMPUTING ENGINEERING
3-6 June 2024, Niš, Serbia
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesChristina Lin
Traditionally, dealing with real-time data pipelines has involved significant overhead, even for straightforward tasks like data transformation or masking. However, in this talk, we’ll venture into the dynamic realm of WebAssembly (WASM) and discover how it can revolutionize the creation of stateless streaming pipelines within a Kafka (Redpanda) broker. These pipelines are adept at managing low-latency, high-data-volume scenarios.
ACEP Magazine edition 4th launched on 05.06.2024Rahul
This document provides information about the third edition of the magazine "Sthapatya" published by the Association of Civil Engineers (Practicing) Aurangabad. It includes messages from current and past presidents of ACEP, memories and photos from past ACEP events, information on life time achievement awards given by ACEP, and a technical article on concrete maintenance, repairs and strengthening. The document highlights activities of ACEP and provides a technical educational article for members.
Comparative analysis between traditional aquaponics and reconstructed aquapon...bijceesjournal
The aquaponic system of planting is a method that does not require soil usage. It is a method that only needs water, fish, lava rocks (a substitute for soil), and plants. Aquaponic systems are sustainable and environmentally friendly. Its use not only helps to plant in small spaces but also helps reduce artificial chemical use and minimizes excess water use, as aquaponics consumes 90% less water than soil-based gardening. The study applied a descriptive and experimental design to assess and compare conventional and reconstructed aquaponic methods for reproducing tomatoes. The researchers created an observation checklist to determine the significant factors of the study. The study aims to determine the significant difference between traditional aquaponics and reconstructed aquaponics systems propagating tomatoes in terms of height, weight, girth, and number of fruits. The reconstructed aquaponics system’s higher growth yield results in a much more nourished crop than the traditional aquaponics system. It is superior in its number of fruits, height, weight, and girth measurement. Moreover, the reconstructed aquaponics system is proven to eliminate all the hindrances present in the traditional aquaponics system, which are overcrowding of fish, algae growth, pest problems, contaminated water, and dead fish.
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsVictor Morales
K8sGPT is a tool that analyzes and diagnoses Kubernetes clusters. This presentation was used to share the requirements and dependencies to deploy K8sGPT in a local environment.
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
RSA SIGNATURE: BEHIND THE SCENES
1. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
DOI : 10.5121/acij.2013.4203 27
RSA SIGNATURE: BEHIND THE SCENES
Dragan Vidakovic1
, Dusko Parezanovic1
, Olivera Nikolic2
and Jelena Kaljevic2
1
Gimnazija Ivanjica, Serbia
2
Faculty of Business Valjevo, Singidunum University Belgrade, Serbia
dragan.vidakovic@open.telekom.rs
infomat@open.telekom.rs
{onikolic,jkaljevic}@singidunum.ac.rs
ABSTRACT
In this paper, we present a complete digital signature message stream, just the way the RSA digital
signature scheme does it. We will focus on the operations with large numbers due to the fact that operating
with large numbers is the essence of RSA that cannot be understood by the usual illustrative examples with
small numbers[1].
KEYWORDS
Cryptography, Data Integrity, Digital Signature, Example
1. INTRODUCTION
The idea of RSA is based on the belief that it is difficult to factor the number that is the product
of two large prime numbers. Because of that it is necessary to develop the arithmetic of large
numbers operations, as well as to encode the algorithm for number primality test, a hash function
and many more auxiliary functions that are necessary for developing of the own digital signature
software[4].
Many people have heard about a digital signature and read a notice saying that a document is
digitally signed, but few of them have a real idea of what a digital signature is and how it looks
like.
Below, we will present in detail how to generate a digital signature. We are sure that this will be
an inspiring step for many people to try to develop their own tools for the protection of their data
integrity.
2. THE RSA SIGNATURE SCHEME
In this paragraph, we will recall the steps that are necessary for the RSA scheme [2][3].
Algorithm Key generation for the RSA signature scheme
SUMMARY: each entity creates an RSA public key and a corresponding private key.
2. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
28
Each entity A should do the following:
1. Generate two large distinct random primes p and q, each roughly the same size (see
x11.3.2).
2. Compute n = pq and = (p − 1)(q − 1).
3. Select a random integer e, 1 < e < such that gcd(e, ) = 1.
4. Use the extended Euclidean algorithm ([2]) to compute the unique integer
d, 1 < d < , such that ed ≡1 (mod )
5. A’s public key is (n; e); A’s private key is d
Algorithm RSA signature generation and verification
SUMMARY: entity A signs a message m . Any entity B can verify A’s signature and
recover the message m from the signature.
1. Signature generation. Entity A should do the following:
(a) Compute m’ = R(m), an integer in the range [0; n − 1].
(b) Compute s = (m’)d
mod n.
(c) A’s signature for m is s.
2. Verification. To verify A’s signature s and recover the message m, B should:
(a) Obtain A’s authentic public key (n; e).
(b) Compute m’= se
mod n.
(c) Verify that m’ R; if not, reject the signature.
(d) Recover m = R−1(m’).
3. PREPARATORY STEP
In order to sign a message, we need to prepare many functions. Since Hash value of the message
is central in the digital signature, we consider it is very important that we have a software for
finding hash value.
In this paragraph, we will show the algotithm and code for SHA-1.
3.1. SECURE HASH ALGORITHM (SHA-1)
In this paragraph we specify SHA-1 [2], for several reasons: Because of the digital signature, to
see how seem complicated and daunting and in the end because we can see how it can be solved
by simply tools such as Delphi 7 console application.
INPUT: bitstring x of bitlength b≥0.
OUTPUT: 160-bit hash-code of x.
1. Definition of constans. Define a fifth (32-bit initial chaining values) IV to match those in
MD4: h5 = 0xc3d2e1f0. h5 = 0xc3d2e1f0.
Define per-round integer additive constants: y1 = 0x5a827999, y2 = 0x6ed9eba1,
y3 = 0x8f1bbcdc, y4 = 0xca62c1d6. (No order for accessing source words, or specification
of bit positions for left shifts is required.)
3. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
29
2. Overall preprocessing. Pad as in MD4, except the final two 32-bit words specifying
the bitlength b is appended with most significant word preceding least significant.
As in MD4, the formatted input is 16m 32-bit words: x0x1 … x16m−1. Initialize
chaining variables: (H1;H2;H3;H4;H5) ←(h1; h2; h3; h4; h5).
3. Processing. For each i from 0 to m − 1, copy the ith
block of sixteen 32-bit words
into temporary storage: X[j] ← x16i+j ; 0≤ j ≤ 15, and process these as below in
four 20-step rounds before updating the chaining variables
(expand 16-word block into 80-word block; let Xj denote X[j])
for j from 16 to 79, Xj ((Xj-3(Xj-8 ⊕ Xj-14 ⊕ Xj-16)↵1).
(initialize working variables) (A, B, C, D, E) (H1, H2, H3, H4, H5).
(Round 1) For j from 0 to 19 do the following:
t ((A↵5) + f(B, C, D) + E + Xj + y1),
(A, B, C, D, E) (t, A, B↵30, C, D).
(Round 2) For j from 20 to 39 do the following
t ((A↵5) + h(B, C, D) + E + Xj + y2).
(A, B, C, D, E) (t, A, B↵30, C, D).
(Round 3) For j from 40 to 59 do the following:
t ((A↵5) + g(B,C,D) + E + Xj + y3)
(A, B, C, D, E) (t, A, B↵30, C, D).
(Round 4) For j from 60 to 79 do the following:
t ((A↵5) + h(B, C, D) + E + Xj + y4).
(A, B, C, D, E) (t, A, B↵30, C, D).
(update chaining values)
(H1, H2, H3, H4, H5) (H1 + A, H2 + B, H3 + C, H4 + D, H5 + E).
4. Completion. The hash-value is: H1 & H2 & H3 & H4 & H5.
(with first and last bytes the high- and low-order bytes of H1, H5, respectively)
Where:
& : concatenation of strings
+ : addition modulo 232
f(u,v,w) = uv ∨ u’w
g(u,v,w) = uv ∨ uw ∨ vw
h(u,v,w) = u ⊕ v ⊕ w
uv: and
u’ : complement
u ∨ v : or
⊕: exclusive or
u ↵ s : rotation to the left for s position
(X1, . . . , Xj) ← (Y1, . . . , Yj) : simultaneous assignment (Xi ← Yi).
4. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
30
3.2. CODE FOR SHA-1
In this paragraph, we will encode upper algorithm. We will use console application Delphi 7.
PROGRAM SHA_1;
{$APPTYPE CONSOLE}
var c1: char;
k,i,j,l,duz,duz1,m,I1,I2,I3,I4:integer;
a:array[1..8] of integer;
a1,a2:array[1..32] of integer;
h1,h2,h3,h4,h5,y1,y2,y3,y4,hh1,hh2,hh3,hh4,hh5,p:array [0..31] of integer;
aa,bb,cc,dd,ee,pp,qq,rr,tt,ss,nn,mm:array[0..31] of integer;
pom:array[0..35] of integer;
x:array[0..79,0..31] of integer;
f,g:file of integer;
procedure dodeli(var a:array of integer;b:array of integer);
var i:integer;
begin
for i:=0 to 31 do a[i]:=b[i];
end;
procedure rot(var a:array of integer;t:integer);
var i,k,l:integer;
begin
for i:=1 to t do
begin
k:=a[0];
for l:=0 to 30 do a[l]:=a[l+1];
a[31]:=k;
end;
end;
procedure kom(var a:array of integer);
var i,j:integer;
begin
for i:=0 to 31 do
if a[i]=0 then a[i]:=1
else a[i]:=0;
end;
procedure fi(u,v,w:array of integer;var t:array of integer);
var i,j:integer;
p:array[0..31] of integer;
begin
for i:=0 to 31 do v[i]:=v[i] and u[i];
kom(u);
for i:=0 to 31 do t[i]:=v[i] or (u[i] and w[i]);
end;
procedure gi(u,v,w:array of integer;var t:array of integer);
var i,j:integer;
5. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
31
begin
for i:=0 to 31 do t[i]:=(u[i] and v[i]) or (u[i] and w[i]) or (v[i] and w[i]);
end;
procedure hi(u,v,w:array of integer;var t:array of integer);
var i,j:integer;
begin
for i:=0 to 31 do t[i]:=(u[i] xor v[i]) xor w[i];
end;
procedure saberi(a,b:array of integer;var w:array of integer);
var c:integer;
begin
c:=0;
for i:=31 downto 0 do
begin
w[i]:=(a[i]+b[i]+c) mod 2;
if (a[i]+b[i]+c)<2 then c:=0
else c:=1;
end;
end;
procedure ses(a,b,c,d:integer);
var s:integer;
begin
s:=0;
s:=a*8+b*4+c*2+d;
if s=0 then write('0');if s=1 then write('1');if s=2 then write('2');
if s=3 then write('3');if s=4 then write('4');if s=5 then write('5');
if s=6 then write('6');if s=7 then write('7');if s=8 then write('8');
if s=9 then write('9');if s=10 then write('a');if s=11 then write('b');
if s=12 then write('c');if s=13 then write('d');if s=14 then write('e');
if s=15 then write('f');
end;
begin
writeln;
writeln('Type your message to 147 symbols- because we use EOLN-Enter. For larger messages
we can use files');
assign(g,'por.dat');
rewrite(g);
duz:=0;
writeln;
write('Input message:');
while not eoln do
begin
read(c1);
k:=ord(c1);
for i:=1 to 8 do a[i]:=0;
i:=1;
while k<>0 do
begin
6. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
32
a[i]:=k mod 2;
k:=k div 2;
i:=i+1;
end;
duz:=duz+8;
for I:=8 downto 1 do write(g,A[I]);
end;
{Padding}
duz1:=duz;
k:=1;
l:=0;
write(g,k);
duz:=duz+1;
if duz mod 512=0 then
begin
for i:=1 to 512-64 do write(g,l);
duz:=duz+512-64;
end
else
begin
k:=duz mod 512;
for i:=1 to 512-k-64 do write(g,l);
duz:=duz+512-k-64;
end;
i:=1;
while duz1<>0 do
begin
if i<=32 then
begin
a1[i]:=duz1 mod 2;
duz1:=duz1 div 2
end
else
begin
a2[i]:=duz1 mod 2;
duz1:=duz1 div 2;
end;
i:=i+1;
end;
for i:=32 downto 1 do write(g,a2[i]);
for i:=32 downto 1 do write(g,a1[i]);
{big-endian }
{end of pading}
{Defining Constants}
{ Constants do not have to recalculate}
h1[31]:=1;h1[30]:=0;h1[29]:=0;h1[28]:=0; h1[27]:=0;h1[26]:=0;h1[25]:=0;h1[24]:=0;
h1[23]:=1;h1[22]:=1;h1[21]:=0;h1[20]:=0; h1[19]:=0;h1[18]:=1;h1[17]:=0;h1[16]:=0;
h1[15]:=1;h1[14]:=0;h1[13]:=1;h1[12]:=0; h1[11]:=0;h1[10]:=0;h1[9]:=1;h1[8]:=0;
8. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
34
begin
for j:=0 to 15 do
begin
for l:=0 to 31 do
read(g,x[j,l]);
end;
for j:=16 to 79 do
begin
for l:=0 to 31 do
p[l]:=(((x[j-3,l] xor x[j-8,l]) xor x[j-14,l]) xor x[j-16,l]);
l:=1;
rot(p,l);
for l:=0 to 31 do x[j,l]:=p[l];
end;
i:=i+1;
end;
{initialize working variables}
dodeli(aa,hh1);dodeli(bb,hh2);dodeli(cc,hh3); dodeli(dd,hh4);dodeli(ee,hh5);
for j:=0 to 19 do
begin
dodeli(pp,aa); dodeli(ss,bb);
dodeli(nn,cc); dodeli(mm,dd);
for l:=0 to 31 do qq[l]:=x[j,l];
fi(bb,cc,dd,rr);
rot(aa,5);
saberi(aa,rr,pom);
saberi(pom,ee,pom);
saberi(pom,qq,pom);
saberi(pom,y1,pom);
for l:=0 to 31 do tt[l]:=pom[l];
dodeli(aa,tt);dodeli(bb,pp);
rot(ss,30);
dodeli(cc,ss);
dodeli(dd,nn);dodeli(ee,mm);
end; writeln;
for j:=20 to 39 do
begin
dodeli(pp,aa);dodeli(ss,bb);
dodeli(nn,cc);
dodeli(mm,dd);
for l:=0 to 31 do qq[l]:=x[j,l];
hi(bb,cc,dd,rr);
rot(aa,5);
saberi(aa,rr,pom);
saberi(pom,ee,pom);
saberi(pom,qq,pom);
saberi(pom,y2,pom);
for l:=0 to 31 do tt[l]:=pom[l];
9. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
35
dodeli(aa,tt);
dodeli(bb,pp);rot(ss,30);dodeli(cc,ss);dodeli(dd,nn); dodeli(ee,mm);
end;
for j:=40 to 59 do
begin
dodeli(pp,aa);dodeli(ss,bb);
dodeli(nn,cc); dodeli(mm,dd);
for l:=0 to 31 do qq[l]:=x[j,l];
gi(bb,cc,dd,rr);
rot(aa,5);
saberi(aa,rr,pom);
saberi(pom,ee,pom);
saberi(pom,qq,pom);
saberi(pom,y3,pom);
for l:=0 to 31 do tt[l]:=pom[l];
dodeli(aa,tt);
dodeli(bb,pp);rot(ss,30);dodeli(cc,ss);dodeli(dd,nn); dodeli(ee,mm);
end;
for j:=60 to 79 do
begin
dodeli(pp,aa);dodeli(ss,bb);
dodeli(nn,cc); dodeli(mm,dd);
for l:=0 to 31 do qq[l]:=x[j,l];
hi(bb,cc,dd,rr);
rot(aa,5);
saberi(aa,rr,pom);
saberi(pom,ee,pom);
saberi(pom,qq,pom);
saberi(pom,y4,pom);
for l:=0 to 31 do tt[l]:=pom[l];
dodeli(aa,tt);
dodeli(bb,pp);rot(ss,30);dodeli(cc,ss);dodeli(dd,nn); dodeli(ee,mm); end;
saberi(hh1,aa,pom);
for l:=0 to 31 do hh1[l]:=pom[l] ;
saberi(hh2,bb,pom);
for l:=0 to 31 do hh2[l]:=pom[l] ;
saberi(hh3,cc,pom);
for l:=0 to 31 do hh3[l]:=pom[l] ;
saberi(hh4,dd,pom);
for l:=0 to 31 do hh4[l]:=pom[l] ;
saberi(hh5,ee,pom);
for l:=0 to 31 do hh5[l]:=pom[l] ;
writeln('Binary Hash value:');
writeln;
for l:=0 to 31 do write(hh1[l]);
for l:=0 to 31 do write(hh2[l]);
for l:=0 to 31 do write(hh3[l]);
for l:=0 to 31 do write(hh4[l]);
10. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
36
for l:=0 to 31 do write(hh5[l]);
writeln;
assign(f,'hash.dat');
rewrite(f);
writeln('hex hash value:'); writeln;
for l:=31 downto 0 do write(f,hh5[l]);
for l:=31 downto 0 do write(f,hh4[l]);
for l:=31 downto 0 do write(f,hh3[l]);
for l:=31 downto 0 do write(f,hh2[l]);
for l:=31 downto 0 do write(f,hh1[l]);
for l:=0 to 7 do
begin
i1:=hh1[4*l];i2:=hh1[4*l+1];i3:=hh1[4*l+2]; i4:=hh1[4*l+3];
ses(i1,i2,i3,i4);
end;
for l:=0 to 7 do
begin
i1:=hh2[4*l];i2:=hh2[4*l+1];i3:=hh2[4*l+2]; i4:=hh2[4*l+3];
ses(i1,i2,i3,i4);
end;
for l:=0 to 7 do
begin
i1:=hh3[4*l];i2:=hh3[4*l+1];i3:=hh3[4*l+2]; i4:=hh3[4*l+3];
ses(i1,i2,i3,i4);
end;
for l:=0 to 7 do
begin
i1:=hh4[4*l];i2:=hh4[4*l+1];i3:=hh4[4*l+2]; i4:=hh4[4*l+3];
ses(i1,i2,i3,i4);
end;
for l:=0 to 7 do
begin
i1:=hh5[4*l];i2:=hh5[4*l+1];i3:=hh5[4*l+2]; i4:=hh5[4*l+3];
ses(i1,i2,i3,i4);
end; readln; readln;
end.
3.3. EXAMPLES OF HASH VALUES
The result of this function is the 160 series of zeros and ones whose order depends on the
message.
Examle 1: Using this software, we will determine the hash value of the message: Advanced
Computing: An International Journal (ACIJ)
Output to the screen:
Input message:Advanced Computing: An International Journal (ACIJ)
11. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
37
Binary Hash value:
101110111000000011110010011000000011110110000010010100111110010011110000110111
00
001101001111110101111010101001001101101001010001010001010010001101111001100001
01
hex hash value:
bb80f2603d8253e4f0dc34fd7aa4da5145237985
Example 2. If we left out (:) in message: Advanced Computing: An International Journal (ACIJ)
we get output to the screen:
Input message:Advanced Computing An International Journal (ACIJ)
Binary Hash value:
001000101000000011101010111001110111100110110111100001011101100000101111010000
00
010001110110000111011001001100011101110100010101000101001011000111000010100100
10
hex hash value:
2280eae779b785d82f404761d931dd1514b1c292
The omission of a single-letter hash value has undergone drastic changes. Undermined the
integrity of the message.
4. HOW DIGITAL SIGNATURE LOOK IN REALITY
In this paragraph, we will follow the steps of a message signing by the own software. It can be
found in [4].
The first step of a scheme is to detect two large (probably) prime numbers p and q, of
approximately the same number of digits. In this paper, we choose two 512-bit numbers that we
got by using our software realization of the Miler-Rabin algorithm.
Detected (probably) prime numbers are:
p:
100000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000010000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000100000
12. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
38
000000000000000000000100000000000000000000000000000000000000000000000001000000
00000000000000000000000000000000010110011101
q:
100000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000010000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000100000
000000000000000000000100000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000011110000011
Using our software from [3], we compute n= p*q as well as = (p-1)*(q-1)
n=pq:
100000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000100000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000001000000
000000000000000000001000000000000000000000000000000000000000000000000001000000
000000000000000000000000000000001101001000010000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000001000000000000000000000000001000000000000000000000000000000000000
000000000000001000000000000000000000000000000000000001101001000001000000000000
000000000000010000000000000000000000000001000000000000000000000010000000000000
000000000000010000000000011010010000000000000000000011010010000000000000000000
000000000000000000000000011110000011000000000000000000000000000010101000101010
01010111.
φ =(p-1)(q-1):
100000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000100000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000001000000
000000000000000000001000000000000000000000000000000000000000000000000001000000
000000000000000000000000000000001101000111101000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000100000000000000000000000000100000000000000000000000000000000000
000000000000000100000000000000000000000000000000000000110100011110100000000000
000000000000001000000000000000000000000000100000000000000000000001000000000000
000000000000001000000000001101000111100000000000000001101000111100000000000000
000000000000000000000000001111000001000000000000000000000000000001010100001110
100111000.
Then, we choose the public key, let’s assume e: 111, and using the same software we solve the
equation e*d≡ 1 (mod φ), or cryptographically said, we compute the private key[4][6][7].
13. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
39
d:
100100100100100100100100100100100100100100100100100100100100100100100100100100
100100100100100100100100100100100100100100100100100100100100100100100100100100
100100100100100100100100100100100100100100100100100100100100100100100100100100
100100100100100100101001001001001001001001001001001001001001001001001001001001
001001001001001001001001001001001001001001001001001001001001001001001010010010
010010010010010010011011011011011011011011011011011011011011011011011100100100
100100100100100100100100100100110011100100001001001001001001001001001001001001
001001001001001001001001001001001001001001001001001001001001001001001001001001
001001001001001101101101101101101101101110010010010010010010010010010010010010
010010010010010110110110110110110110110110110110110111110010110101001001001001
001001001001010010010010010010010010010010110110110110110110111000000000000000
000000000000001001001001011000001000100100100100100110011100100000000000000000
000000000000000000000000010001001010010010010010010010010010010011110010100010
111111.
Let “Elektrotehnicki fakultet u Beogradu” be the message we should sign. Its hash value is:
m:
00111111000111001010001001000111101110111010001100111111010000111100111110110001100001
1000110111010010010000100010100001001101110010010011100000101101000011011
The digital signature of a message m hash value is s= md
mod n.
s:
10111011000110000000011100010001100101111111010011100110101001100101000010111001010000
01100101101011101100011100001011111111100000100100011000001010001110111110000100100100
00011100001101000100011100011110000101101010100110100100111111000111000110000001110011
11010101010000111111001011011111110100011100110010110010011000110011100000010111100110
00010111100000101001011011100010000011000101000011000101100011011011100011011101101101
00111110010100001001011001110011001010010100100011010001000011111101011001110011010100
11011100001100111111101110100101110100010110101111101100001011100001010001010001011101
11000100110100011000110000110001010000100010110101011100010001001100010111011111011110
01000001000010111000001111011011000000001111100001110011110101110111111011111011000000
11111100010011010000100111111110111010101011110010110110011111111011110110111110110110
00011011001100111101100011101110110111100001011011000010000000111101010101000011010101
1001011100100001010101010100110011010111110110101101110111110110000110101001.
If we check it, we get m’= se
mod n.
m’
:
00111111000111001010001001000111101110111010001100111111010000111100111110110001100001
10001101110100100100001000101000010011011100100100111000001011010000110110.
By this, we are sure that using the previous operation, we really get the same value (m=m’). it
means that the data integrity is preserved and that the owner of a private key is the one who
signed the message.
14. Advanced Computing: An International Journal ( ACIJ ), Vol.4, No.2, March 2013
40
5. FUTURE WORK
In the arguments for and against in a trial of strength of ECC (Elliptic Curve Cryptography)
and RSA, the simple fact that they are performed by the same tools made for operations with
large numbers, is usually overlooked. Mathematical bases of RSA and ECC are completely
different [2] [8], but they need the same operations: addition, subtraction, multiplication, division,
finding the remainder, calculating d from the equation e*d ≡ 1 (mod p) for fixed values of e and
p, SHA-1 and more other joint auxiliary operations needed for the realization of a digital
signature in both schemes. Therefore, ECC is our next goal-because we have the tools.
6. CONCLUSION
We believe that each country must stimulate young people’s interest in cryptography, because we
doubt that our secret data can be protected using someone else’s software.
Of course, it is very difficult to develop our own protection mechanisms, but we think it is far
better to protect data using our own mechanisms first, and then, thus modified, leave them to
someone else’s software, than to allow the original data be protected by somebody else’s
mechanisms, which is a logical nonsense.
That is the reason why we always insist on more our own softwares and a greater interest in
cryptography, which seems itself (in case it wasn’t brought closer to a reader) pretty cryptic and
bouncing[5]. So, this work is primarily addressed to young researches as an incentive to try to
develop their own tools for data protection. Those tools do not have to be flawless, they may be
far below the level of the tools found on the market. However, they should be good enough for
the beginning of a hard work that would lead researches to some great commercial solutions.
REFERENCES
[1] D.Vidakovic, O. Nikolic, D. Parezanovic, “Acceleration Detection of Large (Probably) Prime
Numbers”, International Journal of UbiComp (IJU), Vol.4, No.1, January 2013
[2] A. Menezes, P.C. van Oorschot, S. Vanstone, Handbook of Applied Cryptography, CRC Press, New
York, 1997.
[3] B. Schneier, Applied Cryptography, John Wiley & Sons, New York, 1996.
[4] D. Vidaković, “Analysis and implementation of asymmetric algorithms for data secrecy and integrity
protection”, Master Thesis (mentor Jovan Golic), Faculty of Electrical Engineering, Belgrade 1999.
[5] D. Vidakovic, D. Simic, “A Novel Approach To Building Secure Systems“, ARES 2007, Vienna,
Austria, pp 1074-1084.
[6] C. Zhang, “An improved binary algorithm for RSA”, Computers and Mathematics with Applications,
25:6 (1993), 15–24.
[7] S.-M. Hong, S.-Y. OH, and H. Yoon, “New modular multiplication algorithms for fast modular
exponentiation”, Advances in Cryptology–EUROCRYPT ’96 (LNCS 1070), 166–177, 1996
[8] N. Koblitz, “Elliptic Curve Cryptosystems”, Mathematics of Computations, 48, pp. 203-209, 1987.