2019-03-25 12:03:09

by Alexandre Augusto

[permalink] [raw]
Subject: Information about HCI LE Rand command

Hello,

I would like to know, if possible, information about the bluez LE Rand
command (ocf 0x0018) at HCI code. How does it generate the number? Is
it vendor-specific (or secret)?


2019-03-25 12:23:57

by Emil Lenngren

[permalink] [raw]
Subject: Re: Information about HCI LE Rand command

Hi Alexandre,

Den mån 25 mars 2019 kl 13:03 skrev Alexandre Augusto
<[email protected]>:
>
> Hello,
>
> I would like to know, if possible, information about the bluez LE Rand
> command (ocf 0x0018) at HCI code. How does it generate the number? Is
> it vendor-specific (or secret)?

According to the Bluetooth core specification, it shall be a "A pseudo
random number generator compliant with [FIPS PUB 140-2]
(http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexc.pdf)"
which shall be seeded "with at least the minimum entropy required by
the pseudo random number generator". What algorithm each Bluetooth
controller actually uses is therefore vendor specific. I guess most
controllers will use some SHA-based or AES-based algorithm. Note that
it is not the host (BlueZ) that generates the number; it just asks the
controller to generate it for the host.

/Emil

2019-03-25 12:40:17

by Alexandre Augusto

[permalink] [raw]
Subject: Re: Information about HCI LE Rand command

Thanks Emil.

The reason I asked is that I am researching ways to provide that
"minimum entropy required", and I was not able to find details about
the number generation.

Best regards,
Alexandre Giron

Em seg, 25 de mar de 2019 às 09:23, Emil Lenngren
<[email protected]> escreveu:
>
> Hi Alexandre,
>
> Den mån 25 mars 2019 kl 13:03 skrev Alexandre Augusto
> <[email protected]>:
> >
> > Hello,
> >
> > I would like to know, if possible, information about the bluez LE Rand
> > command (ocf 0x0018) at HCI code. How does it generate the number? Is
> > it vendor-specific (or secret)?
>
> According to the Bluetooth core specification, it shall be a "A pseudo
> random number generator compliant with [FIPS PUB 140-2]
> (http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexc.pdf)"
> which shall be seeded "with at least the minimum entropy required by
> the pseudo random number generator". What algorithm each Bluetooth
> controller actually uses is therefore vendor specific. I guess most
> controllers will use some SHA-based or AES-based algorithm. Note that
> it is not the host (BlueZ) that generates the number; it just asks the
> controller to generate it for the host.
>
> /Emil



--
Alexandre Augusto Giron
Professor da UTFPR

2019-03-25 13:01:12

by Emil Lenngren

[permalink] [raw]
Subject: Re: Information about HCI LE Rand command

Den mån 25 mars 2019 kl 13:40 skrev Alexandre Augusto
<[email protected]>:
>
> Thanks Emil.
>
> The reason I asked is that I am researching ways to provide that
> "minimum entropy required", and I was not able to find details about
> the number generation.
>
> Best regards,
> Alexandre Giron
>
> Em seg, 25 de mar de 2019 às 09:23, Emil Lenngren
> <[email protected]> escreveu:
> >
> > Hi Alexandre,
> >
> > Den mån 25 mars 2019 kl 13:03 skrev Alexandre Augusto
> > <[email protected]>:
> > >
> > > Hello,
> > >
> > > I would like to know, if possible, information about the bluez LE Rand
> > > command (ocf 0x0018) at HCI code. How does it generate the number? Is
> > > it vendor-specific (or secret)?
> >
> > According to the Bluetooth core specification, it shall be a "A pseudo
> > random number generator compliant with [FIPS PUB 140-2]
> > (http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexc.pdf)"
> > which shall be seeded "with at least the minimum entropy required by
> > the pseudo random number generator". What algorithm each Bluetooth
> > controller actually uses is therefore vendor specific. I guess most
> > controllers will use some SHA-based or AES-based algorithm. Note that
> > it is not the host (BlueZ) that generates the number; it just asks the
> > controller to generate it for the host.
> >
> > /Emil

I'm a aware of two different vendors. One vendor has a hardware-based
random number generator based on thermal inner noise that is used to
feed the CSPRNG
(https://www.nordicsemi.com/DocLib/Content/Product_Spec/nRF52810/latest/rng).
The other vendor uses the radio to gather enough random bits from the
air.

/Emil

2019-03-25 14:01:35

by Alexandre Augusto

[permalink] [raw]
Subject: Re: Information about HCI LE Rand command

That's very interesting. Thank you.


Best regards,
Alexandre Giron