Finding the Purpose of Multiplicative Groups, within a Modulus

There exists a WiKiPedia article, which defines what a Multiplicative Group of Integers is, Modulo n. But even though the article is about 10 pages long (in my browser), it fails to explain in a common-sense way – at least that I can find at a glance – why the existence of these groups is important on a practical level.

I would paraphrase that the Multiplicative Group, consists of Integers within the Modulus, which have Multiplicative Inverses, and which are therefore also Coprime with the Modulus. While these two properties are equivalent, they are not in fact exactly the same property. But why is this combination of properties finally important, let’s say If we wanted to implement an encryption scheme, in which a base – representing a message – is to be raised to a 2048-bit long exponent, and if to do so a second time, is to reproduce the original message?

Essentially, we can multiply one integer by another, assuming they are both in the same modulus, and arrive at some numerical result when applying the remainder function on the product, even though one of the original integers was not coprime with the modulus. This is trivial, because of the way the remainder function has been defined. In other words, we could compute this:

(2 * 5) mod 10 = 0

There is a sticking point with this operation. Once the value zero has been computed, any further multiplication with zero, yield zero again. There is no magical reason why this would not be the case with modular multiplication. But there was once a (2) and a (5), which will never be recoverable in any specific way, from ( 0 mod 10 ). Not only that, but this loss of information does not take place all at once; this happens cumulatively. We could start with (7), which is coprime with the modulus, we could multiply it once by (2), and we could then multiply it again by (5), and again, we’d get zero:

C1 = (7 * 2) mod 10 = 4

T1 = (C1 * 5) mod 10 = 0 !

We can also observe, that just to perform a multiplication in which one parameter was not coprime, results in a product which is not so – in the above case, in ( 4 mod 10 ). Similarly:

C2 = (7 * 5) mod 10 = 5  (No obvious problem yet.)

T2 = (C2 * 2) mod 10 = 0  (Problem.)

Well, when we are exponentiating a number, we are essentially performing many multiplications on it. And then the cumulative result can easily be, that we cannot reproduce the original message, or even, that the message becomes zero !

Continue reading Finding the Purpose of Multiplicative Groups, within a Modulus

Browsing Android Files using Bluetooth

One of the casual uses of Bluetooth under Android, is just to pair devices with our Android (host) device, so that specific apps can use the paired (slave) device. This includes BT-headphones, and many other devices.

But then a slightly more advanced use for BT under Android could be, that we actually send files to a paired Android device. It’s casually possible to take two Android tablets, or a tablet and a phone, and to pair those with each other. After that, the way to ‘push’ a file to the paired device, from the originating device, is to open whichever app displays files – such as for example, the Gallery app, if users still have that installed, or a suitable file-manager app – and to tap on ‘Share’, and then select ‘Bluetooth’ as what to share the file to. Doing this should open a list of paired devices, one of which should be suitable to receive a pushed file in this way.

But then, some people would like to take Bluetooth file-sharing up another level. We can pair our Android device – such as our phone – with a Bluetooth-equipped, Linux computer, which may be a bit tricky in itself, because the GUI we usually use for that assumes some legacy form of pairing. But eventually, we can set up a pairing as described. What I need to do is select the option in my Linux-BT-pairing GUI, which requires me to enter the pass-code into the Linux-GUI, which my Android device next displays…

And then, a question which many users find asking themselves is, ‘Why can’t I obtain FTP-like browsing capability, from my Linux-computer, over the files on the phone? Am I not giving the correct commands, from my Linux-computer?’

Chances are high, that any user who wishes to do this, is already giving the correct commands from his or her Linux-computer…

(Updated 06/03/2018, 20h45 … )

Continue reading Browsing Android Files using Bluetooth