CRYPTO NEWS

My function does not return a value when I use the Ganache provider

When I deploy the smart contract in the Remix VM my function returns a random number but when I use the Ganache provider my function returns nothing.

    // Initializing the state variable     uint randNonce = 0;          // Defining a function to generate a random number     function randMod() public     returns(uint, string memory) {         // increase nonce         randNonce++;      return (uint(keccak256(abi.encodePacked(block.difficulty, block.timestamp,randNonce))) % 100, "Hi random number" );     }``` 

Should we classify things such as LIONESS and Tor as cryptographic primitives?

Presuming (if we ought to?) that we classify instantiations of algorithms as primitives, https://cwe.mitre.org/data/definitions/1240.html Colloquially, one would say that AES (and sometimes AES-256) is the "cryptographic primitive," because it is the algorithm that realizes the concept of symmetric encryption (without modes of operation or other protocol related modifications). In practice, developers and architects typically refer::Listen

Presuming (if we ought to?) that we classify instantiations of algorithms as primitives,

https://cwe.mitre.org/data/definitions/1240.html

Colloquially, one would say that AES (and sometimes AES-256) is the "cryptographic
primitive," because it is the algorithm that realizes the concept of symmetric
encryption (without modes of operation or other protocol related modifications). In
practice, developers and architects typically refer to base cryptographic algorithms
(AES, SHA, etc.) as cryptographic primitives.

Rather than classifying the type of algorithm as the primitive,

https://developers.google.com/tink/design/primitives_and_interfaces#:~:text=and%20the%20Interface.-,Primitive,Tink%20requires%20of%20an%20Aead.

A primitive is a mathematical object corresponding to all algorithms performing some
task securely. For example, the AEAD primitive consists of all encryption algorithms
which satisfy the security properties which Tink requires of an Aead.

[…]

The usual way of thinking of primitives is to first define properties of the
cryptographic functions, and then simply considering the primitive to be all such
algorithms.

How should we classify things such as LIONESS and Tor?

LIONESS

LIONESS is a block cipher,

https://www.freehaven.net/anonbib/cache/DBLP:conf/sp/DanezisG09.pdf

a block cipher with a large block size (the size of the entire message), such as LIONESS [1].

Block ciphers are called cryptographic primitives; therefore, LIONESS ought to be considered one,

https://www.coursera.org/lecture/crypto/what-are-block-ciphers-t4JJr

We introduce a new primitive called a block cipher that will let us build more powerful forms of encryption.

Of note, LIONESS is made out of a stream cipher and a cryptographic hash function,

https://www.cl.cam.ac.uk/~rja14/Papers/bear-lion.pdf

One construction which has been missing so far is a means of building a block
cipher out of a stream cipher. In this paper, we show provably secure ways to
construct a block cipher from a stream cipher and a hash function.

Some people define a cryptographic primitive as a most basic building block of a cryptographic system,

https://semiengineering.com/lightweight-cryptography-for-the-ioe/

Briefly, cryptography primitives are the lowest level cryptography algorithms that serve as a base for cryptographic protocols and functions.

https://www.synopsys.com/blogs/software-security/cryptography-best-practices/

When creating cryptographic systems, designers use cryptographic primitives as their most basic building blocks.

That would leave the stream cipher and hash function as the primitives of LIONESS, but exclude LIONESS itself from being one.

Tor

It is called a protocol by the specification.

https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/tor-spec.txt

Tor Protocol Specification

According to NIST, this means it is higher level than a primitive.

https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-175Br1.pdf

A scheme is a higher-level construct than a primitive and a lower-level construct than a protocol.

Today, Tor slightly mixes traffic; therefore, it is properly considered a low latency mix network;

https://geti2p.net/en/comparison/tor

Tor and Onion Routing are both anonymizing proxy networks, allowing people to tunnel out through their low latency mix network.

however, mix networks are said by numerous sources to be cryptographic primitives,

https://www.webopedia.com/definitions/cryptographic-primitive/

COMMON CRYPTOGRAPHIC PRIMITIVES

[…]

Mix network: A routing protocol that creates hard-to-trace communications. A chain of
proxy servers encrypted using public-key cryptography are used to take in messages from > multiple senders, shuffle them, then send them back in random order to the next
destination.

which makes it ambiguous.

Summary

  1. Should we consider the type or the instantiation of an algorithm to be the primitive?
  2. Should we consider LIONESS to be a primitive? If not, what ought we call it?
  3. Should we consider Tor to be a primitive? If not, what ought we call it?

My function does not return a value when I use the Ganache provider

Shopping cart
There are no products in the cart!
Continue shopping
0