Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sepandhaghighi/integer-squaring
Integer Squaring Algorithm
https://github.com/sepandhaghighi/integer-squaring
algorithm cryptographic cryptography integer-arithmetic integer-squaring multiplication product-scanning squaring
Last synced: about 1 month ago
JSON representation
Integer Squaring Algorithm
- Host: GitHub
- URL: https://github.com/sepandhaghighi/integer-squaring
- Owner: sepandhaghighi
- Created: 2017-12-22T22:31:56.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-01-01T17:08:56.000Z (about 7 years ago)
- Last Synced: 2024-10-25T04:05:26.407Z (3 months ago)
- Topics: algorithm, cryptographic, cryptography, integer-arithmetic, integer-squaring, multiplication, product-scanning, squaring
- Language: Python
- Size: 1.78 MB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Integer Squaring & Integer Multiplication (by product scanning) Algorithm #
### Sepand Haghighi & Mohammad Abassi
### Cryptographic Engineering Course Seminar At [Sharif University Of Technology](http://www.sharif.ir/ "Sharif University Of Technology") (Winter 2017)
### Instructor : [Dr.Siavash Bayat-Sarmadi](http://sharif.edu/~sbayat/ "http://sharif.edu/~sbayat/")
### Book : Cryptographic Engineering (Serdar S¨ uer Erdem, Tuˇ grul Yanık, and C ¸ etin Kaya Koc)
[![Build Status](https://travis-ci.org/sepandhaghighi/Integer-Squaring.svg?branch=master)](https://travis-ci.org/sepandhaghighi/Integer-Squaring)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/0f5fc6d4f3e84a06b004a716dc1ece6e)](https://www.codacy.com/app/sepand-haghighi/Integer-Squaring?utm_source=github.com&utm_medium=referral&utm_content=sepandhaghighi/Integer-Squaring&utm_campaign=Badge_Grade)[Download Slides](files/Slides.pdf "Slides") (Format : PDF, Size : 1.1 MB)
----------
# Integer Multiplication
### Chapter : 5
### Page : 79
Fig1.Algorithm-2 Pseudocode
Fig2.Algorithm-2 Example
```
>>> IntegerMultiplication("1 1","1 1",Base=2)
>>> 1 0 0 1
```
Complexity : `3` additions, `2` data read (Inner Loop)# Integer Squaring
### Book : Cryptographic Engineering (Serdar S¨ uer Erdem, Tuˇ grul Yanık, and C ¸ etin Kaya Koc)
### Chapter : 5
### Page : 80
Fig3.Algorithm-3 Pseudocode
Fig4.Algorithm-3 Example
* It seems this algorithm is wrong and `(U,H,L)` should be set to zero after each iteration and add shifted `(U,H,L)` outside of the loop (modified in code)
```
>>> IntegerSquaring("1 1","1 1",Base=2)
>>> 1 1 0 1
```
Fig5.Algorithm-3(Modified) Pseudocode
Fig6.Algorithm-3(Modified) Example
```
>>> IntegerSquaringModified("1 1",Base=2)
>>> 1 0 0 1
```
Complexity : `3` additions, `2` data read (Inner Loop)# Run
1. Run `main.py` for automatic doctest --> `python main.py` or `python3 main.py`
2. Import `IntegerSquaring` and `IntegerMultiplication` and `IntegerSquaringModified` from `main.py` :
```
>>> from main import IntegerSquaring,IntegerMultiplication,IntegerSquaringModified
>>> IntegerSquaring("1 6",Base=10)
'3 8 6'
>>> IntegerSquaringModified("1 6",Base=10)
'2 5 6'
>>> IntegerMultiplication("1 6","1 6",Base=10)
'2 5 6'
```* Enter digits with one space, for example : `"31 12"` in base `32`