I have a Bluetooth device that sends a small package periodically (without receiving). I want to encrypt and authenticate the data using AES-128. It has an embedded random and unique key which is burned to the memory at production and it is known to the receiver. I have the following message structure:

| Counter | Payload  | Magic   | Padding |
| ------- | -------  | ---     | --      |
| 4 bytes | 10 bytes | 4 bytes | 2 bytes |

**Counter** is not encrypted and will increment sequentially for each message (never to be repeated) and it will be used as IV to the AES-CTR mode. It will also serve to protect against replay attacks, i.e. older packages will be ignored.

**Magic** is fixed and known number to check that the decrypted message is not gibberish and a valid data.

**Padding** is ignored in the receiver side and used to complete the encrypted data to 16 bytes.

Payload + Magic + Padding will be encrypted together before sending, i.e.

| Counter | Encrypted Data  |
| ------- | -------         |
| 4 bytes | 16 bytes        |

The questions are:

 1. Can a passive listener break this encryption and/or craft legitimate messages, etc.?
 2. Is this also provide authentication since no one except the key holder can craft such a message?
 3. Is it OK to use IV/nonce with prepending 0 to the Counter? Should I append the counter to a random number (which is also burned at factory)?
 4. What to put to the padding, 0 or random numbers? Is it even necessary?
 5. Is using the magic number this way logical? Do I need to generate random magic and send it both unencrypted and encrypted for validation by the receiver?
 6. What is the correct/well-established method for encryption and authentication in such a setting?