AES Algorithm S Box uniqueness - aes

This is regarding AES algorithm.
Suppose i have implemented a AES algorithm and encrypt data using my algorithm. Now suppose somebody else also has implemented the same AES algorithm (128 bit). Now if i encrypt a data using my algorithm is it possible for decrypting the data and getting back the original data using the second algorithm that the other person has developed. What is the underlying difference in the algorithms.
Is it something related to S-BOX
Thanks

AES is a specified algorithm. If you have two different implementations they both should be able to encrypt and decrypt without any difference. If there is a difference then at least one of them wouldn't be AES.
For such things you
Either assume all implementations of an encryption algorithm you want to be interoperable with are correct, including yours.
Or don't reinvent the wheel unless you actually want to learn something about wheels.

Related

Why does Swift use Linear probing on it's Dictionaries?

I was studying Computer Science when I found myself upon a question which I cannot get an answer to. Here's my train of thoughts so far:
Hash tables using open addressing need a probing function to resolve collisions, such as linear / quadratic probing, or double hashing.
Linear probing is prone to primary clustering on the hash tables which could lead to degraded performance (referencing MIT's algorithm lecture)
Found Swift's standard library uses Linear probing for it's Hash table implemention Dictionary (source code)
Then also learned that actually linear probing could be more performant(not sure) because of less cache misses (Wikipedia on Linear probing)
Linear probing can provide high performance because of its good locality of reference, but is more sensitive to the quality of its hash function than some other collision resolution schemes.
But other laguages like Golang seems to use quadratic probing on it's hash tables
So I'm confused on what's a good probing strategy on hash tables now and why the Swift team went ahead and used linear probing on it's Dictionaries. Any thoughts would be welcome. Thanks.

How are embeddings used for fully homomorphic encryption?

How exactly do you perform one way encryption using embeddings from a deep neural network?
Fully homomorphic encryption (FHE) benefits society by ensuring full privacy. The Private Identity recognition algorithm uses FHE to enable encrypted match and search operations on an encrypted dataset without any requirement to store, transmit or use plaintext biometrics or biometric templates. The biometric data is irreversibly anonymized using a 1-way cryptographic hash algorithm and then discarded without the data ever leaving the local device.
My question is how exactly does this use embeddings to accomplish this? Where do embeddings come in?
An embedding is a set of floating point numbers taken from the N-1 layer of a softmax Deep Neural Network (DNN). Initially, the community used DNNs to get a resulting class (softmax), but an interesting property turned out to be the values at the layer before the softamx layer.
These values have interesting properties. They may function as a 1-way encryption. They also closely relate to the initial input. In a geometric distance (cosine, Euclidean) values are close to similar inputs. This means two pictures of my face will be closer (geometrically) than a picture of two different people This property allows operations on the resulting encryption.
One of the operations allowed is match. In the encrypted space, using the distance properties, we can match using only the embedding. Since we are only working in the encrypted space, we have an implementation of FHE and the embedding comes from the DNN.
Subsequently, we have found that a second DNN allows the classification, but only using embeddings. We now have privacy and performance.

Why Ethernet is using CRC-32 and not CRC-32C?

It has being shown that CRC32C provides better results (an improve Hamming distance and a faster implementation) than CRC32. Why Ethernet is stil using the old CRC 32 and not CRC32C?
"Faster implementation" is not true for the hardware that is normally used to implement the data link layer.
You may be referring to the fact that one particular processor architecture, x86-64, has a CRC instruction that uses the CRC-32C polynomial. However the ARM architecture (aarch64) CRC instruction uses the CRC-32 polynomial. Go figure.
One could argue that yet another polynomial should be used, since Koopman has characterized the performance of many polynomials with better performance than either of the ones you mention. But none of that really matters since ...
All of the legacy hardware has to support the original CRC, and there is little motivation to provide an alternate CRC would use would need to somehow be negotiated between the transmitter and receiver. There is not a noticeable performance advantage for typical noise sources, which are rare single bit errors.

Why Geohash named `xxxhash` when it's actually an encoding algorithm?

A geohash is a convenient way of expressing a location (anywhere in the world) using a short alphanumeric string, with greater precision obtained with longer strings.
When I learn it the first time I was confused by its name. It's totally different to the other hashing algorithm, it keeps the information of the location. It's actually not a hashing algorithm but an encoding algorithm.
So how the algorithm named? Why it called Geohash?
Comments
To see the different between Encoding and Hashing you can click here: Encoding vs. Encryption vs. Hashing vs. Obfuscation
To see the Geohash algorithm in Java you can click here: Geohash Encoding and Decoding Algorithm

Combining BCrypt with another hashing algorithm

We are currently in the process of strengthening our password protection.
We have been doing a fair amount of reading on SHA-2, Bcrypt, PBKDF2, and Scrypt. That being said, we are not security experts or cryptographers, and a lot of the technical aspects of the subject matter goes over our heads.
At this point we are leaning toward implementing either PBKDF2 or Bcrypt.
However, we were curious as to whether or not there was a benefit to using a SHA-2 algorithm in concert with Bcrypt (it appears PBKDF2 already has to specify a hashing algorithm).
We had looked at the post:
https://security.stackexchange.com/questions/11552/would-it-make-sense-to-use-bcrypt-and-pbkdf2-together
But this is really more about using both Bcrypt and PBKDF2 together, and not a SHA-2.
Is there a benefit of leveraging a SHA-2 algorithm with Bcrypt? Or is it wasted effort/performance for no appreciable increase in actual security?
Thanks in advance for any insight anyone can provide.
pbr